Issue 210429.1: Clarify Description of Line Number Table Extended Opcodes
Section 6.2.3, pg 153
Some of the discussion of Issue 180426.2 regarding the proposed extended
DW_LNE_comment revealed that the description of line number table extended
opcodes as a group is not very clear in the document. The following proposes
an alternative description that is hopefully clearer.
1) In Section 6.2.3, p153, add a second paragraph to bullet 2 which introduces
standard opcodes:
One standard opcode (DW_LNS_extended_op) serves as an escape that allows
additional opcodes without reducing the number of special opcodes.
2) In Section 6.2.3, p153, bullet 3 which introduces extended opcodes, replace
the word "zero" with "DW_LNS_extended_op" (twice). The resulting paragraph
then reads
These have a multiple byte format. The first byte is DW_LNS_extended_op;
the next bytes are an unsigned LEB128 integer giving the number of bytes
in the instruction (not including the initial DW_LNS_extended_op or the
size). The remaining bytes are the instruction itself (which begins with
a ubyte extended opcode).
3) In Section 6.2.5.2, p164, add a new code at the end of the list:
13. DW_LNS_extended_op
The DW_LNS_extended_op opcode takes two operands. The first is an
unsigned LEB128 value that gives the size of the operand that follows.
The second begins with an extended opcode which is followed by
operands appropriate to that opcode.
4) In Section 6.2.5.3, p164, insert this new paragraph at the beginning of
the section:
Extended opcodes are used as part of a DW_LNS_extended_op operation
(see Section 6.2.3).
5) In Section 7.22, p236, Table 7.25, add the following at the beginning
of the table:
DW_LNS_extended_op 0x00
Mark this entry as "New in DWARF Version 6" as usual.
--
2022-03-22: Accepted. Recategorized to editorial.