ARM ABI资料整理

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

RegisterSynonymSpecialRole in the procedure call standard
r15PCThe Program Counter.
r14LRThe Link Register.
r13SPThe Stack Pointer.
r12IPThe Intra-Procedure-call scratch register.
r11v8Variable-register 8.
r10v7Variable-register 7.
r9v6 SB TRPlatform register. The meaning of this register is defined by the platform standard.
r8v5Variable-register 5.
r7v4Variable register 4.
r6v3Variable register 3.
r5v2Variable register 2.
r4v1Variable register 1.
r3a4Argument / scratch register 4.
r2a3Argument / scratch register 3.
r1a2Argument / result / scratch register 2.
r0a1Argument / result / scratch register 1.

表1. ARM Architechture Use(32位Arm架构中寄存器用途)

RegisterSpecialRole in the procedure call standard
SPThe Stack Pointer
r30LRThe Link Register
r29FPThe Frame Pointer
r19…r28Callee-saved registers
r18The Platform Register, if needed; otherwise a temporary register. See notes.
r17IP1The 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.
r16IP0The 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…r15Temporary registers
r8Indirect result location register
r0…r7Parameter/result registers

表2. ARM 64-bit Architechture Use(64位ARM架构中寄存器用途,在函数调用标准PCS中定义)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值