This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH 4.0/4 v3] MIPS/GAS: Propagate symbol attributes
- From: "Maciej W. Rozycki" <macro at codesourcery dot com>
- To: Richard Sandiford <rdsandiford at googlemail dot com>
- Cc: Catherine Moore <clm at codesourcery dot com>, binutils at sourceware dot org
- Date: Thu, 9 Dec 2010 18:02:19 +0000 (GMT)
- Subject: Re: [PATCH 4.0/4 v3] MIPS/GAS: Propagate symbol attributes
- References: <alpine.DEB.1.10.1007260105250.29495@tp.orcam.me.uk> <alpine.DEB.1.10.1010291526390.25860@tp.orcam.me.uk> <87y69gm0ex.fsf@firetop.home> <alpine.DEB.1.10.1012081023090.5345@tp.orcam.me.uk> <g439q6uae5.fsf@richards-desktop-2.stglab.manchester.uk.ibm.com>
On Thu, 9 Dec 2010, Richard Sandiford wrote:
> > So it's not about whether we should treat these symbols as MIPS16 code
> > references or not, but to match the reality and not mislead the user into
> > thinking standard MIPS code is being concerned.
>
> You haven't answered my question, or at least not in a way that
> makes me understand it. The testcase in your original message
> was a very artificial one, artificial enough that the correct
> disassembly is open to debate. Do you have a real-world example
> of people writing code like this?
OK, fair enough -- I did all kinds of weird assembly programming stuff in
my life (mainly back in my MS-DOS days in early 1990s), so this kind of
coding is nothing unusual to me, but no, I don't have a current real-world
example that would absolutely require this kind of an arrangement to work.
And I can understand your reluctance to make changes to generic parts of
GAS for the lone purpose of getting things 100% right where that would
hardly ever matter for anyone.
Given code actually produced is already correct, I insist on including
the test case itself though. I'll see if I can make the disassembly right
by interspersing the instructions with some otherwise unused labels.
Would it be a solution that would satisfy you?
Otherwise chances are the microMIPS change by its nature will fix the
problem automatically -- I'll check that too before fiddling with the test
case itself. The thing is for the purpose of correct microMIPS
disassembly Chao-ying was kind enough to provide a piece of code to scan
the symbol table and see if a location is within the span of any function
symbol with the microMIPS annotation present and switch to the microMIPS
mode if so. In the course of the recent rewrite I extended that approach
to MIPS16 symbols as well. I hope you agree that is reasonable too.
Maciej