From WikiChip
Difference between revisions of "arm/aarch64"
< arm

Line 4: Line 4:
 
== Overview ==
 
== Overview ==
 
The AArch64 execution state was introduced with the {{\\|ARMv8}} ISA for machines executing {{\\|A64}} instructions. A machine in AArch64 can only execute A64 instructions and cannot execute {{\\|A32}} or {{\\|T32}} instructions. However, unlike in {{\\|AArch32}}, in the 64-bit state, instructions can access both the 64-bit and 32-bit registers.
 
The AArch64 execution state was introduced with the {{\\|ARMv8}} ISA for machines executing {{\\|A64}} instructions. A machine in AArch64 can only execute A64 instructions and cannot execute {{\\|A32}} or {{\\|T32}} instructions. However, unlike in {{\\|AArch32}}, in the 64-bit state, instructions can access both the 64-bit and 32-bit registers.
 +
 +
== Calling convention ==
 +
{{see also|calling convention}}
 +
Under AArch64, the first eight registers are used for passing parameters into a subroutine as well as to return a result value set. Generally, X0 through X18 can corrupt while X19-X29 must be preserved.
 +
 +
{| class="wikitable"
 +
|-
 +
! Register !! Role !! Requirement
 +
|-
 +
| X0 - X7 || Parameter/result registers || rowspan="5" | Can Corrupt
 +
|-
 +
| X8 || Indirect result location register
 +
|-
 +
| X9 - X15 || Temporary registers
 +
|-
 +
| X16 - X17 || Intra-procedure call temporary
 +
|-
 +
| X18 || Platform register, otherwise temporary
 +
|-
 +
| X19 - X29 || Callee-saved register || Must preserve
 +
|-
 +
| X30 || Link Register || Can Corrupt
 +
|}
  
  
 
{{stub}}
 
{{stub}}

Revision as of 16:48, 20 September 2018

v · d · e
ARM ISA
General
Variants
Extensions
Topics
Versions(all)

AArch64 is the 64-bit execution state of the ARMv8 ISA. A machine in this state executes operates on the A64 instruction set. This is in contrast to the AArch32 which describes the classical 32-bit ARM execution state.

Overview

The AArch64 execution state was introduced with the ARMv8 ISA for machines executing A64 instructions. A machine in AArch64 can only execute A64 instructions and cannot execute A32 or T32 instructions. However, unlike in AArch32, in the 64-bit state, instructions can access both the 64-bit and 32-bit registers.

Calling convention

See also: calling convention

Under AArch64, the first eight registers are used for passing parameters into a subroutine as well as to return a result value set. Generally, X0 through X18 can corrupt while X19-X29 must be preserved.

Register Role Requirement
X0 - X7 Parameter/result registers Can Corrupt
X8 Indirect result location register
X9 - X15 Temporary registers
X16 - X17 Intra-procedure call temporary
X18 Platform register, otherwise temporary
X19 - X29 Callee-saved register Must preserve
X30 Link Register Can Corrupt


Text document with shapes.svg This article is still a stub and needs your attention. You can help improve this article by editing this page and adding the missing information.