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