C.JR 为什么清零目标最低位?
它采用 jalr x0,0(rs1) 的语义;JALR 在形成目标后清零最低位。
通过寄存器跳转:目标为 rs1 且最低位清零。CR格式。rs1!=x0。
扩展条件:RV32C / RV64C;本页按 C 扩展版本 2.0 说明。
C.JR (CR格式)按 jalr x0,0(rs1) 的语义跳转:目标由 rs1 得到并将最低位清零。仅rs1≠x0有效(rs1=x0保留);不保存返回地址。
三个学习步骤展示架构规则;不表示处理器流水线或周期。
RV32C / RV64C;C 扩展下 IALIGN=16,PC 为偶数字节地址。地址计算按 XLEN 回绕。 目标后续取指异常不在本模型中展示。
c.jr → PC ← 0x00002000; 不写链接寄存器
0x8082
尚未提交架构结果。
C.JR 使用 CR 格式并等价于 jalr x0,0(rs1):目标最低位清零,且不写返回地址。
结合 «c.jr ra # ra=x1=0x2001 -> PC=0x2000; no link write» 等实际代码理解该场景。
它采用 jalr x0,0(rs1) 的语义;JALR 在形成目标后清零最低位。