14
有一个覆盖常规寄存器的similar post。 NEON注册呢?据我记得,要么在函数调用中保留寄存器的上半部分或下半部分。 我无法找到任何信息,有人可以澄清?ARM to C调用约定,NEON寄存器保存
感谢
从the AAPCS, §5.1.1 Core registers:
- R0-R3都是参数和临时寄存器; R0-R1也是结果寄存器
- R4-R8都被调用者保存寄存器
- R9可能是一个被调用者保存寄存器(开AAPCS的一些变种它是一个特殊寄存器)
- R10-R11是被调用者保存寄存器
- R12-R15特殊寄存器
从the AAPCS, §5.1.2.1 VFP register usage conventions (VFP v2, v3 and the Advanced SIMD Extension):
- S16-S31(D8-D15,Q4-Q7)必须保留
- S0-S15(D0-D7,Q0-Q3)和D16-D31 (Q8-Q15)不需要保留
arm64的约定可以在http://stackoverflow.com/a/29603040/224671找到。 – kennytm 2016-06-18 13:30:02