[PATCH] handle large deltas with DWARF fixed_advance_pc
Tue Jan 8 15:10:00 GMT 2008
Bob Wilson wrote:
> Is this OK?
> 2008-01-07 Bob Wilson <email@example.com>
> * dwarf2dbg.c (out_sleb128): Delete.
> (size_fixed_inc_line_addr, emit_fixed_inc_line_addr): New.
> (out_fixed_inc_line_addr): Delete.
> (relax_inc_line_addr, dwarf2dbg_estimate_size_before_relax): Call new
> size_fixed_inc_line_addr if DWARF2_USE_FIXED_ADVANCE_PC is set.
> (dwarf2dbg_convert_frag): Likewise for emit_fixed_inc_line_addr.
> (process_entries): Remove calls to out_fixed_inc_line_addr. When
> DWARF2_USE_FIXED_ADVANCE_PC is set, call relax_inc_line_addr.
> * read.h (emit_expr_fix): New prototype.
> * read.c (emit_expr): Move code to emit_expr_fix and use it here.
> (emit_expr_fix): New.
> * gas/lns/lns.exp: Run new lns-big-delta test for targets that set
> * gas/lns/lns-big-delta.s: New.
> * gas/lns/lns-big-delta.d: New.
I forgot to mention how I tested this. I built a native i686-pc-linux-gnu
assembler and an xtensa-elf cross assembler and ran the GAS testsuite, including
the new testcase. I also verified that the xtensa-elf assembler correctly
handled an assembly file generated by Tensilica's compiler that exposed the problem.
More information about the Binutils