MOP.R.8 默认是纯 NOP 吗?
在本页说明的 Zimop 默认定义下,将 0 写入 rd;若 rd=x0,x0 保持为 0。重定义后的效果需查对应扩展。
MOP.R.8 在 Zimop 默认定义下将 0 写入 rd;重定义扩展可使用rs1。
扩展条件:RV32/RV64,需实现 Zimop 1.0;本页说明未被其他扩展重定义的基础行为。
MOP.R.8 使用 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.8 是 Zimop may-be-operation,推荐语法为 mop.r.8 rd, rs1。若没有其他扩展重定义该编码,官方默认行为是把 0 写入 x[rd];该编码空间允许未来扩展定义为读取 x[rs1] 并写入 x[rd]。标准软件不应执行 MOP,除非明确面向重定义该 MOP 的扩展。 rd 可选择 x0,此时 x0 仍为 0;寄存器重叠不会把基础行为变成复制或运算。
MOP.R.8 是 Zimop 为未来扩展预留的兼容编码;未被重定义时,它的可见结果是 rd 得到 0。
假定 RV32/RV64 Zimop 1.0 已实现且该 MOP 未被重定义:mop.r.8 t0, t1 将 t0(x5)设为 0,与 t1(x6)原值无关;其他寄存器不变。rd 与源字段重叠时仍写零;rd=x0 时 x0 保持 0。普通软件只应在明确面向重定义该 MOP 的扩展时执行它。
假定 RV32/RV64 Zimop 1.0 已实现且该 MOP 未被重定义:mop.r.8 t0, t1 将 t0(x5)设为 0,与 t1(x6)原值无关;其他寄存器不变。rd 与源字段重叠时仍写零;rd=x0 时 x0 保持 0。普通软件只应在明确面向重定义该 MOP 的扩展时执行它。
在本页说明的 Zimop 默认定义下,将 0 写入 rd;若 rd=x0,x0 保持为 0。重定义后的效果需查对应扩展。
不应执行,除非软件明确面向重定义该 MOP 的扩展。