💡
原文中文,约2800字,阅读约需7分钟。
📝
内容提要
RISC-V 的调用约定规定了函数调用时寄存器的管理。调用者负责保存 caller-saved 寄存器的值,而被调用者负责维护 callee-saved 寄存器。在调用前,调用者需保存寄存器值,调用后恢复;被调用者在执行前后也需保持寄存器的一致性。
🎯
关键要点
- RISC-V 的调用约定规定了函数调用时寄存器的管理。
- 调用者负责保存 caller-saved 寄存器的值,被调用者负责维护 callee-saved 寄存器。
- 调用者在调用前需保存寄存器值,调用后恢复。
- 被调用者在执行前后需保持寄存器的一致性。
- 调用者和被调用者的身份由其行为决定。
- callee-saved 寄存器包括 s0 - s11 和 sp,caller-saved 寄存器包括 a0 - a7 和 t0 - t6。
- 调用者在调用函数前后必须手动维护 caller-saved 寄存器的一致性。
- 被调用者在函数操作前后必须手动维护 callee-saved 寄存器的一致性。
- 在调用函数后,caller-saved 寄存器的值可能会变为垃圾值,调用者需提前保存。
- RISC-V 的调用约定确保了寄存器的内容在函数调用前后得到正确管理。
🏷️
标签
➡️