http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46964

           Summary: ARM Not Supported by Go
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: go
        AssignedTo: i...@airs.com
        ReportedBy: j...@gcc.gnu.org


arm-rtems4.11-gcc (GCC) 4.6.0 20101214 (experimental) [trunk revision 167806]

does not define SAVE_REGS in gcc-go.c for ARM.  Is this correct for ARM?

#elif defined(__arm__)
 #define SAVE_REGS asm ("" : : : "r4", "r5", "r6", "r7", "r8", "r9", \
                                 "r10", "r11", "r12", "r13", "r14", "r15" )

>From http://en.wikipedia.org/wiki/Calling_convention, the standard ARM calling
convention allocates the 16 ARM registers as:

    * r15 is the program counter.
    * r14 is the link register. (The BL instruction, used in a subroutine call,
stores the return address in this register).
    * r13 is the stack pointer. (The Push/Pop instructions in "Thumb" operating
mode use this register only).
    * r12 is the Intra-Procedure-call scratch register.
    * r4 to r11: used to hold local variables.
    * r0 to r3: used to hold argument values passed to a subroutine ... and
also hold results returned from a subroutine.

Reply via email to