Does AES32ESMI use floating-point or vector registers?
No. These scalar crypto extension instructions use integer X registers.
AES middle-round encrypt byte step: select a byte from rs2 by bs, apply SubBytes/MixColumns, XOR with rs1
Syntax is rd, rs1, rs2, bs; bs is a two-bit byte selector, 0–3. Registers select x0–x31 or ABI names, with no rs3.
32-bit OP encoding: bits31:30=bs, bits29:25=10011, funct3=000, opcode=0110011.
RV32 only, requiring Zkne (also included in Zkn/Zk). Select an rs2 byte using bs, apply the forward S-box and partial forward MixColumn, rotate left by bs×8 within 32 bits, then XOR with rs1.
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.
aes32esmi is an RV32 scalar AES middle-round encrypt instruction in Zkne. It selects a byte from rs2[31:0] using bs, applies the AES forward S-box and partial forward MixColumn, rotates the result left into the position selected by bs, XORs it with rs1[31:0], and writes rd.
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 32; this animation rejects RV64-sized values. A destination that is not a source starts at 0; sources are read before writeback.
bits 31..30 are bs, bits 29..25 are 10011; funct3=000 and OP=0110011. This encoding is RV32-only.
This animation shows only official ISA fields and architectural state, not a particular CPU pipeline, cache, or timing implementation.
AES32ESMI processes one byte of rs2: bs=0..3 selects the byte, forward S-box and a partial forward MixColumn forms a 32-bit contribution, then a left rotation by bs×8 and XOR with rs1 produce rd. It is not a complete AES encryption round.
RV32 with the required extension enabled; a1=0x11223344, a2=0xA1B2C3D4, bs=0: select 0xD4 from rs2, apply this instruction's S-box and partial MixColumn, rotate by 0, then XOR with a1, giving a0=0xC96A7BD4. This is one byte-combination step.
RV32 with the required extension enabled; a1=0x11223344, a2=0xA1B2C3D4, bs=0: select 0xD4 from rs2, apply this instruction's S-box and partial MixColumn, rotate by 0, then XOR with a1, giving a0=0xC96A7BD4. This is one byte-combination step.
No. These scalar crypto extension instructions use integer X registers.
No. It performs one architecturally defined AES byte step; software still combines instructions and round keys in algorithm order.