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.