clmul 会访问内存吗?
不访问数据内存。它读取两个整数寄存器并向 rd 交付所选乘积位;rd=x0 时丢弃结果。
RV32/RV64 Zbc/Zbkc 无进位乘法,返回 2*XLEN 位乘积的低 XLEN 位。
RV32/RV64 Zbc 或 Zbkc 1.0;语法 clmul rd, rs1, rs2,没有 rs3 或立即数。
32 位 R 型:funct7=0000101、funct3=001、opcode=0110011;寄存器字段选择 x0–x31。
按 rs2 置位选择移位的 rs1 并 XOR 合并,结果取完整乘积 bits XLEN-1:0。源使用旧 XLEN 位模式;x0 读零、丢弃写回。
clmul 执行 GF(2) 无进位乘法并返回低 XLEN 位。
该模型按 GF(2) 的 XOR 部分积展示 ISA 可见结果;不表示加法进位、流水线或密码协议。
funct7=0000101, funct3=001
clmul 执行 GF(2) 无进位乘法并返回低 XLEN 位。
RV32 Zbc/Zbkc,x11=0xB、x12=0xD:部分积 0xB XOR 0x2C XOR 0x58=0x7F,clmul 写 x10=0x7F。
不访问数据内存。它读取两个整数寄存器并向 rd 交付所选乘积位;rd=x0 时丢弃结果。
按 XLEN 位模式进行多项式无进位乘法,不使用有符号整数乘法的符号解释;部分积以 XOR 合并。