diff options
-rw-r--r-- | gas/ChangeLog | 3 | ||||
-rw-r--r-- | gas/config/tc-hppa.c | 24 |
2 files changed, 15 insertions, 12 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index f8f3b45..cd141f2 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,8 @@ Wed Sep 15 05:14:32 1999 Jeffrey A Law (law@cygnus.com) + * config/tc-hppa.c (pa_ip): Move dwarf2 stuff from here. + (md_assemble): To here. Tweak address generation. + * config/tc-hppa.c: Include dwarf2dbg.h if OBJ_ELF. Declare debug_line. (md_pseudo_table): Add .file and .line pseudo-ops for OBJ_ELF. diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c index eda75aa..50a9f5a 100644 --- a/gas/config/tc-hppa.c +++ b/gas/config/tc-hppa.c @@ -1460,9 +1460,19 @@ md_assemble (str) #ifdef OBJ_ELF if (debug_type == DEBUG_DWARF2) - dwarf2_where (&debug_line); -#endif + { + bfd_vma addr; + + /* I haven't got a clue why the -8 is necessary, but this + seems to work. Someone should really document what all + the frag nonsense does and more precisely what the dwarf2 + code needs. */ + addr = frag_now->fr_address + frag_now_fix () - 8; + dwarf2_gen_line_info (addr, &debug_line); + dwarf2_where (&debug_line); + } +#endif } /* Do the real work for assembling a single instruction. Store results @@ -3377,16 +3387,6 @@ pa_ip (str) break; } -#ifdef OBJ_ELF - if (debug_type == DEBUG_DWARF2) - { - bfd_vma addr; - - addr = frag_now->fr_address + frag_now_fix (); - dwarf2_gen_line_info (addr, &debug_line); - } -#endif - the_insn.opcode = opcode; } |