c.subw 为什么有寄存器限制?
多数 C 扩展格式用较短字段编码寄存器,因此部分形式只能访问 x8..x15 或固定寄存器。
32位减法再符号扩展至64位。CA格式,RV64C。
c.subw 是 RV64C 的 CA 格式指令,对 rd' - rs2' 做 32 位减法,并把 bit31 符号扩展到 XLEN 后写回 rd'。
c.subw 是 RV64C 的 CA 格式指令,对 rd' - rs2' 做 32 位减法,并把 bit31 符号扩展到 XLEN 后写回 rd'。
结合 «c.subw x8, x9 # x8 = sext_w(x8-x9)» 等实际代码理解该场景。
多数 C 扩展格式用较短字段编码寄存器,因此部分形式只能访问 x8..x15 或固定寄存器。
不是。它是 C 扩展定义的 16 位编码指令。