binutils Newspaper
OCTOBER 6, 2026
Date
/
Architectures
Components
Topics
News & Policy
Other
risc-v

RISC-V objdump decodes Zcmt table-jump entries

objdump can now decode RISC-V Zcmt table-jump entries, improving disassembly for this feature.

This commit enhances the RISC-V support in objdump by enabling it to decode Zcmt table-jump (JVT) entries. It introduces new fields in the disassembler’s private data structure, functions for handling JVT addresses, and updates the instruction printing logic to annotate JVT targets. This allows for more accurate disassembly of code using the Zcmt extension.

In Details

This change adds support for decoding RISC-V Zcmt table-jump (JVT) entries in opcodes/riscv-dis.c. New fields are added to struct riscv_private_data to store JVT information. Functions like riscv_set_xlen_from_elf, maybe_print_jvt_address, and riscv_disassemble_jvt are introduced to handle JVT parsing and display. The print_insn_args function is modified to annotate JVT targets, and riscv_disassemble_insn now handles Zcmt decoding. The new tests include manually populated RV32 and RV64 JVT tables with and without base symbols, leveraging plain --no-relax linking for address re…

For Context
RISC-V
An open-standard instruction set architecture (ISA) based on Reduced Instruction Set Computer principles.
objdump
A standard utility for displaying information from object files, including disassembly.
Zcmt
A RISC-V non-standard extension that provides table-jump instructions, often used for optimized indirect calls or jumps.
JVT
Jump Table, a data structure used to implement efficient indirect jumps or calls, often associated with specific compiler or architecture extensions like Zcmt.
disassembly
The process of converting machine code (binary instructions) back into human-readable assembly language.
RV32
The 32-bit variant of the RISC-V architecture.
RV64
The 64-bit variant of the RISC-V architecture.
Filed Under: risc-vobjdumpdisassemblerZcmt