aboutsummaryrefslogtreecommitdiff
path: root/gas/doc/as.texinfo
diff options
context:
space:
mode:
Diffstat (limited to 'gas/doc/as.texinfo')
-rw-r--r--gas/doc/as.texinfo47
1 files changed, 46 insertions, 1 deletions
diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo
index 0721631..e85677d 100644
--- a/gas/doc/as.texinfo
+++ b/gas/doc/as.texinfo
@@ -3745,9 +3745,12 @@ Some machine configurations provide additional directives.
* Line:: @code{.line @var{line-number}}
@end ifclear
-* Ln:: @code{.ln @var{line-number}}
* Linkonce:: @code{.linkonce [@var{type}]}
* List:: @code{.list}
+* Ln:: @code{.ln @var{line-number}}
+
+* LNS directives:: @code{.file}, @code{.loc}, etc.
+
* Long:: @code{.long @var{expressions}}
@ignore
* Lsym:: @code{.lsym @var{symbol}, @var{expression}}
@@ -4049,6 +4052,48 @@ Allows the user to add arbitrary bytes to the unwind info. One
might use this to add OS-specific CFI opcodes, or generic CFI
opcodes that GAS does not yet support.
+@node LNS directives
+@section @code{.file @var{fileno} @var{filename}}
+@cindex @code{file} directive
+When emitting dwarf2 line number information @code{.file} assigns filenames
+to the @code{.debug_line} file name table. The @var{fileno} operand should
+be a unique positive integer to use as the index of the entry in the table.
+The @var{filename} operand is a C string literal.
+
+The detail of filename indicies is exposed to the user because the filename
+table is shared with the @code{.debug_info} section of the dwarf2 debugging
+information, and thus the user must know the exact indicies that table
+entries will have.
+
+@section @code{.loc @var{fileno} @var{lineno} [@var{column}]}
+@cindex @code{loc} directive
+The @code{.loc} directive will add row to the @code{.debug_line} line
+number matrix corresponding to the immediately following assembly
+instruction. The @var{fileno}, @var{lineno}, and optional @var{column}
+arguments will be applied to the @code{.debug_line} state machine before
+the row is added.
+
+@section @code{.loc basic_block}
+This directive will set the @code{basic_block} register in the
+@code{.debug_line} state machine to @code{true}.
+
+@section @code{.loc prologue_end}
+This directive will set the @code{prologue_end} register in the
+@code{.debug_line} state machine to @code{true}.
+
+@section @code{.loc epilogue_begin}
+This directive will set the @code{epilogue_begin} register in the
+@code{.debug_line} state machine to @code{true}.
+
+@section @code{.loc is_stmt @var{value}}
+This directive will set the @code{epilogue_begin} register in the
+@code{.debug_line} state machine to @code{value}, which must be
+either 0 or 1.
+
+@section @code{.loc isa @var{value}}
+This directive will set the @code{isa} register in the @code{.debug_line}
+state machine to @var{value}, which must be an unsigned integer.
+
@node Data
@section @code{.data @var{subsection}}