This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: MIPS JAL/JALR to BAL transformation for Linux (o32 ABI)
- From: Adam Nemet <anemet at caviumnetworks dot com>
- To: Richard Sandiford <rdsandiford at googlemail dot com>
- Cc: "Fu\, Chao-Ying" <fu at mips dot com>, <binutils at sourceware dot org>, "Lau\, David" <davidlau at mips dot com>, "Garbacea\, Ilie" <ilie at mips dot com>
- Date: Sat, 1 Aug 2009 12:53:40 -0700
- Subject: Re: MIPS JAL/JALR to BAL transformation for Linux (o32 ABI)
- References: <94BD67F8AF3ED34FA362C662BA1F12C502BB5CF8@MTVEXCHANGE.mips.com> <o7iqh8ra53.fsf@ropi.home> <o7eirwr5ye.fsf@ropi.home> <8763d8eyq1.fsf@firetop.home>
Richard Sandiford writes:
> Adam Nemet <anemet@caviumnetworks.com> writes:
> > If we can't do this there is also the other idea which we used to do to
> > avoid -mno-explicit-relocs in our toolchain. Emit jalr and jr with an
> > extra optional operand that is the symbol name of the function for PIC
> > calls and use that to create the JALR relocation.
>
> Yeah. These days we could also use (thanks Alan!):
>
> .reloc 1f, R_MIPS_JALR, foo
> 1: jalr $25
Nice!
> Does that mean you already have a GCC patch to do this kind of thing?
Yes, I had this on my todo list but it obviously became less important after
non-PIC executable support; the big improvements were due to JALR->JAL
replacements in the executable. I'll prepare a patch.
Adam