Misc corrections Chpt 6 thru App A
[dwarf-doc.git] / dwarf5 / latexdoc / otherdebugginginformation.tex
index c0172b7..4a5fc68 100644 (file)
@@ -92,11 +92,12 @@ Each set begins with a header containing four values:
 \begin{enumerate}[1.]
 
 \item unit\_length (initial length) \\
+\addtoindexx{unit\_length}
 The total length of the all of the entries for that set,
 not including the length field itself 
 (see Section \refersec{datarep:locationdescriptions}).
 
-\item  version (uhalf) \\
+\item  version (\addtoindex{uhalf}) \\
 A version number
 \addtoindexx{version number!name lookup table}
 \addtoindexx{version number!type lookup table} 
@@ -156,15 +157,14 @@ portion of the program’s address space that is covered by
 a single compilation unit.
 
 Each set begins with a header containing five values:
-
 \begin{enumerate}[1.]
-
 \item unit\_length (initial length) \\
+\addtoindexx{unit\_length}
 The total length of all of the
 entries for that set, not including the length field itself
 (see Section \refersec{datarep:initiallengthvalues}).
 
-\item version (uhalf) \\
+\item version (\addtoindex{uhalf}) \\
 A version number\addtoindexx{version number!address lookup table} 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 This number is specific to the address lookup table and is
@@ -177,21 +177,17 @@ beginning of the \addtoindex{.debug\_info} or
 \addtoindex{.debug\_types} section of the
 compilation unit header referenced by the set.
 
-\item address\_size (ubyte) \\
+\item address\_size (\addtoindex{ubyte}) \\
 The \addtoindex{size of an address}
-in 
-\addtoindexx{ubyte}
-bytes on
+in bytes on
 \addtoindexx{address\_size}
 the target architecture. For 
 \addtoindexx{address space!segmented}
 segmented addressing, this is
 the size of the offset portion of the address.
 
-\item segment\_size (ubyte) \\
-The size of a segment selector 
-\addtoindexx{ubyte}
-in
+\item segment\_size (\addtoindex{ubyte}) \\
+The size of a segment selector in
 \addtoindexx{segment\_size}
 bytes on the target architecture. If the target system uses
 a flat address space, this value is 0.
@@ -224,8 +220,7 @@ multiple address range descriptors for that compilation unit.}
 \section{Line Number Information}
 \label{chap:linenumberinformation}
 \textit{A source\dash level debugger will need to know how to
-%FIXME: the see here is not 'see also'. Fix?
-\addtoindexx{line number information|see{statement list attribute}}
+\addtoindexx{line number information|see{\textit{also} statement list attribute}}
 associate locations in the source files with the corresponding
 machine instruction addresses in the executable object or
 the shared objects used by that executable object. Such an
@@ -267,7 +262,7 @@ object code. The matrix would have columns for:}
 \item \textit{the source file name}
 \item \textit{the source line number}
 \item \textit{the source column number}
-\item \textit{whether this insruction is the beginning of a \addtoindex{basic block}}
+\item \textit{whether this instruction is the beginning of a \addtoindex{basic block}}
 \item \textit{and so on}
 \end{itemize}
 
@@ -418,7 +413,8 @@ should be zero. \\
 At the beginning  of each sequence within a line number
 program, the state of the registers is:
 
-\begin{tabular}{lp{8cm}}
+%\begin{tabular}{lp{8cm}}
+\begin{tabular}{lp{11cm}}
 address & 0 \\
 \addtoindex{op\_index} & 0 \\
 file & 1 \\
@@ -445,14 +441,14 @@ The state machine instructions in a line number program belong to one of three c
 
 \begin{tabular}{lp{10cm}}
 special opcodes &
-These have a ubyte opcode field and no operands.
+These have a \addtoindex{ubyte} opcode field and no operands.
 
 \textit{Most of the instructions in a 
 line number program are special opcodes.} \\
 
 standard opcodes &
-These have a ubyte opcode field which may be followed by zero or more
-LEB128 operands (except for 
+These have a \addtoindex{ubyte} opcode field which may be followed by zero or more
+\addtoindex{LEB128} operands (except for 
 \livelink{chap:DWLNSfixedadvancepc}{DW\-\_LNS\-\_fixed\-\_advance\-\_pc}, see below).
 The opcode implies the number of operands and their meanings, but the
 line number program header also specifies the number of operands for
@@ -460,9 +456,9 @@ each standard opcode. \\
 
 extended opcodes &
 These have a multiple byte format. The first byte is zero; the next bytes
-are an unsigned LEB128 integer giving the number of bytes in the
+are an unsigned LEB128\addtoindexx{LEB128!unsigned} integer giving the number of bytes in the
 instruction itself (does not include the first zero byte or the size). The
-remaining bytes are the instruction itself (which begins with a ubyte
+remaining bytes are the instruction itself (which begins with a \addtoindex{ubyte}
 extended opcode). \\
 \end{tabular}
 
@@ -481,11 +477,12 @@ a header containing the following fields in order:
 
 \begin{enumerate}[1.]
 \item unit\_length (initial length)  \\
+\addtoindexx{unit\_length}
 The size in bytes of the line number information for this
 compilation unit, not including the unit\_length field itself
 (see Section \refersec{datarep:initiallengthvalues}). 
 
-\item version (uhalf
+\item version (\addtoindex{uhalf}
 A version number\addtoindexx{version number!line number information} 
 (see Appendix \refersec{app:dwarfsectionversionnumbersinformative}). 
 This number is specific to
@@ -500,7 +497,7 @@ length; in the 64\dash bit DWARF format, this field is an
 8\dash byte unsigned length 
 (see Section \refersec{datarep:32bitand64bitdwarfformats}). 
 
-\item minimum\_instruction\_length (ubyte)  \\
+\item minimum\_instruction\_length (\addtoindex{ubyte})  \\
 \addtoindexx{minimum\_instruction\_length}
 The size in bytes of the smallest target machine
 instruction. Line number program opcodes that alter
@@ -508,7 +505,7 @@ the address and \addtoindex{op\_index} registers use this and
 \addtoindexx{maximum\_operations\_per\_instruction}
 maximum\-\_operations\-\_per\-\_instruction in their calculations. 
 
-\item maximum\_operations\_per\_instruction (ubyte) \\
+\item maximum\_operations\_per\_instruction (\addtoindex{ubyte}) \\
 The 
 \addtoindexx{maximum\_operations\_per\_instruction}
 maximum number of individual operations that may be
@@ -521,7 +518,7 @@ For non-VLIW
 architectures, this field is 1, the \addtoindex{op\_index register} is always
 0, and the operation pointer is simply the address register.
 
-\item default\_is\_stmt (ubyte) \\
+\item default\_is\_stmt (\addtoindex{ubyte}) \\
 \addtoindexx{default\_is\_stmt}
 The initial value of the \addtoindex{is\_stmt} register.  
 
@@ -552,18 +549,14 @@ used as part of support for debugging optimized code.}
 \addtoindexx{line\_base}
 This parameter affects the meaning of the special opcodes. See below.
 
-\item line\_range (ubyte) \\
+\item line\_range (\addtoindex{ubyte}) \\
 \addtoindexx{line\_range}
-This 
-\addtoindexx{ubyte}
-parameter affects the meaning of the special opcodes. See below.
+This parameter affects the meaning of the special opcodes. See below.
 
-\item opcode\_base (ubyte) \\
+\item opcode\_base (\addtoindex{ubyte}) \\
 The 
 \addtoindex{opcode\_base}
-number
-\addtoindexx{ubyte}
- assigned to the first special opcode.
+number assigned to the first special opcode.
 
 \textit{Opcode base is typically one greater than the highest-numbered
 \addtoindex{opcode\_base}
@@ -583,9 +576,9 @@ is greater than the typical value, then the numbers between
 that of the highest standard opcode and the first special
 opcode (not inclusive) are used for vendor specific extensions.}
 
-\item standard\_opcode\_lengths (array of ubyte) \\
+\item standard\_opcode\_lengths (array of \addtoindex{ubyte}) \\
 \addtoindexx{standard\_opcode\_lengths}
-This array specifies the number of LEB128 operands for each
+This array specifies the number of \addtoindex{LEB128} operands for each
 of the standard opcodes. The first element of the array
 corresponds to the opcode whose value is 1, and the last
 element corresponds to the opcode whose value 
@@ -633,20 +626,24 @@ values:
 path name of a source file. If the entry contains a file
 name or relative path name, the file is located relative
 to either the compilation directory (as specified by the
-\livelink{chap:DWATcompdir}{DW\-\_AT\-\_comp\-\_dir} attribute given in the compilation unit) or one
+\livelink{chap:DWATcompdir}{DW\-\_AT\-\_comp\-\_dir} 
+attribute given in the compilation unit) or one
 of the directories listed in the 
 \addtoindex{include\_directories} section.
 
-\item An unsigned LEB128 number representing the directory
+\item An unsigned LEB128\addtoindexx{LEB128!unsigned} 
+number representing the directory
 index of a directory in the 
 \addtoindex{include\_directories} section.
 
 
-\item An unsigned LEB128 number representing the
+\item An unsigned LEB128\addtoindexx{LEB128!unsigned}
+number representing the
 (implementation\dash defined) time of last modification for
 the file, or 0 if not available.
 
-\item An unsigned LEB128 number representing the length in
+\item An unsigned LEB128\addtoindexx{LEB128!unsigned} 
+number representing the length in
 bytes of the file, or 0 if not available.  
 
 \end{itemize}
@@ -691,7 +688,7 @@ scheduling or other optimization.)
 
 \subsubsection{Special Opcodes} 
 \label{chap:specialopcodes}
-Each ubyte special opcode has the following effect on the state machine:
+Each \addtoindex{ubyte} special opcode has the following effect on the state machine:
 
 \begin{enumerate}[1.]
 
@@ -758,10 +755,11 @@ special opcode. The \addtoindex{operation advance} represents the number
 of operations to skip when advancing the \addtoindex{operation pointer}.
 
 The special opcode is then calculated using the following formula:
-
-  opcode = ( \textit{desired line increment} - \addtoindex{line\_base}) +
-(\addtoindex{line\_range} * \textit{operation advance} ) + \addtoindex{opcode\_base}
-
+\begin{alltt}
+  opcode = 
+    (\textit{desired line increment} - \addtoindex{line\_base}) +
+      (\addtoindex{line\_range} * \textit{operation advance}) + \addtoindex{opcode\_base}
+\end{alltt}
 If the resulting opcode is greater than 255, a standard opcode
 must be used instead.
 
@@ -775,29 +773,17 @@ The \textit{operation advance}
 is the result of the adjusted opcode divided by the
 line\_range. The new address and \addtoindex{op\_index} values
 are given by
-\begin{myindentpara}{1cm}
-
-\textit{adjusted opcode} = opcode – opcode\_base
-
-\textit{operation advance} = \textit{adjusted opcode} / line\_range
-
-\begin{myindentpara}{1cm}
-new address =
+\begin{alltt}
+  \textit{adjusted opcode} = opcode – opcode\_base
+  \textit{operation advance} = \textit{adjusted opcode} / line\_range
 
-address +
+  new address = address +
+    \addtoindex{minimum\_instruction\_length} *
+      ((\addtoindex{op\_index} + \addtoindex{operation advance}) / \addtoindex{maximum\_operations\_per\_instruction})
 
-\addtoindex{minimum\_instruction\_length} *
-((\addtoindex{op\_index} + \addtoindex{operation advance}) / 
-\addtoindex{maximum\_operations\_per\_instruction})
-\end{myindentpara}
-new op\_index =
-
-\begin{myindentpara}{1cm}
-(\addtoindex{op\_index} + \addtoindex{operation advance}) \% 
-\addtoindex{maximum\_operations\_per\_instruction}
-\end{myindentpara}
-
-\end{myindentpara}
+  new op\_index =
+    (\addtoindex{op\_index} + \addtoindex{operation advance}) \% \addtoindex{maximum\_operations\_per\_instruction}
+\end{alltt}
 
 \textit{When the \addtoindex{maximum\_operations\_per\_instruction} field is 1,
 op\_index is always 0 and these calculations simplify to those
@@ -811,9 +797,9 @@ the result of the
 \addtoindex{line\_range}. That
 is,
 
-\begin{myindentpara}{1cm}
-line increment = \addtoindex{line\_base} + (adjusted opcode \% \addtoindex{line\_range})
-\end{myindentpara}
+\begin{alltt}
+  line increment = \addtoindex{line\_base} + (\textit{adjusted opcode} \% \addtoindex{line\_range})
+\end{alltt}
 
 \textit{As an example, suppose that the opcode\_base is 13, 
 \addtoindex{line\_base}
@@ -830,11 +816,10 @@ is within the range [0, 20], but not all line advances are
 available for the maximum \addtoindex{operation advance} (see below).}
 
 \textit{The opcode mapping would be:}
-% FIXME: This should be a tabular or the like, not a verbatim
-\begin{verbatim}
-            \       Line advance
-   Operation \
-     Advance  \ -3  -2  -1   0   1   2   3   4   5   6   7   8
+\begin{alltt}\textit{
+                        Line Advance
+   Operation  
+     Advance    -3  -2  -1   0   1   2   3   4   5   6   7   8
    ---------   -----------------------------------------------
            0    13  14  15  16  17  18  19  20  21  22  23  24
            1    25  26  27  28  29  30  31  32  33  34  35  36
@@ -857,7 +842,7 @@ available for the maximum \addtoindex{operation advance} (see below).}
           18   229 230 231 232 233 234 235 236 237 238 239 240 
           19   241 242 243 244 245 246 247 248 249 250 251 252
           20   253 254 255
-\end{verbatim}
+}\end{alltt}
 
 
 \textit{There is no requirement that the expression 
@@ -874,7 +859,8 @@ actions performed by these opcodes are as follows:
 \begin{enumerate}[1.]
 
 \item \textbf{DW\-\_LNS\-\_copy} \\
-The \livetarg{chap:DWLNScopy}{DW\-\_LNS\-\_copy} opcode takes no operands. It appends a row
+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 \addtoindex{discriminator} register to 0,
 and sets the \addtoindex{basic\_block}, 
@@ -883,24 +869,27 @@ and sets the \addtoindex{basic\_block},
 registers to ``false.''
 
 \item \textbf{DW\-\_LNS\-\_advance\-\_pc} \\
-The \livetarg{chap:DWLNSadvancepc}{DW\-\_LNS\-\_advance\-\_pc} opcode takes a single unsigned LEB128
+The \livetarg{chap:DWLNSadvancepc}{DW\-\_LNS\-\_advance\-\_pc} 
+opcode takes a single unsigned LEB128\addtoindexx{LEB128!unsigned}
 operand as the \addtoindex{operation advance} and modifies the address
 and \addtoindex{op\_index} registers as specified in 
 Section \refersec{chap:specialopcodes}.
 
 \item \textbf{DW\-\_LNS\-\_advance\-\_line} \\
-The \livetarg{chap:DWLNSadvanceline}{DW\-\_LNS\-\_advance\-\_line} opcode takes a single signed LEB128
+The \livetarg{chap:DWLNSadvanceline}{DW\-\_LNS\-\_advance\-\_line} 
+opcode takes a single signed LEB128\addtoindexx{LEB128!signed}
 operand and adds that value to the line register of the
 state machine.
 
 \item \textbf{DW\-\_LNS\-\_set\-\_file} \\ 
 The \livetarg{chap:DWLNSsetfile}{DW\-\_LNS\-\_set\-\_file} opcode takes a single
-unsigned LEB128 operand and stores it in the file register
+unsigned LEB128\addtoindexx{LEB128!unsigned} 
+operand and stores it in the file register
 of the state machine.
 
 \item \textbf{DW\-\_LNS\-\_set\-\_column} \\ 
 The \livetarg{chap:DWLNSsetcolumn}{DW\-\_LNS\-\_set\-\_column} opcode takes a
-single unsigned LEB128 operand and stores it in the column
+single unsigned LEB128\addtoindexx{LEB128!unsigned} operand and stores it in the column
 register of the state machine.
 
 \item \textbf{DW\-\_LNS\-\_negate\-\_stmt} \\
@@ -935,15 +924,16 @@ or more bytes.}
 
 \item \textbf{DW\-\_LNS\-\_fixed\-\_advance\-\_pc} \\ 
 The \livetarg{chap:DWLNSfixedadvancepc}{DW\-\_LNS\-\_fixed\-\_advance\-\_pc} opcode
-takes a single uhalf (unencoded) operand and adds it to the
+takes a single \addtoindex{uhalf} (unencoded) operand and adds it to the
 address register of the state machine and sets the op\_index
 register to 0. This is the only standard opcode whose operand
 is \textbf{not} a variable length number. It also does 
 \textbf{not} multiply the
 operand by the \addtoindex{minimum\_instruction\_length} field of the header.
 
-\textit{Existing assemblers cannot emit \livelink{chap:DWLNSadvancepc}{DW\-\_LNS\-\_advance\-\_pc} or special
-opcodes because they cannot encode LEB128 numbers or judge when
+\textit{Existing assemblers cannot emit 
+\livelink{chap:DWLNSadvancepc}{DW\-\_LNS\-\_advance\-\_pc} or special
+opcodes because they cannot encode \addtoindex{LEB128} numbers or judge when
 the computation of a special opcode overflows and requires
 the use of \livelink{chap:DWLNSadvancepc}{DW\-\_LNS\-\_advance\-\_pc}. Such assemblers, however, can
 use \livelink{chap:DWLNSfixedadvancepc}{DW\-\_LNS\-\_fixed\-\_advance\-\_pc} instead, sacrificing compression.}
@@ -1001,7 +991,7 @@ subroutines).}
 
 \item \textbf{DW\-\_LNS\-\_set\-\_isa} \\
 The \livetarg{chap:DWLNSsetisa}{DW\-\_LNS\-\_set\-\_isa} opcode takes a single
-unsigned LEB128 operand and stores that value in the 
+unsigned LEB128\addtoindexx{LEB128!unsigned} operand and stores that value in the 
 \addtoindex{isa}
 register of the state machine.
 \end{enumerate}
@@ -1052,14 +1042,15 @@ to either the compilation directory (as specified by the
 or one of the directories in the 
 \addtoindex{include\_directories} section.
 
-\item An unsigned LEB128 number representing the directory index
+\item An unsigned LEB128\addtoindexx{LEB128!unsigned} 
+number representing the directory index
 of the directory in which the file was found.  
 
-\item An unsigned
-LEB128 number representing the time of last modification
+\item An unsigned LEB128\addtoindexx{LEB128!unsigned} 
+number representing the time of last modification
 of the file, or 0 if not available.  
 
-\item An unsigned LEB128
+\item An unsigned LEB128\addtoindexx{LEB128!unsigned}
 number representing the length in bytes of the file, or 0 if
 not available.
 \end{enumerate}
@@ -1084,7 +1075,8 @@ in the file register of the state machine.
 \item \textbf{DW\-\_LNE\-\_set\-\_discriminator} \\
 The \livetarg{chap:DWLNEsetdiscriminator}{DW\-\_LNE\-\_set\-\_discriminator}
 opcode takes a single
-parameter, an unsigned LEB128 integer. It sets the
+parameter, an unsigned LEB128\addtoindexx{LEB128!unsigned} 
+integer. It sets the
 \addtoindex{discriminator} register to the new value.
 
 
@@ -1098,7 +1090,7 @@ gives some sample line number programs.}
 \label{chap:macroinformation}
 \textit{Some languages, such as 
 \addtoindex{C} and 
-addtoindex{C++}, provide a way to replace
+\addtoindex{C++}, provide a way to replace
 \addtoindex{macro information}
 text in the source program with macros defined either in the
 source file itself, or in another file included by the source
@@ -1490,14 +1482,14 @@ integral multiple of the address size.
 \item  CIE\_id (4 or 8 bytes, see Section \refersec{datarep:32bitand64bitdwarfformats}) \\
 A constant that is used to distinguish CIEs from FDEs.
 
-\item  version (ubyte) \\
+\item  version (\addtoindex{ubyte}) \\
 A version number\addtoindexx{version number!call frame information} 
 (see Section \refersec{datarep:callframeinformation}). 
 This number is specific to the call frame information
 and is independent of the DWARF version number.
 
 
-\item  augmentation (UTF\dash 8 string) \\
+\item  augmentation (\addtoindex{UTF\dash 8} string) \\
 A null\dash terminated UTF\dash 8 string that identifies the augmentation
 to this CIE or to the FDEs that use it. If a reader encounters
 an augmentation string that is unexpected, then only the
@@ -1523,23 +1515,20 @@ needs to be freed on exit from the routine.}
 any \addtoindex{.debug\_info} section, the augmentation string always uses
 UTF\dash 8 encoding.}
 
-\item  address\_size (ubyte) \\
+\item  address\_size (\addtoindex{ubyte}) \\
 The size of a target address
 \addtoindexx{address\_size}
 in this CIE and any FDEs that
-\addtoindexx{ubyte}
 use it, in bytes. If a compilation unit exists for this frame,
 its address size must match the address size here.
 
-\item  segment\_size (ubyte) \\
-The 
-\addtoindexx{segment\_size}
-size 
-\addtoindexx{ubyte}
-of a segment selector in this CIE and any FDEs that
+\item  segment\_size (\addtoindex{ubyte}) \\
+The \addtoindexx{segment\_size}
+size of a segment selector in this CIE and any FDEs that
 use it, in bytes.
 
-\item  \addtoindex{code\_alignment\_factor} (unsigned LEB128) \\
+\item  \addtoindex{code\_alignment\_factor} (unsigned LEB128) 
+\addtoindexx{LEB128!unsigned}\addtoindexx{unsigned LEB128|see{LEB128, unsigned}} \\
 \addtoindex{code alignment factor}
 A 
 \addtoindexx{\textless caf\textgreater|see{code alignment factor}}
@@ -1548,7 +1537,8 @@ instructions (see
 Section \refersec{chap:rowcreationinstructions}).
 
 
-\item  \addtoindex{data\_alignment\_factor} (signed LEB128) \\
+\item  \addtoindex{data\_alignment\_factor} (signed LEB128)
+\addtoindexx{LEB128!signed}\addtoindexx{signed LEB128|see{LEB128, signed}} \\
 \addtoindexx{data alignment factor}
 A 
 \addtoindexx{\textless daf\textgreater|see{data alignment factor}}
@@ -1556,13 +1546,13 @@ constant that is factored out of certain offset instructions
 (see below). The resulting value is  \textit{(operand *
 data\_alignment\_factor)}.
 
-\item  return\_address\_register (unsigned LEB128) \\
+\item  return\_address\_register (unsigned LEB128)\addtoindexx{LEB128!unsigned} \\
 An unsigned LEB128 constant that indicates which column in the
 rule table represents the return address of the function. Note
 that this column might not correspond to an actual machine
 register.
 
-\item initial\_instructions (array of ubyte) \\
+\item initial\_instructions (array of \addtoindex{ubyte}) \\
 A sequence of rules that are interpreted to create the initial
 setting of each column in the table.  The default rule for
 all columns before interpretation of the initial instructions
@@ -1570,7 +1560,7 @@ is the undefined rule. However, an ABI authoring body or a
 compilation system authoring body may specify an alternate
 default value for any or all columns.
 
-\item padding (array of ubyte) \\
+\item padding (array of \addtoindex{ubyte}) \\
 Enough \livelink{chap:DWCFAnop}{DW\-\_CFA\-\_nop} instructions to make the size of this entry
 match the length value above.
 \end{enumerate}
@@ -1611,16 +1601,12 @@ number
 \addtoindexx{target address}
 of bytes of program instructions described by this entry.
 
-\item instructions (array of ubyte) \\
-A 
-\addtoindexx{ubyte}
-sequence of table defining instructions that are described below.
+\item instructions (array of \addtoindex{ubyte}) \\
+A sequence of table defining instructions that are described below.
 
-\item 6. padding (array of ubyte) \\
+\item 6. padding (array of \addtoindex{ubyte}) \\
 Enough \livelink{chap:DWCFAnop}{DW\-\_CFA\-\_nop} instructions 
-to make the size of this
-\addtoindexx{ubyte}
-entry match the length value above.
+to make the size of this entry match the length value above.
 \end{enumerate}
 
 \subsection{Call Frame Instructions}
@@ -1691,19 +1677,21 @@ other values in the new row are initially identical to the
 current row
 
 \item \textbf{DW\-\_CFA\-\_advance\-\_loc1} \\
-The \livetarg{chap:DWCFAadvanceloc1}{DW\-\_CFA\-\_advance\-\_loc1} instruction takes a single ubyte
+The \livetarg{chap:DWCFAadvanceloc1}{DW\-\_CFA\-\_advance\-\_loc1} instruction takes a single \addtoindex{ubyte}
 operand that represents a constant delta. This instruction
 is identical to \livelink{chap:DWCFAadvanceloc}{DW\-\_CFA\-\_advance\-\_loc} except for the encoding
 and size of the delta operand.
 
 \item \textbf{DW\-\_CFA\-\_advance\-\_loc2} \\
-The \livetarg{chap:DWCFAadvanceloc2}{DW\-\_CFA\-\_advance\-\_loc2} instruction takes a single uhalf
+The \livetarg{chap:DWCFAadvanceloc2}{DW\-\_CFA\-\_advance\-\_loc2} instruction takes a single
+\addtoindex{uhalf}
 operand that represents a constant delta. This instruction
 is identical to \livelink{chap:DWCFAadvanceloc}{DW\-\_CFA\-\_advance\-\_loc} except for the encoding
 and size of the delta operand.
 
 \item \textbf{DW\-\_CFA\-\_advance\-\_loc4} \\
-The \livetarg{chap:DWCFAadvanceloc4}{DW\-\_CFA\-\_advance\-\_loc4} instruction takes a single uword
+The \livetarg{chap:DWCFAadvanceloc4}{DW\-\_CFA\-\_advance\-\_loc4} instruction takes a single
+\addtoindex{uword}
 operand that represents a constant delta. This instruction
 is identical to \livelink{chap:DWCFAadvanceloc}{DW\-\_CFA\-\_advance\-\_loc} except for the encoding
 and size of the delta operand.
@@ -1715,23 +1703,26 @@ and size of the delta operand.
 
 \begin{enumerate}[1.]
 \item \textbf{DW\-\_CFA\-\_def\-\_cfa} \\
-The \livetarg{chap:DWCFAdefcfa}{DW\-\_CFA\-\_def\-\_cfa} instruction takes two unsigned LEB128
+The \livetarg{chap:DWCFAdefcfa}{DW\-\_CFA\-\_def\-\_cfa}
+instruction takes two unsigned LEB128\addtoindexx{LEB128!unsigned}
 operands representing a register number and a (non\dash factored)
 offset. The required action is to define the current CFA rule
 to use the provided register and offset.
 
 \item \textbf{ DW\-\_CFA\-\_def\-\_cfa\-\_sf} \\
 The \livetarg{chap:DWCFAdefcfasf}{DW\-\_CFA\-\_def\-\_cfa\-\_sf} instruction takes two operands:
-an unsigned LEB128 value representing a register number and a
-signed LEB128 factored offset. This instruction is identical
+an unsigned LEB128 value\addtoindexx{LEB128!unsigned}
+representing a register number and a
+signed LEB128\addtoindexx{LEB128!signed} factored offset. This instruction is identical
 to \livelink{chap:DWCFAdefcfa}{DW\-\_CFA\-\_def\-\_cfa} except that the second operand is signed
 and factored. The resulting offset is factored\_offset *
 \addtoindex{data\_alignment\_factor}.
 
 
 \item \textbf{DW\-\_CFA\-\_def\-\_cfa\-\_register} \\
-The \livetarg{chap:DWCFAdefcfaregister}{DW\-\_CFA\-\_def\-\_cfa\-\_register} instruction takes a single
-unsigned LEB128 operand representing a register number. The
+The \livetarg{chap:DWCFAdefcfaregister}{DW\-\_CFA\-\_def\-\_cfa\-\_register} 
+instruction takes a single
+unsigned LEB128\addtoindexx{LEB128!unsigned} operand representing a register number. The
 required action is to define the current CFA rule to use
 the provided register (but to keep the old offset). This
 operation is valid only if the current CFA rule is defined
@@ -1741,7 +1732,7 @@ to use a register and offset.
 
 \item \textbf{DW\-\_CFA\-\_def\-\_cfa\-\_offset} \\
 The \livetarg{chap:DWCFAdefcfaoffset}{DW\-\_CFA\-\_def\-\_cfa\-\_offset} instruction takes a single
-unsigned LEB128 operand representing a (non-factored)
+unsigned LEB128\addtoindexx{LEB128!unsigned} operand representing a (non-factored)
 offset. The required action is to define the current CFA rule
 to use the provided offset (but to keep the old register). This
 operation is valid only if the current CFA rule is defined
@@ -1750,7 +1741,7 @@ to use a register and offset.
 
 \item \textbf{DW\-\_CFA\-\_def\-\_cfa\-\_offset\-\_sf} \\
 The \livetarg{chap:DWCFAdefcfaoffsetsf}{DW\-\_CFA\-\_def\-\_cfa\-\_offset\-\_sf} instruction takes a signed
-LEB128 operand representing a factored offset. This instruction
+LEB128\addtoindexx{LEB128!signed} operand representing a factored offset. This instruction
 is identical to \livelink{chap:DWCFAdefcfaoffset}{DW\-\_CFA\-\_def\-\_cfa\-\_offset} except that the
 operand is signed and factored. The resulting offset is
 factored\_offset * \addtoindex{data\_alignment\_factor}.
@@ -1759,16 +1750,17 @@ is valid only if the current CFA rule is defined to use a
 register and offset.
 
 \item \textbf{DW\-\_CFA\-\_def\-\_cfa\-\_expression} \\
-The \livetarg{chap:DWCFAdefcfaexpression}{DW\-\_CFA\-\_def\-\_cfa\-\_expression} instruction takes a 
+The \livetarg{chap:DWCFAdefcfaexpression}{DW\-\_CFA\-\_def\-\_cfa\-\_expression} 
+instruction takes a 
 \addtoindexx{exprloc class}
-single
-operand encoded as a \livelink{chap:DWFORMexprloc}{DW\-\_FORM\-\_exprloc} value representing a
+single operand encoded as a 
+\livelink{chap:DWFORMexprloc}{DW\-\_FORM\-\_exprloc} value representing a
 DWARF expression. The required action is to establish that
 expression as the means by which the current CFA is computed.
-See 
-Section \refersec{chap:callframeinstructions} 
+
+\textit{See Section \refersec{chap:callframeinstructions} 
 regarding restrictions on the DWARF
-expression operators that can be used.
+expression operators that can be used.}
 
 \end{enumerate}
 
@@ -1778,19 +1770,19 @@ expression operators that can be used.
 \begin{enumerate}[1.]
 \item \textbf{DW\-\_CFA\-\_undefined} \\
 The \livetarg{chap:DWCFAundefined}{DW\-\_CFA\-\_undefined} instruction takes a single unsigned
-LEB128 operand that represents a register number. The required
+LEB128\addtoindexx{LEB128!unsigned} operand that represents a register number. The required
 action is to set the rule for the specified register to
 ``undefined.''
 
 \item \textbf{DW\-\_CFA\-\_same\-\_value} \\
 The \livetarg{chap:DWCFAsamevalue}{DW\-\_CFA\-\_same\-\_value} instruction takes a single unsigned
-LEB128 operand that represents a register number. The required
+LEB128 operand\addtoindexx{LEB128!unsigned} that represents a register number. The required
 action is to set the rule for the specified register to
 ``same value.''
 
 \item \textbf{DW\-\_CFA\-\_offset} \\
 The \livetarg{chap:DWCFAoffset}{DW\-\_CFA\-\_offset} instruction takes two operands: a register
-number (encoded with the opcode) and an unsigned LEB128
+number (encoded with the opcode) and an unsigned LEB128\addtoindexx{LEB128!unsigned}
 constant representing a factored offset. The required action
 is to change the rule for the register indicated by the
 register number to be an offset(N) rule where the value of
@@ -1798,22 +1790,28 @@ N is
 \textit{factored offset * \addtoindex{data\_alignment\_factor}}.
 
 \item \textbf{DW\-\_CFA\-\_offset\-\_extended} \\
-The \livetarg{chap:DWCFAoffsetextended}{DW\-\_CFA\-\_offset\-\_extended} instruction takes two unsigned
-LEB128 operands representing a register number and a factored
-offset. This instruction is identical to \livelink{chap:DWCFAoffset}{DW\-\_CFA\-\_offset} except
-for the encoding and size of the register operand.
+The \livetarg{chap:DWCFAoffsetextended}{DW\-\_CFA\-\_offset\-\_extended} 
+instruction takes two unsigned LEB128\addtoindexx{LEB128!unsigned} 
+operands representing a register number and a factored
+offset. This instruction is identical to
+\livelink{chap:DWCFAoffset}{DW\-\_CFA\-\_offset} 
+except for the encoding and size of the register operand.
 
 \item \textbf{ DW\-\_CFA\-\_offset\-\_extended\-\_sf} \\
-The \livetarg{chap:DWCFAoffsetextendedsf}{DW\-\_CFA\-\_offset\-\_extended\-\_sf} instruction takes two operands:
-an unsigned LEB128 value representing a register number and a
+The \livetarg{chap:DWCFAoffsetextendedsf}{DW\-\_CFA\-\_offset\-\_extended\-\_sf} 
+instruction takes two operands:
+an unsigned LEB128\addtoindexx{LEB128!unsigned} 
+value representing a register number and a
 signed LEB128 factored offset. This instruction is identical
-to \livelink{chap:DWCFAoffsetextended}{DW\-\_CFA\-\_offset\-\_extended} except that the second operand is
+to \livelink{chap:DWCFAoffsetextended}{DW\-\_CFA\-\_offset\-\_extended} 
+except that the second operand is
 signed and factored. The resulting offset is 
 \textit{factored\_offset * \addtoindex{data\_alignment\_factor}}.
 
 \item \textbf{DW\-\_CFA\-\_val\-\_offset} \\
-The \livetarg{chap:DWCFAvaloffset}{DW\-\_CFA\-\_val\-\_offset} instruction takes two unsigned
-LEB128 operands representing a register number and a
+The \livetarg{chap:DWCFAvaloffset}{DW\-\_CFA\-\_val\-\_offset} 
+instruction takes two unsigned
+LEB128 operands\addtoindexx{LEB128!unsigned} representing a register number and a
 factored offset. The required action is to change the rule
 for the register indicated by the register number to be a
 val\_offset(N) rule where the value of N is 
@@ -1821,14 +1819,15 @@ val\_offset(N) rule where the value of N is
 
 \item \textbf{DW\-\_CFA\-\_val\-\_offset\-\_sf} \\
 The \livetarg{chap:DWCFAvaloffsetsf}{DW\-\_CFA\-\_val\-\_offset\-\_sf} instruction takes two operands: an
-unsigned LEB128 value representing a register number and a
-signed LEB128 factored offset. This instruction is identical
+unsigned LEB128\addtoindexx{LEB128!unsigned} value representing a register number and a
+signed LEB128\addtoindexx{LEB128!signed} factored offset. This instruction is identical
 to \livelink{chap:DWCFAvaloffset}{DW\-\_CFA\-\_val\-\_offset} except that the second operand is signed
 and factored. The resulting offset is 
 \textit{factored\_offset * \addtoindex{data\_alignment\_factor}}.
 
 \item \textbf{DW\-\_CFA\-\_register} \\
-The \livetarg{chap:DWCFAregister}{DW\-\_CFA\-\_register} instruction takes two unsigned LEB128
+The \livetarg{chap:DWCFAregister}{DW\-\_CFA\-\_register} 
+instruction takes two unsigned LEB128\addtoindexx{LEB128!unsigned}
 operands representing register numbers. The required action
 is to set the rule for the first register to be register(R)
 where R is the second register.
@@ -1836,7 +1835,8 @@ where R is the second register.
 \item \textbf{DW\-\_CFA\-\_expression} \\
 The \livetarg{chap:DWCFAexpression}{DW\-\_CFA\-\_expression} 
 instruction takes two operands: an
-unsigned LEB128 value representing a register number, and
+unsigned LEB128\addtoindexx{LEB128!unsigned} 
+value representing a register number, and
 a \livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block} 
 value representing a DWARF expression. 
 The
@@ -1847,13 +1847,14 @@ expression computes the address. The value of the CFA is
 pushed on the DWARF evaluation stack prior to execution of
 the DWARF expression.
 
-See Section \refersec{chap:callframeinstructions} 
+\textit{See Section \refersec{chap:callframeinstructions} 
 regarding restrictions on the DWARF
-expression operators that can be used.
+expression operators that can be used.}
 
 \item \textbf{DW\-\_CFA\-\_val\-\_expression} \\
 The \livetarg{chap:DWCFAvalexpression}{DW\-\_CFA\-\_val\-\_expression} instruction takes two operands:
-an unsigned LEB128 value representing a register number, and
+an unsigned LEB128\addtoindexx{LEB128!unsigned} 
+value representing a register number, and
 a \livelink{chap:DWFORMblock}{DW\-\_FORM\-\_block} 
 value representing a DWARF expression. The
 required action is to change the rule for the register
@@ -1863,9 +1864,9 @@ expression computes the value of the given register. The value
 of the CFA is pushed on the DWARF evaluation stack prior to
 execution of the DWARF expression.
 
-See Section \refersec{chap:callframeinstructions} 
+\textit{See Section \refersec{chap:callframeinstructions} 
 regarding restrictions on the DWARF
-expression operators that can be used.
+expression operators that can be used.}
 
 \item \textbf{ DW\-\_CFA\-\_restore} \\
 The \livetarg{chap:DWCFArestore}{DW\-\_CFA\-\_restore} instruction takes a single operand (encoded
@@ -1875,8 +1876,9 @@ register to the rule assigned it by the initial\_instructions
 in the CIE.
 
 \item \textbf{DW\-\_CFA\-\_restore\-\_extended} \\
-The \livetarg{chap:DWCFArestoreextended}{DW\-\_CFA\-\_restore\-\_extended} instruction takes a single unsigned
-LEB128 operand that represents a register number. This
+The \livetarg{chap:DWCFArestoreextended}{DW\-\_CFA\-\_restore\-\_extended}
+instruction takes a single unsigned LEB128\addtoindexx{LEB128!unsigned} 
+operand that represents a register number. This
 instruction is identical to \livelink{chap:DWCFArestore}{DW\-\_CFA\-\_restore} except for the
 encoding and size of the register operand.