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, save return address
CM.JALT (Zcmt) decodes only for index 32-255. It fetches an instruction-memory table entry at the JVT CSR base plus index<<2 on RV32 or index<<3 on RV64, writes pc+2 to x1 (ra), 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.JALT uses index 32-255 to select a JVT entry, links pc+2 to ra, and jumps to the fetched target with bit 0 cleared.
RV32 Zcmt, PC=0x1000, jvt.mode=0, base=0x2000, entry[0x2080]=0x80001001: cm.jalt 32 writes PC=0x80001000 and ra=0x1002 when fetches complete and access is permitted.
RV32 Zcmt, PC=0x1000, jvt.mode=0, base=0x2000, entry[0x2080]=0x80001001: cm.jalt 32 writes PC=0x80001000 and ra=0x1002 when fetches complete and access is permitted.
RV32 Zcmt, PC=0x1000, jvt.mode=0, base=0x2000, entry[0x2080]=0x80001001: cm.jalt 32 writes PC=0x80001000 and ra=0x1002 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.