aese
AES Encrypt
AESE <Vd>.<T>, <Vn>.<T>
Performs one round of AES encryption.
Details
Performs a single round of AES (Advanced Encryption Standard) encryption on the 128-bit value in the source register using the key in Vn, producing the result in Vd. This implements the AES encryption state transformation (SubBytes, ShiftRows, MixColumns, AddRoundKey) for one round. Executes in AArch64 with Crypto extension; condition flags are not affected. This instruction is part of the AES cryptographic instruction set.
Pseudocode Operation
Vd ← AES_EncryptRound(Vd, Vn)
Example
AESE v0.4s.T, v1.4s.T
Encoding
Binary Layout
01001110
00
101000010
0
10
Rn
Rd
Operands
-
Vd
Data -
Vn
Key
Reference (Arm A64 ISA)
Instruction Forms
| Encoding | Instruction | ISA | Bit pattern | ||
|---|---|---|---|---|---|
| 0x4E284800 | AESE <Vd>.16B, <Vn>.16B | A64 | 01001110 | 00 | 101000010 | 0 | 10 | Rn | Rd | ||
| 0x4522E000 | AESE <Zdn>.B, <Zdn>.B, <Zm>.B | A64 | 01000101 | 0 | 0 | 10001 | 0 | 11100 | 0 | Zm | Zdn |
Description
AES single round encryption.
Operation
AArch64.CheckFPAdvSIMDEnabled(); bits(128) operand1 = V[d, 128]; bits(128) operand2 = V[n, 128]; bits(128) result; result = operand1 EOR operand2; result = AESSubBytes(AESShiftRows(result)); V[d, 128] = result;