[PATCH] handle large deltas with DWARF fixed_advance_pc

Bob Wilson bwilson@tensilica.com
Tue Jan 8 15:10:00 GMT 2008

Bob Wilson wrote:
> Is this OK?
> 2008-01-07  Bob Wilson  <bob.wilson@acm.org>
> gas/
>     * 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.
> testsuite/
>     * 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 mailing list