You copied the Doc URL to your clipboard.

instructions in alphabetical order

summary of the A64 instructions and pseudo-instructions that are supported.

Table 16-1 Summary of A64 general instructions

Mnemonic Brief description See
ADC Add with Carry ADC
ADCS Add with Carry, setting flags ADCS
ADD (extended register) Add (extended register) ADD (extended register)
ADD (immediate) Add (immediate) ADD (immediate)
ADD (shifted register) Add (shifted register) ADD (shifted register)
ADDS (extended register) Add (extended register), setting flags ADDS (extended register)
ADDS (immediate) Add (immediate), setting flags ADDS (immediate)
ADDS (shifted register) Add (shifted register), setting flags ADDS (shifted register)
ADR Form PC-relative address ADR
ADRL pseudo-instruction Load a PC-relative address into a register ADRL pseudo-instruction
ADRP Form PC-relative address to 4KB page ADRP
AND (immediate) Bitwise AND (immediate) AND (immediate)
AND (shifted register) Bitwise AND (shifted register) AND (shifted register)
ANDS (immediate) Bitwise AND (immediate), setting flags ANDS (immediate)
ANDS (shifted register) Bitwise AND (shifted register), setting flags ANDS (shifted register)
ASR (register) Arithmetic Shift Right (register) ASR (register)
ASR (immediate) Arithmetic Shift Right (immediate) ASR (immediate)
ASRV Arithmetic Shift Right Variable ASRV
AT Address Translate AT
AUTDA, AUTDZA Authenticate Data address, using key A AUTDA, AUTDZA
AUTDB, AUTDZB Authenticate Data address, using key B AUTDB, AUTDZB
AUTIA, AUTIZA, AUTIA1716, AUTIASP, AUTIAZ Authenticate Instruction address, using key A AUTIA, AUTIZA, AUTIA1716, AUTIASP, AUTIAZ
AUTIB, AUTIZB, AUTIB1716, AUTIBSP, AUTIBZ Authenticate Instruction address, using key B AUTIB, AUTIZB, AUTIB1716, AUTIBSP, AUTIBZ
B.cond Branch conditionally B.cond
B Branch B
BFC Bitfield Clear, leaving other bits unchanged BFC
BFI Bitfield Insert BFI
BFM Bitfield Move BFM
BFXIL Bitfield extract and insert at low end BFXIL
BIC (shifted register) Bitwise Bit Clear (shifted register) BIC (shifted register)
BICS (shifted register) Bitwise Bit Clear (shifted register), setting flags BICS (shifted register)
BL Branch with Link BL
BLR Branch with Link to Register BLR
BLRAA, BLRAAZ, BLRAB, BLRABZ Branch with Link to Register, with pointer authentication BLRAA, BLRAAZ, BLRAB, BLRABZ
BR Branch to Register BR
BRAA, BRAAZ, BRAB, BRABZ Branch to Register, with pointer authentication BRAA, BRAAZ, BRAB, BRABZ
BRK Breakpoint instruction BRK
CBNZ Compare and Branch on Nonzero CBNZ
CBZ Compare and Branch on Zero CBZ
CCMN (immediate) Conditional Compare Negative (immediate) CCMN (immediate)
CCMN (register) Conditional Compare Negative (register) CCMN (register)
CCMP (immediate) Conditional Compare (immediate) CCMP (immediate)
CCMP (register) Conditional Compare (register) CCMP (register)
CINC Conditional Increment CINC
CINV Conditional Invert CINV
CLREX Clear Exclusive CLREX
CLS Count leading sign bits CLS
CLZ Count leading zero bits CLZ
CMN (extended register) Compare Negative (extended register) CMN (extended register)
CMN (immediate) Compare Negative (immediate) CMN (immediate)
CMN (shifted register) Compare Negative (shifted register) CMN (shifted register)
CMP (extended register) Compare (extended register) CMP (extended register)
CMP (immediate) Compare (immediate) CMP (immediate)
CMP (shifted register) Compare (shifted register) CMP (shifted register)
CNEG Conditional Negate CNEG
CRC32B, CRC32H, CRC32W, CRC32X CRC32 checksum performs a cyclic redundancy check (CRC) calculation on a value held in a general-purpose register CRC32B, CRC32H, CRC32W, CRC32X
CRC32CB, CRC32CH, CRC32CW, CRC32CX CRC32C checksum performs a cyclic redundancy check (CRC) calculation on a value held in a general-purpose register CRC32CB, CRC32CH, CRC32CW, CRC32CX
CSEL Conditional Select CSEL
CSET Conditional Set CSET
CSETM Conditional Set Mask CSETM
CSINC Conditional Select Increment CSINC
CSINV Conditional Select Invert CSINV
CSNEG Conditional Select Negation CSNEG
DC Data Cache operation DC
DCPS1 Debug Change PE State to EL1 DCPS1
DCPS2 Debug Change PE State to EL2 DCPS2
DCPS3 Debug Change PE State to EL3 DCPS3
DMB Data Memory Barrier DMB
DRPS Debug restore process state DRPS
DSB Data Synchronization Barrier DSB
EON (shifted register) Bitwise Exclusive OR NOT (shifted register) EON (shifted register)
EOR (immediate) Bitwise Exclusive OR (immediate) EOR (immediate)
EOR (shifted register) Bitwise Exclusive OR (shifted register) EOR (shifted register)
ERET Returns from an exception ERET
ERETAA, ERETAB Exception Return, with pointer authentication ERETAA, ERETAB
ESB Error Synchronization Barrier ESB
EXTR Extract register EXTR
HINT Hint instruction HINT
HLT Halt instruction HLT
HVC Hypervisor call to allow OS code to call the Hypervisor HVC
IC Instruction Cache operation IC
ISB Instruction Synchronization Barrier ISB
LSL (register) Logical Shift Left (register) LSL (register)
LSL (immediate) Logical Shift Left (immediate) LSL (immediate)
LSLV Logical Shift Left Variable LSLV
LSR (register) Logical Shift Right (register) LSR (register)
LSR (immediate) Logical Shift Right (immediate) LSR (immediate)
LSRV Logical Shift Right Variable LSRV
MADD Multiply-Add MADD
MNEG Multiply-Negate MNEG
MOV (to or from SP) Move between register and stack pointer MOV (to or from SP)
MOV (inverted wide immediate) Move (inverted wide immediate) MOV (inverted wide immediate)
MOV (wide immediate) Move (wide immediate) MOV (wide immediate)
MOV (bitmask immediate) Move (bitmask immediate) MOV (bitmask immediate)
MOV (register) Move (register) MOV (register)
MOVK Move wide with keep MOVK
MOVL pseudo-instruction Load a register with either a 32-bit or 64-bit immediate value or any address MOVL pseudo-instruction
MOVN Move wide with NOT MOVN
MOVZ Move wide with zero MOVZ
MRS Move System Register MRS
MSR (immediate) Move immediate value to Special Register MSR (immediate)
MSR (register) Move general-purpose register to System Register MSR (register)
MSUB Multiply-Subtract MSUB
MUL Multiply MUL
MVN Bitwise NOT MVN
NEG (shifted register) Negate (shifted register) NEG (shifted register)
NEGS Negate, setting flags NEGS
NGC Negate with Carry NGC
NGCS Negate with Carry, setting flags NGCS
NOP No Operation NOP
ORN (shifted register) Bitwise OR NOT (shifted register) ORN (shifted register)
ORR (immediate) Bitwise OR (immediate) ORR (immediate)
ORR (shifted register) Bitwise OR (shifted register) ORR (shifted register)
PACDA, PACDZA Pointer Authentication Code for Data address, using key A PACDA, PACDZA
PACDB, PACDZB Pointer Authentication Code for Data address, using key B PACDB, PACDZB
PACGA Pointer Authentication Code, using Generic key PACGA
PACIA, PACIZA, PACIA1716, PACIASP, PACIAZ Pointer Authentication Code for Instruction address, using key A PACIA, PACIZA, PACIA1716, PACIASP, PACIAZ
PACIB, PACIZB, PACIB1716, PACIBSP, PACIBZ Pointer Authentication Code for Instruction address, using key B PACIB, PACIZB, PACIB1716, PACIBSP, PACIBZ
PSB Profiling Synchronization Barrier PSB
RBIT Reverse Bits RBIT
RET Return from subroutine RET
RETAA, RETAB Return from subroutine, with pointer authentication RETAA, RETAB
REV16 Reverse bytes in 16-bit halfwords REV16
REV32 Reverse bytes in 32-bit words REV32
REV64 Reverse Bytes REV64
REV Reverse Bytes REV
ROR (immediate) Rotate right (immediate) ROR (immediate)
ROR (register) Rotate Right (register) ROR (register)
RORV Rotate Right Variable RORV
SBC Subtract with Carry SBC
SBCS Subtract with Carry, setting flags SBCS
SBFIZ Signed Bitfield Insert in Zero SBFIZ
SBFM Signed Bitfield Move SBFM
SBFX Signed Bitfield Extract SBFX
SDIV Signed Divide SDIV
SEV Send Event SEV
SEVL Send Event Local SEVL
SMADDL Signed Multiply-Add Long SMADDL
SMC Supervisor call to allow OS or Hypervisor code to call the Secure Monitor SMC
SMNEGL Signed Multiply-Negate Long SMNEGL
SMSUBL Signed Multiply-Subtract Long SMSUBL
SMULH Signed Multiply High SMULH
SMULL Signed Multiply Long SMULL
SUB (extended register) Subtract (extended register) SUB (extended register)
SUB (immediate) Subtract (immediate) SUB (immediate)
SUB (shifted register) Subtract (shifted register) SUB (shifted register)
SUBS (extended register) Subtract (extended register), setting flags SUBS (extended register)
SUBS (immediate) Subtract (immediate), setting flags SUBS (immediate)
SUBS (shifted register) Subtract (shifted register), setting flags SUBS (shifted register)
SVC Supervisor call to allow application code to call the OS SVC
SXTB Signed Extend Byte SXTB
SXTH Sign Extend Halfword SXTH
SXTW Sign Extend Word SXTW
SYS System instruction SYS
SYSL System instruction with result SYSL
TBNZ Test bit and Branch if Nonzero TBNZ
TBZ Test bit and Branch if Zero TBZ
TLBI TLB Invalidate operation TLBI
TST (immediate) , setting the condition flags and discarding the result TST (immediate)
TST (shifted register) Test (shifted register) TST (shifted register)
UBFIZ Unsigned Bitfield Insert in Zero UBFIZ
UBFM Unsigned Bitfield Move UBFM
UBFX Unsigned Bitfield Extract UBFX
UDIV Unsigned Divide UDIV
UMADDL Unsigned Multiply-Add Long UMADDL
UMNEGL Unsigned Multiply-Negate Long UMNEGL
UMSUBL Unsigned Multiply-Subtract Long UMSUBL
UMULH Unsigned Multiply High UMULH
UMULL Unsigned Multiply Long UMULL
UXTB Unsigned Extend Byte UXTB
UXTH Unsigned Extend Halfword UXTH
WFE Wait For Event WFE
WFI Wait For Interrupt WFI
XPACD, XPACI, XPACLRI Strip Pointer Authentication Code XPACD, XPACI, XPACLRI
YIELD YIELD YIELD
Was this page helpful? Yes No