Why is c.jal RV32C-only?
The C extension defines C.JAL for RV32C; in RV64C the same encoding space is used for C.ADDIW.
Unconditional jump; write pc+2 as the return address to x1. CJ format, RV32C-only.
c.jal is an RV32C-only CJ-format instruction: it adds the sign-extended, 2-byte-aligned PC-relative offset to pc and writes pc+2 to x1/ra.
Shows only manual-defined compressed fields, operands, and architectural state; it does not model a pipeline, cache, or timing.
CJ imm[11|4|9:8|10|6|7|3:1|5] -> offset
c.jal is an RV32C-only CJ-format instruction: it adds the sign-extended, 2-byte-aligned PC-relative offset to pc and writes pc+2 to x1/ra.
Understand this scenario with real code like «c.jal 256 # call subroutine at pc+256».
The C extension defines C.JAL for RV32C; in RV64C the same encoding space is used for C.ADDIW.
No. It is a 16-bit encoded instruction defined by the C extension.