||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
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
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 18.104.22.168, p164, add a new code at the end of the list:
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 22.214.171.124, p164, insert this new paragraph at the beginning of
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:
Mark this entry as "New in DWARF Version 6" as usual.