From bd0eb99b906bd9e11675cf96a196e4044c39282a Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 7 Sep 2005 11:41:25 +0000 Subject: * dwarf2dbg.c: Include safe-ctype.h. (DWARF2_LINE_OPCODE_BASE): Bump to 13. (current): Initialize. (dwarf2_emit_insn): Clear DWARF2_FLAG_BASIC_BLOCK, DWARF2_FLAG_PROLOGUE_END, DWARF2_FLAG_EPILOGUE_BEGIN. (dwarf2_directive_file): Cope with invalid filename. (dwarf2_directive_loc): Add handling for basic_block, prologue_end, epilogue_begin, is_stmt, isa. (emit_inc_line_addr): Move line_delta == 0, addr_delta == 0 special case down lower. (process_entries): Handle isa, DWARF2_FLAG_PROLOGUE_END, and DWARF2_FLAG_EPILOGUE_BEGIN. (out_debug_line): Emit sizes for DW_LNS_set_prologue_end, DW_LNS_set_epilogue_begin, DW_LNS_set_isa. * dwarf2dbg.h (DWARF2_FLAG_IS_STMT): Rename from DWARF2_FLAG_BEGIN_STMT. (DWARF2_FLAG_BASIC_BLOCK): Rename from DWARF2_FLAG_BEGIN_BLOCK. (DWARF2_FLAG_PROLOGUE_END, DWARF2_FLAG_EPILOGUE_BEGIN): New. (struct dwarf2_line_info): Add isa member. * doc/as.texinfo (LNS directives): New node. --- gas/doc/as.texinfo | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) (limited to 'gas/doc') 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}} -- cgit v1.1