binutils Newspaper
OCTOBER 6, 2026
rfc — Proposed

AArch64 Disassembler: Annotate undefined instructions

Discussion continues on the AArch64 disassembler's heuristic for annotating undefined instructions, with concerns about accuracy and user interpretation.

Alice Carlotti clarifies that the AArch64 disassembler’s heuristic for annotating undefined instructions is primarily for the objdump user, not binary creators. She acknowledges issues with conflating 32-bit and 64-bit values and potential misinterpretations when content is treated as data instead of instructions. Nick Clifton suggests improvements but notes the feature is already committed.

In the Thread 2 participants
  1. Alice Carlotti <alice.carlotti@arm.com> proposer

    Clarifies that the AArch64 disassembler's annotation of undefined instructions targets `objdump` users and addresses concerns about the heuristic's accuracy and interpretation.

    “I'm referring to the user who runs objdump, not the user who creates the binary. It looks like it will usually require the objdump -D option to get any of these notes emitted.”
  2. Nick Clifton <nick.clifton@arm.com> reviewer

    Acknowledges Alice's points and suggests potential improvements to the heuristic, while noting the feature's inclusion in a release.

    “True. I suppose that the heuristic could be improved to test to see if a following 32-bit value could be combined with the current 32-bit value to make a valid symbolic address. But if you are already unhappy with the feature then maybe this is going a step too far.”

Technical Tradeoffs

  • Accuracy of disassembler heuristics versus code complexity and maintainability.
  • Balancing the desire to provide helpful annotations with the risk of misinterpretation.
  • Informing users about the limitations and assumptions of automated annotation features.

In Details

This discussion concerns the AArch64 disassembler's heuristic for annotating what appear to be undefined instructions. Concerns have been raised about how the disassembler conflates 32-bit values with 64-bit addresses and misinterprets content as data when users expect instructions. Alice Carlotti clarifies the intended audience and limitations, while Nick Clifton suggests improvements to the heuristic, though the feature is already committed.

For Context
AArch64
The 64-bit ARM architecture.
Disassembler
A tool that translates machine code into human-readable assembly language.
undefined instruction
A machine code instruction that is not recognized by the processor, often resulting in an exception.
objdump
A standard Unix utility that displays information from object files, including disassembled code.
heuristic
A practical approach or rule of thumb used to solve a problem, which may not be optimal or perfect but is sufficient for the immediate goals.
Filed Under: binutilsaarch64disassemblerobjdumparm