* about gas load_address
@ 2003-05-27 9:35 Fuxin Zhang
2003-05-27 9:53 ` Ralf Baechle
0 siblings, 1 reply; 2+ messages in thread
From: Fuxin Zhang @ 2003-05-27 9:35 UTC (permalink / raw)
To: MAKE FUN PRANK CALLS
hi,all
(sorry if it is somewhat out of topic,but i think most mips experts
are here:)
else if (mips_pic == SVR4_PIC && ! mips_big_got)
{
expressionS ex;
/* If this is a reference to an external symbol, we want
lw $reg,<sym>($gp) (BFD_RELOC_MIPS_GOT16)
Otherwise we want
lw $reg,<sym>($gp) (BFD_RELOC_MIPS_GOT16)
nop
QUESTION:
Could somebody tell me why we generate a unconditional 'nop' here?
addiu $reg,$reg,<sym> (BFD_RELOC_LO16)
If there is a constant, it must be added in after.
If we have NewABI, we want
lw $reg,<sym+cst>($gp) (BFD_RELOC_MIPS_GOT_DISP)
unless we're referencing a global symbol with a non-zero
offset, in which case cst must be added separately. */
Thanks in advance.
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: about gas load_address
2003-05-27 9:35 about gas load_address Fuxin Zhang
@ 2003-05-27 9:53 ` Ralf Baechle
0 siblings, 0 replies; 2+ messages in thread
From: Ralf Baechle @ 2003-05-27 9:53 UTC (permalink / raw)
To: Fuxin Zhang; +Cc: MAKE FUN PRANK CALLS
On Tue, May 27, 2003 at 05:35:04PM +0800, Fuxin Zhang wrote:
> Date: Tue, 27 May 2003 17:35:04 +0800
> From: Fuxin Zhang <fxzhang@ict.ac.cn>
> To: MAKE FUN PRANK CALLS <linux-mips@linux-mips.org>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Funny alias for this list :-)
> (sorry if it is somewhat out of topic,but i think most mips experts
> are here:)
Certainly more on topic than making prank calls ;-)
> else if (mips_pic == SVR4_PIC && ! mips_big_got)
> {
> expressionS ex;
>
> /* If this is a reference to an external symbol, we want
> lw $reg,<sym>($gp) (BFD_RELOC_MIPS_GOT16)
> Otherwise we want
> lw $reg,<sym>($gp) (BFD_RELOC_MIPS_GOT16)
> nop
> QUESTION:
> Could somebody tell me why we generate a unconditional 'nop' here?
> addiu $reg,$reg,<sym> (BFD_RELOC_LO16)
> If there is a constant, it must be added in after.
The nop would only be needed for the R2000/R3000 family where a load
instruction may not immediately be followed by it's consumer instruction.
NewABI implies MIPS III or higher so the nop wouldn't be required for
such processors. Gcc and gas have sort of a tradition of throwing many
more nops in than needed ...
> If we have NewABI, we want
> lw $reg,<sym+cst>($gp) (BFD_RELOC_MIPS_GOT_DISP)
> unless we're referencing a global symbol with a non-zero
> offset, in which case cst must be added separately. */
Ralf
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2003-05-27 9:53 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-05-27 9:35 about gas load_address Fuxin Zhang
2003-05-27 9:53 ` Ralf Baechle
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox