aese
AES Encrypt (A64)
AESE <Vd>.16B, <Vm>.16B
AES single round encryption (AArch64 NEON).
Details
AES single round encryption on 128-bit state using 128-bit round key. Applies SubBytes, ShiftRows, MixColumns, and AddRoundKey transformations. Used in AES encryption loops (not the final round). Requires Crypto extension. Condition flags are not affected.
Pseudocode Operation
Example
AESE v0.4s.16B, v2.4s.16B
Encoding
Binary Layout
01001110
00
101000010
0
10
Rn
Rd
Operands
-
Vd
State -
Vm
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;