如何将浮点寄存器推送(和弹出)到 ARMv7 32 位上的堆栈?

How to push (and pop) floating-point registers to the stack on ARMv7 32-bit?

如何在现代 ARMv7 32 位上将一系列浮点寄存器压入(然后弹出)堆栈?特别是,我对保存然后恢复暂存(易失性)浮点寄存器 d0-d7(或 s0-s15,假设它们在处理器中占用相同 space)感兴趣。

我在 SFMLFM 中看到了这种方法 http://www.cl.cam.ac.uk/~fms27/teaching/2001-02/arm-project/02-sort/apcs.txt,但它似乎只适用于非常老的 ARM 处理器,其中寄存器被命名为 f0-f7,并且它们是每个 96 位。寄存器和指令似乎都是 reworked/renamed 之后。

貌似在网上很难找到,不过最后好像就这么简单(来源http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204j/Bcfchhif.html):

VPUSH {d0-d7} ; push d0, d1, ... , d7 to the stack
VPOP {d0-d7} ; pop d0, d1, ... , d7 from the stack