This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: News MIPS option -mno-shared
- From: David Daney <ddaney at avtrex dot com>
- To: Ian Lance Taylor <ian at wasabisystems dot com>
- Cc: binutils at sourceware dot org
- Date: Thu, 09 Dec 2004 10:04:13 -0800
- Subject: Re: News MIPS option -mno-shared
- References: <20041209153403.5294.qmail@gossamer.airs.com>
Ian Lance Taylor wrote:
> I'd like to see whether anybody has an opinion about this patch before
> I check it in.
>
> This patch adds a new option to the MIPS assembler: -mno-shared.
> Normally the .cpload pseudo-op generates code which looks like this:
>
> lui $gp,%hi(_gp_disp)
> addiu $gp,$gp,%lo(_gp_disp)
> addu $gp,$gp,.cpload argument
>
> With -mno-shared, the .cpload pseudo-op will generate code that looks
> like this:
>
> lui $gp,%hi(_gp)
> addiu $gp,$gp,%lo(_gp)
>
I have code that generates stack traces that relies on the structure of the
function prolog to work. It looks for this:
/*
* Find function prolog. It will have the form:
*
* 3c1c???? lui gp,????
* 279c???? addiu gp,gp,????
* 0399e021 addu gp,gp,t9
* 27bd#### addiu sp,sp,####
*
* Where ???? are the offset of the GOT from the function
* entrypoint, and #### is the amount added to the stack poiner.
*/
Your change will break it.
Being the moderately astute person that I am, I will be able to fix my code
to work with the optimized prolog.
I wonder if others will be effected as well.
David Daney.