From WikiChip
Editing arm/a64

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

This page supports semantic in-text annotations (e.g. "[[Is specified as::World Heritage Site]]") to build structured and queryable content provided by Semantic MediaWiki. For a comprehensive description on how to use annotations or the #ask parser function, please have a look at the getting started, in-text annotation, or inline queries help pages.

Latest revision Your text
Line 1: Line 1:
 
{{arm title|A64}}{{arm isa main}}
 
{{arm title|A64}}{{arm isa main}}
'''A64''' is a 64-bit [[fixed-length instructions|fixed-length]] [[instruction set]] that machines in {{\\|AArch64}} state execute. This instruction set was introduced with the {{\\|ARMv8}} [[ISA]].
+
'''A64''' is the [[instruction set]] that machins in {{\\|AArch64}} execute which was introduced with the {{\\|ARMv8}} [[ISA]].
  
== Overview ==
 
The A64 instruction set was introduced with the {{\\|ARMv8}} ISA in order to introduce {{arch|64}} capabilities, primarily targeting the LP64 and LPP64 [[64-bit data models]]. It is [[fixed-length instructions|fixed-length]] with instructions being 32 bits in size and follow almost identical semantics as in {{\\|AArch32}}. This was done in order to maximize the hardware reuse. With the exception of [[branch instructions|branches]] and [[comparison instruction|comparisons]], [[predication]] was also eliminted. Compared to the {{arm|a32|32-bit instruction set}} which offered 14 [[general-purpose registers]], the A64 IS has 31 GPRs. Most instructions are capable of having a 32-bit or 64-bit [[operand]] and the address is assumed to be 64-bit in size.
 
  
== Registers ==
+
{{stub}}
A64 has 31 [[general-purpose registers]], all of which are 64-bit wide. Depending on the instruction, the 32nd register is used to obtain a zero or the stack pointer. The almost doubling of the GPR count was done in order to improve both the performance and power of the implementations (designed to reduce cache accesses). Banking was eliminated altogether. Additionally, the stack pointer is no longer regarded as a GPR and the [[program counter]] is no longer treated as a normal directly accessible register.
 
 
 
=== Packing ===
 
Compared to {{\\|A32}}, smaller registers no longer packed into the larger ones but are instead mapped one-to-one to the low-order bits of the bigger register.
 
 
 
Registers W0 through W30 are 32 bit and register X0 through X30 are 64 bits.
 
 
 
:[[File:arm a64 registers.svg|400px]]
 
 
 
== Instructions ==
 
Most instructions are capable of supporting both 32-bit or 64-bit [[operands]]. A64 primarily targeted the LP64 and LPP64 [[64-bit data models|data models]], meaning [[long integer|long]], [[long long integers]], and [[pointers]] are 64-bit wide while [[integers]] are 32 bit. A64 has a limited set of instructions supporting [[predication]] and arbitrary length [[load instruction|load]]/[[store instruction|store]] are no longer supported.
 
 
 
== Advanced SIMD ==
 
A64 Advanced SIMD ({{\\|NEON}}) shares the same register file as the {{\\|A32}} floating-point [[register file]] but is extended to 128-bit. A64 has 32 128-bit wide vector registers (this is double the amount from {{\\|A32}}). A64 advanced SIMD added support for [[double-precision floating point]] as well as [[IEE 754]] compliance. Additional instructions were also added to support the 2008 version of the standard (e.g., conversion, min/max).
 
 
 
Media registers are referred to ''Vn''. The 64-bit (''Dn'') and 32-bit (''Sn'') forms can also be accessed.
 
 
 
:[[File:arm a64 media registers.svg|650px]]
 
 
 
== Bibliography ==
 
* Richard Grisenthwaite. (October 26, 2011). ''"Technology Preview: The ARM Architecture - a View of the Future "''.
 
* ARM Architecture Group. "Armv8 instruction set overview." vol. PRD03-GENC-010197 (2011).
 

Please note that all contributions to WikiChip may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see WikiChip:Copyrights for details). Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)