Is the table entry an ordinary data load?
No. Instruction and table entry are two implicit fetches requiring execute permission; read permission is irrelevant. The entry follows current data endianness.
Indirect jump via table
CM.JT (Zcmt) decodes only for index 0-31. It fetches an instruction-memory table entry at the JVT CSR base plus index<<2 on RV32 or index<<3 on RV64, then writes the entry with bit 0 cleared to pc. Only jvt.mode=0 defines this behavior; a reserved mode makes the instruction reserved. It reuses c.fsdsp encodings, is incompatible with Zcd, and Zcmt depends on Zca and Zicsr.
Shows only official compressed fields, conditions, and architectural state; it does not model a pipeline, cache, or timing.
Assumes Zca, Zicsr and Zcmt are available and jvt access is permitted, including applicable stateen controls. Zcmt table entries follow current data endianness and are fetched as instruction memory; JVT base must be at least 64-byte aligned.
CM.JT uses index 0-31 to select a JVT entry and jumps to the fetched target with bit 0 cleared without writing ra.
RV32 Zcmt, jvt.mode=0, base=0x2000, entry[0x200c]=0x80001001: cm.jt 3 writes PC=0x80001000 without writing ra, when fetches complete and access is permitted.
RV32 Zcmt, jvt.mode=0, base=0x2000, entry[0x200c]=0x80001001: cm.jt 3 writes PC=0x80001000 without writing ra, when fetches complete and access is permitted.
No. Instruction and table entry are two implicit fetches requiring execute permission; read permission is irrelevant. The entry follows current data endianness.
In the shared encoding, index=0-31 decodes as CM.JT without writing ra; 32-255 decodes as CM.JALT, writing ra=PC+2 on completion. This behavior is defined for jvt.mode=0.