AMOXOR.H 的 rd 是零扩展吗?
不是。Zabha 的 AMO.H old value 写回 rd 时符号扩展到 XLEN;AMOMINU.H/AMOMAXU.H 的 U 只表示无符号比较。
AMOXOR.H 原子读取 halfword 旧值、符号扩展写 rd,并对旧 halfword 与 rs2[15:0] 逐 bit XOR 后写回。
AMOXOR.H 是 Zabha 字节/半字原子内存操作中的 halfword AMO。它按 16-bit 宽度执行读改写,rd 接收旧内存 halfword 的符号扩展值;对旧 halfword 与 rs2[15:0] 逐 bit XOR 后写回。aq/rl 位只提供内存排序标注,不改变数据计算。
展示 Zabha halfword 原子指令的字段解析、aq/rl 排序位、内存读取和 RMW 状态更新。
Zabha 扩展 halfword 原子指令使用 32-bit 编码;动画先展示字段切分。
该动画展示 ISA 可见的原子读改写、比较并交换、LR/SC 预留状态和内存排序位,不表示任何特定 CPU 的缓存一致性实现、流水线或时序。
AMOXOR.H 是 L5 Zabha halfword AMO:以 16-bit 宽度原子读取旧内存值,旧值符号扩展写入 rd,同时对旧 halfword 与 rs2[15:0] 逐 bit XOR 后写回。
结合 «amoxor.h a0, a2, (a1)» 等实际代码理解该场景。
结合 «amoxor.h a0, a2, (a1)» 等实际代码理解该场景。
不是。Zabha 的 AMO.H old value 写回 rd 时符号扩展到 XLEN;AMOMINU.H/AMOMAXU.H 的 U 只表示无符号比较。
架构语义只修改目标 16-bit halfword,并以 halfword 宽度计算新内存值;相邻字节不属于该数据结果。