Xtensa GPR and ABI
来自Jack's Lab
(版本间的差异)
(→Overview) |
(→Return value) |
||
| (未显示1个用户的8个中间版本) | |||
| 第16行: | 第16行: | ||
=== Argument passing === | === Argument passing === | ||
| + | |||
| + | <pre> | ||
| + | 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 --- --- --- --- | ||
| + | </pre> | ||
<br><br> | <br><br> | ||
| 第21行: | 第29行: | ||
=== Return value === | === Return value === | ||
| + | <pre> | ||
| + | Return Value | ||
| + | ----------- | ||
| + | call4 a6 | ||
| + | call8 a10 | ||
| + | call12 a14 | ||
| + | </pre> | ||
<br><br> | <br><br> | ||
| 第27行: | 第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> | ||
| 第32行: | 第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