Does UNZIP access memory?
No. It only rearranges bit fields in integer registers.
RV32 bit deinterleave (Zbkb), RV32-only.
RV32 Zbkb 1.0 only; syntax unzip rd, rs1, both integer registers, with no assembly immediate.
32-bit I-type: bits31:20=000010001111, funct3=101, opcode=0010011; the fixed selector is not an arithmetic immediate.
For i=0..15, rd[i]=rs1[2*i] and rd[i+16]=rs1[2*i+1]; inverse of ZIP, with no memory access.
Read the source before writeback; rd=rs1 uses the old source, x0 sources are zero, and rd=x0 discards writeback.
UNZIP (Zbkb, RV32-only) gathers even-numbered bits of rs1 into the low 16 bits of rd and odd-numbered bits into the high 16 bits: for i=0..15, rd[i]=rs1[2*i] and rd[i+16]=rs1[2*i+1]. It is the inverse of ZIP.
Shows only specification-defined encodings, conditions, and architectural state.
Assumes RV32 Zbkb is implemented. Inputs are unsigned 32-bit patterns; teaching steps are not processor cycles.
UNZIP gathers even bits of a 32-bit source into the low 16 bits and odd bits into the high 16 bits.
Assume RV32 Zbkb and a1=0xD2C4B8A1; unzip a0, a1 gives a0=0x98ECCA41, leaving the source and memory unchanged.
Assume RV32 Zbkb and a1=0xD2C4B8A1; unzip a0, a1 gives a0=0x98ECCA41, leaving the source and memory unchanged.
No. It only rearranges bit fields in integer registers.
It belongs to the Zbkb cryptographic bit-manipulation extension.