Skip to content

Commit

Permalink
Add AArch64 to CallingConventions.md
Browse files Browse the repository at this point in the history
This commit adds the AArch64 section to CallingConventions.md.

Signed-off-by: KONNO Kazuhiro <[email protected]>
  • Loading branch information
knn-k committed Jun 14, 2020
1 parent 1db16ee commit 125c106
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions doc/diagnostics/CallingConventions.md
Original file line number Diff line number Diff line change
Expand Up @@ -239,3 +239,23 @@ Useful links:
* [z/Architecture Principles of Operation](http://publibfi.boulder.ibm.com/epubs/pdf/dz9zr008.pdf)
* [z/Architecture Reference Summary](http://publibfi.boulder.ibm.com/epubs/pdf/dz9zs006.pdf)

# AArch64 (64-bit Arm)

Scratch registers are not preserved across calls, while non-volatile registers are preserved by called functions.

|Register|Linux System linkage|
|--|--|
|R0|1st argument / return value|
|R1-7|2nd-8th arguments|
|R8-15|Scratch|
|R16-17|Scratch; Intra-Procedure-Call Registers (IP0-1)|
|R18|Scratch; Platform Register|
|R19-28|Non-volatile|
|R29|System Frame Pointer (FP)|
|R30|Link Register (LR)|
|SP|System Stack Pointer (SP)|
|PC|Program Counter (PC)|
|V0|1st floating point argument / floating point return value|
|V1-7|2nd-8th floating point argument|
|V8-15|Non-volatile|
|V16-31|Scratch|

0 comments on commit 125c106

Please sign in to comment.