AArch32 / AArch64
AArch32
The 32-bit general-purpose register width state of the ARMv8 architecture, broadly compatible with the ARMv7-A architecture.
AArch64
The 64-bit general-purpose register width state of the ARMv8 architecture.
ABI
ABI (Application Binary Interface)
1. The specifications to which an executable must conform in order to execute in a specific execution environment. For example, the Linux ABI for the ARM Architecture.
2. A particular aspect of the specifications to which independently produced relocatable files must conform in order to be statically linkable and executable. For example, the C++ ABI for the ARM Architecture, the Run-time ABI for the ARM Architecture, the C Library ABI for the ARM Architecture.
Registers
Register | Synonym | Special | Role in the procedure call standard |
---|---|---|---|
r15 | PC | The Program Counter. | |
r14 | LR | The Link Register. | |
r13 | SP | The Stack Pointer. | |
r12 | IP | The Intra-Procedure-call scratch register. | |
r11 | v8 | Variable-register 8. | |
r10 | v7 | Variable-register 7. | |
r9 | v6 SB TR | Platform register. The meaning of this register is defined by the platform standard. | |
r8 | v5 | Variable-register 5. | |
r7 | v4 | Variable register 4. | |
r6 | v3 | Variable register 3. | |
r5 | v2 | Variable register 2. | |
r4 | v1 | Variable register 1. | |
r3 | a4 | Argument / scratch register 4. | |
r2 | a3 | Argument / scratch register 3. | |
r1 | a2 | Argument / result / scratch register 2. | |
r0 | a1 | Argument / result / scratch register 1. |
表1. ARM Architechture Use(32位Arm架构中寄存器用途)
Register | Special | Role in the procedure call standard |
---|---|---|
SP | The Stack Pointer | |
r30 | LR | The Link Register |
r29 | FP | The Frame Pointer |
r19…r28 | Callee-saved registers | |
r18 | The Platform Register, if needed; otherwise a temporary register. See notes. | |
r17 | IP1 | The second intra-procedure-call temporary register (can be used by call veneers and PLT code); at other times may be used as a temporary register. |
r16 | IP0 | The first intra-procedure-call scratch register (can be used by call veneers and PLT code); at other times may be used as a temporary register. |
r9…r15 | Temporary registers | |
r8 | Indirect result location register | |
r0…r7 | Parameter/result registers |
表2. ARM 64-bit Architechture Use(64位ARM架构中寄存器用途,在函数调用标准PCS中定义)