aese
AES Encrypt (A64)
AESE <Vd>.16B, <Vm>.16B
AES single round encryption (AArch64 NEON).
Pseudocode Operation
state ← Vd.B[0:15]
key ← Vm.B[0:15]
state ← SubBytes(state)
state ← ShiftRows(state)
state ← MixColumns(state)
state ← state ⊕ key
Vd.B[0:15] ← state
Example
AESE v0.4s.16B, v2.4s.16B
Reference
View in Arm A64 ISA 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;