* config/tc-mn10300.h (md_end): Define.

(mn10300_finalize): Declare.
* config/tc-mn10300.c: Include dwarf2dbg.h.
(debug_line): Define.
(md_assemble): Generate dwarf2 line info.
(mn10300_finalize): New function.  Finalize dwarf2 info.
This commit is contained in:
Alexandre Oliva
2000-05-12 06:16:30 +00:00
parent 9ee2520132
commit e8b1cae533
3 changed files with 40 additions and 1 deletions

View File

@ -1,3 +1,12 @@
2000-05-12 Alexandre Oliva <aoliva@cygnus.com>
* config/tc-mn10300.h (md_end): Define.
(mn10300_finalize): Declare.
* config/tc-mn10300.c: Include dwarf2dbg.h.
(debug_line): Define.
(md_assemble): Generate dwarf2 line info.
(mn10300_finalize): New function. Finalize dwarf2 info.
2000-05-11 Ulf Carlsson <ulfc@engr.sgi.com> 2000-05-11 Ulf Carlsson <ulfc@engr.sgi.com>
* config/tc-mips.c (md_estimate_size_before_relax): Use the * config/tc-mips.c (md_estimate_size_before_relax): Use the

View File

@ -23,6 +23,7 @@
#include "as.h" #include "as.h"
#include "subsegs.h" #include "subsegs.h"
#include "opcode/mn10300.h" #include "opcode/mn10300.h"
#include "dwarf2dbg.h"
/* Structure to hold information about predefined registers. */ /* Structure to hold information about predefined registers. */
struct reg_name struct reg_name
@ -31,6 +32,8 @@ struct reg_name
int value; int value;
}; };
struct dwarf2_line_info debug_line;
/* Generic assembler global variables which must be defined by all targets. */ /* Generic assembler global variables which must be defined by all targets. */
/* Characters which always start a comment. */ /* Characters which always start a comment. */
@ -118,6 +121,8 @@ size_t md_longopts_size = sizeof(md_longopts);
/* The target specific pseudo-ops which we support. */ /* The target specific pseudo-ops which we support. */
const pseudo_typeS md_pseudo_table[] = const pseudo_typeS md_pseudo_table[] =
{ {
{ "file", dwarf2_directive_file },
{ "loc", dwarf2_directive_loc },
{ "am30", set_arch_mach, AM30 }, { "am30", set_arch_mach, AM30 },
{ "am33", set_arch_mach, AM33 }, { "am33", set_arch_mach, AM33 },
{ "mn10300", set_arch_mach, MN103 }, { "mn10300", set_arch_mach, MN103 },
@ -1745,6 +1750,21 @@ keep_going:
} }
} }
} }
if (debug_type == DEBUG_DWARF2)
{
bfd_vma addr;
/* First update the notion of the current source line. */
dwarf2_where (&debug_line);
/* We want the offset of the start of this instruction within the
the current frag. */
addr = frag_now->fr_address + frag_now_fix () - size;
/* And record the information. */
dwarf2_gen_line_info (addr, &debug_line);
}
} }
@ -1999,3 +2019,10 @@ set_arch_mach (mach)
current_machine = mach; current_machine = mach;
} }
void
mn10300_finalize ()
{
if (debug_type == DEBUG_DWARF2)
dwarf2_finish ();
}

View File

@ -1,5 +1,5 @@
/* tc-mn10300.h -- Header file for tc-mn10300.c. /* tc-mn10300.h -- Header file for tc-mn10300.c.
Copyright (C) 1996, 1997 Free Software Foundation, Inc. Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler. This file is part of GAS, the GNU Assembler.
@ -48,3 +48,6 @@
/* We do relaxing in the assembler as well as the linker. */ /* We do relaxing in the assembler as well as the linker. */
extern const struct relax_type md_relax_table[]; extern const struct relax_type md_relax_table[];
#define TC_GENERIC_RELAX_TABLE md_relax_table #define TC_GENERIC_RELAX_TABLE md_relax_table
#define md_end() mn10300_finalize ()
void mn10300_finalize PARAMS ((void));