Xtensa GPR and ABI

来自Jack's Lab
(版本间的差异)
跳转到: 导航, 搜索
(Windowed Register ABI)
(Return value)
 
(未显示1个用户的7个中间版本)
第18行: 第18行:
  
 
<pre>
 
<pre>
           return addr stack ptr       arg0, arg1, arg2, arg3, arg4, arg5
+
           Return Addr Stack Ptr       arg0, arg1, arg2, arg3, arg4, arg5
 
           -----------  ---------      ----------------------------------
 
           -----------  ---------      ----------------------------------
            a0          a1              a2,  a3,  a4,  a5,  a6,  a7
 
 
 
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























个人工具
名字空间

变换
操作
导航
工具箱