Does SM3P0 use floating-point or vector registers?
No. These scalar crypto extension instructions use integer X registers.
SM3 hash P0 permutation: P0(x) = x ^ ROTL(x,9) ^ ROTL(x,17)
sm3p0 is defined in RV32 and RV64 and implements the SM3 P0 transform. It takes X(rs1)[31:0], computes r1 ^ ROL32(r1, 9) ^ ROL32(r1, 17), and writes rd; RV64 writes the 32-bit result with EXTS.
Bounded teaching inputs execute the official SM3 fixed-width bit operations; this does not model a complete algorithm or microarchitecture.
SM3P0 is defined in RV32/RV64; RV64 uses X(rs1)[31:0] and sign-extends the 32-bit result to XLEN.
This animation shows only official ISA fields and architectural state; it does not model a complete hash algorithm, pipeline, cache, or timing implementation.
SM3P0 is a Zksh scalar cryptography instruction for SM3 P0 transform. This page is checked against the official scalar crypto extension, avoiding confusion among round functions, key schedule steps, and operand sources.
Understand this scenario with real code like «sm3p0 a0, a1».
Understand this scenario with real code like «sm3p0 a0, a1».
No. These scalar crypto extension instructions use integer X registers.
No. It implements one SM3 P0 transform defined by the manual.