MOP.R.6 默认是纯 NOP 吗?
不是。未被其他扩展重定义时,mop.r.6 x5, x6 把 x5 写为 0,与 x6 的值无关;x6 不变。rd=x0 时 x0 保持 0。
MOP.R.6 是 Zimop 1.0 的 may-be-operation;未被重定义时向 x[rd] 写零。
扩展条件:RV32/RV64,需实现 Zimop 1.0。下述写零行为仅适用于未被其他扩展重定义的编码;不能据此保证未实现 Zimop 的处理器可执行本指令。
MOP.R.6 使用 opcode 1110011(0x73)、funct3 100。MOP.R.n 使用 SYSTEM 字段:bits 31..20 是固定的 n 选择子,rs1 和 rd 是显式寄存器字段,funct3=100,opcode=SYSTEM。默认定义只向 x[rd] 写 0;rs1 不是默认读取的源操作数。
MOP.R.6 推荐语法为 mop.r.6 rd, rs1,两个操作数均可取 x0–x31 且可重叠。默认 Zimop 行为只向 x[rd] 写 0,不读取 x[rs1],也不建立 rs1 到 rd 的语法依赖;rd=x0 时 x0 保持 0。其他扩展可重定义该编码以读取 rs1 并改变架构效果。标准软件只应在明确面向重定义该 MOP 的扩展时执行它。
MOP.R.6 是 Zimop 1.0 的 may-be-operation;未被重定义时向 x[rd] 写零。
仅演示未被重定义的 Zimop 行为:mop.r.6 x5, x6 将 x5 设为 0,与 x6 原值无关;x6 保持原值。普通软件只应在明确面向重定义该 MOP 的扩展时执行它。
不是。未被其他扩展重定义时,mop.r.6 x5, x6 把 x5 写为 0,与 x6 的值无关;x6 不变。rd=x0 时 x0 保持 0。
没有。语法是 mop.r.6 rd, rs1;bits 31..20 固定为 0x85e,是指令选择子而非有符号立即数。