为什么 c.jal 只在 RV32C 中定义?
官方 C 扩展把 C.JAL 定义为 RV32C 指令;在 RV64C 中相同编码空间用于 C.ADDIW。
执行无条件跳转,并将 pc+2 的返回地址写入 x1。CJ 格式,仅 RV32C。
c.jal 是仅 RV32C 定义的 CJ 格式指令:将符号扩展的、2 字节对齐的 PC 相对 offset 加到 pc,并把 pc+2 写入 x1/ra。
仅展示手册定义的压缩字段、操作数和架构可见状态;不表示流水线、缓存或时序。
CJ imm[11|4|9:8|10|6|7|3:1|5] -> offset
c.jal 是仅 RV32C 定义的 CJ 格式指令:将符号扩展的、2 字节对齐的 PC 相对 offset 加到 pc,并把 pc+2 写入 x1/ra。
使用 jal ra, label 或 jalr ra, rs, imm。
官方 C 扩展把 C.JAL 定义为 RV32C 指令;在 RV64C 中相同编码空间用于 C.ADDIW。
不是。它是 C 扩展定义的 16 位编码指令。