Does AES32DSI use floating-point or vector registers?
No. These scalar crypto extension instructions use integer X registers.
RV32 AES final-round byte step: select an rs2 byte, apply the inverse S-box, rotate to its byte position, and XOR with rs1.
Syntax is rd, rs1, rs2, bs. Integer registers select x0–x31 or ABI names; bs is a two-bit byte selector, 0–3.
32-bit OP encoding: bits31:30=bs, bits29:25=10101, funct3=000, opcode=0110011.
RV32 only, requiring enabled Zknd (also included in Zkn/Zk). Shift rs2 right by bs×8, take the low byte and apply the inverse AES S-box.
Zero-extend the inverse S-box result to 32 bits, rotate left by bs×8, XOR with pre-execution rs1 and write rd; no InvMixColumns.
x0 sources are zero and rd=x0 discards writeback; overlapping operands use one pre-execution value. This instruction must have data-independent execution latency.
aes32dsi is an RV32-only Zknd AES final-round decrypt instruction. It selects rs2[31:0] byte bs, applies the inverse S-box, rotates the 32-bit result left by bs*8, XORs rs1[31:0], and writes rd. It omits InvMixColumns.
RV32 AES final-round decryption: byte selection, inverse SBox, rotation, XOR, and integer-register writeback.
XLEN is fixed at 32; assumes Zknd and successful fetch. Source values are 0..0xFFFFFFFF; bs is 0–3. x0 sources must be zero and overlapping sources must agree.
AES32DSI is defined only for RV32: bits 31..30 are bs; the remaining fixed fields, two integer sources, and rd identify this OP encoding.
This animation shows only official ISA fields and state, not a particular CPU pipeline, cache, or timing implementation.
RV32-only AES32DSI selects one rs2 byte using bs, applies the inverse AES S-box, zero-extends it to 32 bits, rotates left by bs×8, then XORs with rs1 into rd.
RV32 Zknd, a1=0x11223344, a2=0xA1B2C3D4, bs=0: select 0xD4, inverse-S-box to 0x19, rotate by 0, and write a0=0x1122335D. This is one byte-combination step.
RV32 Zknd, a1=0x11223344, a2=0xA1B2C3D4, bs=0: select 0xD4, inverse-S-box to 0x19, rotate by 0, and write a0=0x1122335D. This is one byte-combination step.
No. These scalar crypto extension instructions use integer X registers.
No. It processes one byte of rs2 selected by bs and combines it with rs1; it does not execute a complete AES decryption round or algorithm.