diff options
Diffstat (limited to 'gas/config/tc-mn10300.c')
-rw-r--r-- | gas/config/tc-mn10300.c | 27 |
1 files changed, 27 insertions, 0 deletions
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 (); +} |