Xtensa GPR and ABI
来自Jack's Lab
目录 |
1 Overview
Two different ABI:
- Windowed register ABI, works with the Windowed Register Option (ESP32 use this ABI by default)
- CALL0 ABI, used with any Xtensa processor (worse performance)
Instruction CALL0 is for the CALL0 ABI
Instruction CALL4/CALL8/CALL12 is for the windowed register ABI
2 Windowed Register ABI
2.1 Argument passing
Return Addr Stack Ptr arg0, arg1, arg2, arg3, arg4, arg5 ----------- --------- ---------------------------------- call4 a4 a5 a6, a7, a8, a9, a10, a11 call8 a8 a9 a10, a11, a12, a13, a14, a15 call12 a12 a13 a14, a15 --- --- --- ---
2.2 Return value
Return Value ----------- call4 a6 call8 a10 call12 a14
3 CALL0 ABI
3.1 Argument passing
Return Addr Stack Ptr arg0, arg1, arg2, arg3, arg4, arg5 ----------- --------- ---------------------------------- call0 a0 a1 a2, a3, a4, a5, a6, a7
3.2 Return value
4 Reference