Does SHA512SIG0L use floating-point or vector registers?
No. These scalar crypto extension instructions use integer X registers.
RV32 SHA-512 σ0 low word: rs1 is the input low word; rs2 is the other word.
Syntax is sha512sig0l rd, rs1, rs2; operands select integer x0–x31 or ABI names, with no assembly immediate.
32-bit OP: funct7=0101010, funct3=000, opcode=0110011; rs1 and rs2 are sources and rd is the destination.
RV32 Zknh only (also included in Zkn/Zk); rs1 supplies the input low word and rs2 the other word. The page's 32-bit formula computes the low result word.
An x0 source is zero and writes to x0 are discarded; overlapping operands read values before writeback. Equal sources share one value. Execution latency must be data-independent.
sha512sig0l is an RV32 Zknh instruction computing the low 32-bit word of SHA-512 σ0. With a=X(rs1) and b=X(rs2), rd receives the low 32 bits of ((a >> 1) ^ (a >> 7) ^ (a >> 8) ^ (b << 31) ^ (b << 25) ^ (b << 24)). Right shifts zero-fill; left shifts retain 32 bits. rs1 is the input low word and rs2 is the other word. The example reverses sources for the other result word.
Applies the official RV32 formula for one SHA-512 Sigma result word.
XLEN is fixed at 32. For the low form, rs1 is the input low word and rs2 is the input high word. Initially rd shares an overlapping source value, otherwise it starts at 0. An x0 source must be 0; identical sources must share one value.
This animation shows only official ISA fields and architectural state; it does not model a complete hash algorithm or microarchitecture.
RV32 SHA-512 σ0 low word: rs1 is the input low word; rs2 is the other word.
RV32 Zknh, a0=1 (low), a1=0 (high): the example first writes t0=0x00000000, then reverses sources to write t1=0x81000000. Both original inputs remain intact across the sequence.
RV32 Zknh, a0=1 (low), a1=0 (high): the example first writes t0=0x00000000, then reverses sources to write t1=0x81000000. Both original inputs remain intact across the sequence.
No. These scalar crypto extension instructions use integer X registers.
It computes one 32-bit result word of SHA-512 σ0; the example L/H sequence combines the full 64-bit transform.