The ARM microprocessor has 16 general-purpose registers. THUMB has eight general-purpose registers, R0-R7, and access to the high registers, R8-R15.
The following table shows the assigned register roles.
|R0||Argument1, Return Value, Temporary Register.|
|R1||Argument2, Second 32-bits if double/int Return Value, Temporary Register.|
|R2-R3||Arguments, Temporary Registers.|
|R4-R10||Permanent Registers. R7 is THUMB Frame Pointer.|
|R11||ARM Frame Pointer - Permanent Register.|
|R13||Stack Pointer, Permanent Register.|
|R14||Link Register, Permanent Register.|
Note Registers R0 through R3 hold the first four words of incoming arguments. The microprocessor constructs remaining arguments in the calling function's argument build area, which does not provide space into which R0 through R3 may be spilled.
ARM Calling Sequence Specification | What's New for the ARM Compiler | ARM Stack Frame Layout | ARM Parameter Passing | ARM Return Values | ARM Prolog and Epilog | ARM pdata Structures | ARM Assembler Macros
Last updated on Thursday, April 08, 2004
© 1992-2003 Microsoft Corporation. All rights reserved.