ARM到C调用约定,NEON寄存器保存

时间:2011-03-13 08:54:56

标签: arm neon abi

similar post涵盖常规寄存器。 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)不需要保留

1 个答案:

答案 0 :(得分:13)

来自the AAPCS, §5.1.2.1

    必须保留
  • s16-s31(d8-d15,q4-q7)
  • s0-s15(d0-d7,q0-q3) d16-d31(q8-q15)不需要保留