Xtensa GPR and ABI
来自Jack's Lab
(版本间的差异)
(→Argument passing) |
(→Return value) |
||
(未显示1个用户的6个中间版本) | |||
第20行: | 第20行: | ||
Return Addr Stack Ptr arg0, arg1, arg2, arg3, arg4, arg5 | Return Addr Stack Ptr arg0, arg1, arg2, arg3, arg4, arg5 | ||
----------- --------- ---------------------------------- | ----------- --------- ---------------------------------- | ||
− | |||
− | |||
call4 a4 a5 a6, a7, a8, a9, a10, a11 | call4 a4 a5 a6, a7, a8, a9, a10, a11 | ||
call8 a8 a9 a10, a11, a12, a13, a14, a15 | call8 a8 a9 a10, a11, a12, a13, a14, a15 | ||
第31行: | 第29行: | ||
=== Return value === | === Return value === | ||
+ | <pre> | ||
+ | Return Value | ||
+ | ----------- | ||
+ | call4 a6 | ||
+ | call8 a10 | ||
+ | call12 a14 | ||
+ | </pre> | ||
<br><br> | <br><br> | ||
第37行: | 第42行: | ||
=== Argument passing === | === Argument passing === | ||
+ | |||
+ | <pre> | ||
+ | Return Addr Stack Ptr arg0, arg1, arg2, arg3, arg4, arg5 | ||
+ | ----------- --------- ---------------------------------- | ||
+ | call0 a0 a1 a2, a3, a4, a5, a6, a7 | ||
+ | </pre> | ||
<br><br> | <br><br> | ||
第42行: | 第53行: | ||
=== Return value === | === Return value === | ||
+ | <pre> | ||
+ | Return Value | ||
+ | ----------- | ||
+ | call0 a2 | ||
+ | </pre> | ||
<br><br> | <br><br> | ||
+ | |||
+ | == Reference == | ||
+ | |||
+ | * http://wiki.linux-xtensa.org/index.php/ABI_Interface | ||
<br><br> | <br><br> |
2016年12月5日 (一) 21:12的最后版本
目录 |
[编辑] 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
Return Value ----------- call0 a2
[编辑] 4 Reference