diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 9 | ||||
-rw-r--r-- | gas/config/tc-mn10300.c | 27 | ||||
-rw-r--r-- | gas/config/tc-mn10300.h | 5 |
3 files changed, 40 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 698b7a0..4c7dd46 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -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> * config/tc-mips.c (md_estimate_size_before_relax): Use the diff --git a/gas/config/tc-mn10300.c b/gas/config/tc-mn10300.c index 3514f9f..30b4139 100644 --- a/gas/config/tc-mn10300.c +++ b/gas/config/tc-mn10300.c @@ -23,6 +23,7 @@ #include "as.h" #include "subsegs.h" #include "opcode/mn10300.h" +#include "dwarf2dbg.h" /* Structure to hold information about predefined registers. */ struct reg_name @@ -31,6 +32,8 @@ struct reg_name int value; }; +struct dwarf2_line_info debug_line; + /* Generic assembler global variables which must be defined by all targets. */ /* 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. */ const pseudo_typeS md_pseudo_table[] = { + { "file", dwarf2_directive_file }, + { "loc", dwarf2_directive_loc }, { "am30", set_arch_mach, AM30 }, { "am33", set_arch_mach, AM33 }, { "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; } + +void +mn10300_finalize () +{ + if (debug_type == DEBUG_DWARF2) + dwarf2_finish (); +} diff --git a/gas/config/tc-mn10300.h b/gas/config/tc-mn10300.h index ffcb227..011259f 100644 --- a/gas/config/tc-mn10300.h +++ b/gas/config/tc-mn10300.h @@ -1,5 +1,5 @@ /* 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. @@ -48,3 +48,6 @@ /* We do relaxing in the assembler as well as the linker. */ extern const struct relax_type md_relax_table[]; #define TC_GENERIC_RELAX_TABLE md_relax_table + +#define md_end() mn10300_finalize () +void mn10300_finalize PARAMS ((void)); |