This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] MIPS/GAS: Fix DWARF-2 with branch swapping for MIPS16 code
- From: Richard Sandiford <rdsandiford at googlemail dot com>
- To: "Maciej W. Rozycki" <macro at codesourcery dot com>
- Cc: binutils at sourceware dot org
- Date: Sat, 02 Jul 2011 08:33:16 +0100
- Subject: Re: [PATCH] MIPS/GAS: Fix DWARF-2 with branch swapping for MIPS16 code
- References: <alpine.DEB.1.10.1102221625230.20460@tp.orcam.me.uk> <87boxg5nyo.fsf@firetop.home> <alpine.DEB.1.10.1107020155260.4083@tp.orcam.me.uk>
"Maciej W. Rozycki" <macro@codesourcery.com> writes:
>> - this:
>>
>> > + Advance PC by 16 to 0x5c
>>
>> depends on the target alignment of .text; it passes for GNU/Linux
>> targets but fails on ELF ones. I think we should stub out the
>> exact numbers, since they're incidental to the test.
>
> Hmm, does it? I did verify it both on a GNU/Linux and an ELF target. It
> still passes for me, except that:
>
> + Advance PC by 24 to 0x64
>
> is required instead as with my intended-to-be-sent-originally change.
> Likewise:
>
> + Advance PC by 23 to 0x40
>
> for the MIPS16 dump. Which target is failing for you? Perhaps the cause
> was merely the outdated version of the change, sigh...
Ah, could be. It was mips64-elf. Maybe I'd got confused and the
original didn't pass for GNU/Linux after all. Sorry about that.
> I have regenerated and revalidated the change now and I'm ready to push
> it, but I'd prefer the final DWARF-2 instructions to be matched exactly.
> I made the effort to make the source alignment-agnostic and I'd prefer to
> keep the final offsets to be verified literally so that any unexpected
> discrepancies are caught.
Agreed.
> 2011-07-02 Maciej W. Rozycki <macro@codesourcery.com>
>
> gas/
> * config/tc-mips.c (append_insn): Make sure DWARF-2 location
> information is properly adjusted for branches that get swapped.
>
> gas/testsuite/
> * gas/mips/loc-swap.d: New test case for DWARF-2 location with
> branch swapping.
> * gas/mips/loc-swap-dis.d: Likewise.
> * gas/mips/mips16\@loc-swap.d: Likewise, MIPS16 version.
> * gas/mips/mips16\@loc-swap-dis.d: Likewise.
> * gas/mips/loc-swap.s: Source for the new tests.
> * gas/mips/mips.exp: Run the new tests.
OK.
Richard