compression.tex
[dwarf-doc.git] / dwarf5 / latexdoc / otherdebugginginformation.tex
index 636e5bb..db3fa3f 100644 (file)
@@ -240,7 +240,8 @@ object code. The matrix would have columns for:}
 \textit{Such a matrix, however, would be impractically large. We
 shrink it with two techniques. First, we delete from
 the matrix each row whose file, line, source column and
 \textit{Such a matrix, however, would be impractically large. We
 shrink it with two techniques. First, we delete from
 the matrix each row whose file, line, source column and
-discriminator information is identical with that of its
+\addtoindex{discriminator} information 
+is identical with that of its
 predecessors. Any deleted row would never be the beginning of
 a source statement. Second, we design a byte\dash coded language
 for a state machine and store a stream of bytes in the object
 predecessors. Any deleted row would never be the beginning of
 a source statement. Second, we design a byte\dash coded language
 for a state machine and store a stream of bytes in the object
@@ -310,7 +311,7 @@ registers:
 The program\dash counter value corresponding to a machine instruction
 generated by the compiler. \\
 
 The program\dash counter value corresponding to a machine instruction
 generated by the compiler. \\
 
-op\_index &
+\addtoindex{op\_index} &
 An unsigned integer representing the index of an operation within a VLIW
 instruction. The index of the first operation is 0. For non\dash VLIW
 architectures, this register will always be 0.
 An unsigned integer representing the index of an operation within a VLIW
 instruction. The index of the first operation is 0. For non\dash VLIW
 architectures, this register will always be 0.
@@ -320,47 +321,47 @@ pointer that can reference any individual operation with the instruction
 stream. \\
 
 
 stream. \\
 
 
-file &
+\addtoindex{file} &
 An unsigned integer indicating the identity of the source file
 corresponding to a machine instruction. \\
 
 An unsigned integer indicating the identity of the source file
 corresponding to a machine instruction. \\
 
-line &
+\addtoindex{line} &
 An unsigned integer indicating a source line number. Lines are numbered
 beginning at 1. The compiler may emit the value 0 in cases where an
 instruction cannot be attributed to any source line. \\
 
 An unsigned integer indicating a source line number. Lines are numbered
 beginning at 1. The compiler may emit the value 0 in cases where an
 instruction cannot be attributed to any source line. \\
 
-column &
+\addtoindex{column} &
 An unsigned integer indicating a column number within a source line.
 Columns are numbered beginning at 1. The value 0 is reserved to indicate
 that a statement begins at the ``left edge'' of the line. \\
 
 An unsigned integer indicating a column number within a source line.
 Columns are numbered beginning at 1. The value 0 is reserved to indicate
 that a statement begins at the ``left edge'' of the line. \\
 
-is\_stmt &
+\addtoindex{is\_stmt} &
 A boolean indicating that the current instruction is a recommended
 breakpoint location. A recommended breakpoint location 
 is intended to ``represent'' a line, a 
 statement and/or a semantically distinct subpart of a
 statement. \\
 
 A boolean indicating that the current instruction is a recommended
 breakpoint location. A recommended breakpoint location 
 is intended to ``represent'' a line, a 
 statement and/or a semantically distinct subpart of a
 statement. \\
 
-basic\_block  &
+\addtoindex{basic\_block}  &
 A boolean indicating that the current instruction is the beginning of a
 \addtoindex{basic block}. \\
 
 A boolean indicating that the current instruction is the beginning of a
 \addtoindex{basic block}. \\
 
-end\_sequence &
+\addtoindex{end\_sequence} &
 A boolean indicating that the current address is that of the first byte after
 the end of a sequence of target machine instructions. end\_sequence
 terminates a sequence of lines; therefore other information in the same
 row is not meaningful. \\
 
 A boolean indicating that the current address is that of the first byte after
 the end of a sequence of target machine instructions. end\_sequence
 terminates a sequence of lines; therefore other information in the same
 row is not meaningful. \\
 
-prologue\_end &
+\addtoindex{prologue\_end} &
 A boolean indicating that the current address is one (of possibly many)
 where execution should be suspended for an entry breakpoint of a
 function. \\
 
 A boolean indicating that the current address is one (of possibly many)
 where execution should be suspended for an entry breakpoint of a
 function. \\
 
-epilogue\_begin &
+\addtoindex{epilogue\_begin} &
 A boolean indicating that the current address is one (of possibly many)
 where execution should be suspended for an exit breakpoint of a function. \\
 
 A boolean indicating that the current address is one (of possibly many)
 where execution should be suspended for an exit breakpoint of a function. \\
 
-isa &
+\addtoindex{isa} &
 An unsigned integer whose value encodes the applicable
 instruction set architecture for the current instruction.
 The encoding of instruction sets should be shared by all
 An unsigned integer whose value encodes the applicable
 instruction set architecture for the current instruction.
 The encoding of instruction sets should be shared by all
@@ -368,7 +369,7 @@ users of a given architecture. It is recommended that this
 encoding be defined by the ABI authoring committee for each
 architecture. \\
 
 encoding be defined by the ABI authoring committee for each
 architecture. \\
 
-discriminator &
+\addtoindex{discriminator} &
 An unsigned integer identifying the block to which the
 current instruction belongs. Discriminator values are assigned
 arbitrarily by the DWARF producer and serve to distinguish
 An unsigned integer identifying the block to which the
 current instruction belongs. Discriminator values are assigned
 arbitrarily by the DWARF producer and serve to distinguish
@@ -511,8 +512,13 @@ The number assigned to the first special opcode.
 
 \textit{Opcode base is typically one greater than the highest-numbered
 standard opcode defined for the specified version of the line
 
 \textit{Opcode base is typically one greater than the highest-numbered
 standard opcode defined for the specified version of the line
-number information (12 in DWARF Version 3 and Version 4, 9 in
-Version 2).  If opcode\_base is less than the typical value,
+number information (12 in 
+\addtoindex{DWARF Version 3} and 
+\addtoindexx{DWARF Version 4}
+Version 4, 9 in
+\addtoindexx{DWARF Version 2}
+Version 2).  
+If opcode\_base is less than the typical value,
 then standard opcode numbers greater than or equal to the
 opcode base are not used in the line number table of this unit
 (and the codes are treated as special opcodes). If opcode\_base
 then standard opcode numbers greater than or equal to the
 opcode base are not used in the line number table of this unit
 (and the codes are treated as special opcodes). If opcode\_base
@@ -629,7 +635,7 @@ of the state machine registers.
 \item  Set the basic\_block register to ``false.'' \addtoindexx{basic block}
 \item  Set the prologue\_end register to ``false.''
 \item  Set the epilogue\_begin register to ``false.''
 \item  Set the basic\_block register to ``false.'' \addtoindexx{basic block}
 \item  Set the prologue\_end register to ``false.''
 \item  Set the epilogue\_begin register to ``false.''
-\item  Set the discriminator register to 0.
+\item  Set the \addtoindex{discriminator} register to 0.
 
 \end{enumerate}
 
 
 \end{enumerate}
 
@@ -717,7 +723,8 @@ new op\_index =
 
 \textit{When the maximum\_operations\_per\_instruction field is 1,
 op\_index is always 0 and these calculations simplify to those
 
 \textit{When the maximum\_operations\_per\_instruction field is 1,
 op\_index is always 0 and these calculations simplify to those
-given for addresses in DWARF Version 3.}
+given for addresses in 
+\addtoindex{DWARF Version 3}.}
 
 The amount to increment the line register is the line\_base plus
 the result of the adjusted opcode modulo the line\_range. That
 
 The amount to increment the line register is the line\_base plus
 the result of the adjusted opcode modulo the line\_range. That
@@ -784,14 +791,16 @@ actions performed by these opcodes are as follows:
 \item \textbf{DW\-\_LNS\-\_copy} \\
 The \livetarg{chap:DWLNScopy}{DW\-\_LNS\-\_copy} opcode takes no operands. It appends a row
 to the matrix using the current values of the state machine
 \item \textbf{DW\-\_LNS\-\_copy} \\
 The \livetarg{chap:DWLNScopy}{DW\-\_LNS\-\_copy} opcode takes no operands. It appends a row
 to the matrix using the current values of the state machine
-registers. Then it sets the discriminator register to 0,
-and sets the basic\_block, prologue\_end and epilogue\_begin
+registers. Then it sets the \addtoindex{discriminator} register to 0,
+and sets the \addtoindex{basic\_block}, 
+\addtoindex{prologue\_end} and 
+\addtoindex{epilogue\_begin}
 registers to ``false.''
 
 \item \textbf{DW\-\_LNS\-\_advance\-\_pc} \\
 The \livetarg{chap:DWLNSadvancepc}{DW\-\_LNS\-\_advance\-\_pc} opcode takes a single unsigned LEB128
 operand as the operation advance and modifies the address
 registers to ``false.''
 
 \item \textbf{DW\-\_LNS\-\_advance\-\_pc} \\
 The \livetarg{chap:DWLNSadvancepc}{DW\-\_LNS\-\_advance\-\_pc} opcode takes a single unsigned LEB128
 operand as the operation advance and modifies the address
-and op\_index registers as specified in 
+and \addtoindex{op\_index} registers as specified in 
 Section \refersec{chap:specialopcodes}.
 
 \item \textbf{DW\-\_LNS\-\_advance\-\_line} \\
 Section \refersec{chap:specialopcodes}.
 
 \item \textbf{DW\-\_LNS\-\_advance\-\_line} \\
@@ -983,7 +992,7 @@ in the file register of the state machine.
 The \livetarg{chap:DWLNEsetdiscriminator}{DW\-\_LNE\-\_set\-\_discriminator}
 opcode takes a single
 parameter, an unsigned LEB128 integer. It sets the
 The \livetarg{chap:DWLNEsetdiscriminator}{DW\-\_LNE\-\_set\-\_discriminator}
 opcode takes a single
 parameter, an unsigned LEB128 integer. It sets the
-discriminator register to the new value.
+\addtoindex{discriminator} register to the new value.