Does AES64DS use floating-point or vector registers?
No. These scalar crypto extension instructions use integer X registers.
AES final-round decrypt (RV64): two 64-bit source registers represent the full state and produce half of the next-round output
Syntax is rd, rs1, rs2; there is no immediate operand. Registers select x0–x31 or ABI names, with no rs3.
32-bit OP encoding: funct7=0011101, funct3=000, opcode=0110011.
RV64 only, requiring Zknd (also included in Zkn/Zk). rs1/rs2 supply the full 128-bit state; inverse ShiftRows, per-byte inverse S-box, without InvMixColumns, produce one 64-bit output half, without implicit round-key XOR.
x0 sources are zero and rd=x0 discards writeback; overlap reads pre-execution source values, and equal sources have equal values. This instruction must have data-independent execution latency.
aes64ds is an RV64 AES decrypt final-round instruction in Zknd. It uses rs1 and rs2 as two 64-bit source registers representing the full 128-bit AES state, applies Inverse ShiftRows and inverse SubBytes, and writes half of the next-round output to rd. The full 128-bit output is normally produced by executing the official paired instruction with reversed source-register order; round-key XOR is not implicitly performed by this AES64 round instruction.
Bounded teaching inputs follow the local official ISA formulas; this does not model a complete AES round, round-key XOR, or microarchitecture.
XLEN is fixed at 64; rs1 and rs2 jointly represent the complete 128-bit state. A destination that is not a source starts at 0; sources are read before writeback.
funct7=0011101, funct3=000, and OP=0110011; this encoding is RV64-only.
This animation shows only official ISA fields and architectural state, not a particular CPU pipeline, cache, or timing implementation.
AES64DS reads two 64-bit state halves from rs1/rs2, applies inverse ShiftRows and a per-byte inverse S-box, and writes one 64-bit result. Preserve the original sources and reverse their order for the other half; round-key XOR is separate.
RV64 Zknd, a1=0x0011223344556677 and a2=0x8899AABBCCDDEEFF: inverse ShiftRows gives 0xCC99663300DDAA77; per-byte inverse S-box gives a0=0x27F9D36652C96202. Preserve the original sources and reverse their order for the other half.
RV64 Zknd, a1=0x0011223344556677 and a2=0x8899AABBCCDDEEFF: inverse ShiftRows gives 0xCC99663300DDAA77; per-byte inverse S-box gives a0=0x27F9D36652C96202. Preserve the original sources and reverse their order for the other half.
No. These scalar crypto extension instructions use integer X registers.
No. It performs one architecturally defined AES half-state step; software still combines instructions and round keys in algorithm order.