This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Should asm("" : : : "memory") order accesses to the GOT?
- To: Jeffrey A Law <law at cygnus dot com>
- Subject: Re: Should asm("" : : : "memory") order accesses to the GOT?
- From: Franz Sirl <Franz dot Sirl-kernel at lauterbach dot com>
- Date: Thu, 17 Jun 1999 22:57:53 +0200
- Cc: egcs at egcs dot cygnus dot com
- References: <11478.929652123@upchuck.cygnus.com>
Am Don, 17 Jun 1999 schrieb Jeffrey A Law:
>In message <99061722151000.00879@ns1102.munich.netsurf.de>you write:
> > the subject says it all, should address loads from the GOT considered as
> > memory accesses?
>It should. But typically we do not represent GOT references as memory
>references.
>
>This is a fairly generic problem with our PIC code in the sense that we're
>lying to the compiler about what the machine actually does. Lots of ports
>have the same problem.
>
>If we ever revamp how we represent PIC internally, this is one of the problems
>I want to fix :-)
Hmm, sounds like a big task. So there's currently no way to order accesses to
the GOT in gcc, independent of platform. Then the only way to fix ld.so is to
move these accesses out into a different file.
BTW, Geoff suggested to replace all unspec 8 with something like this:
(define_expand "movsi_got"
[(set (match_operand:SI 0 "register_operand" "")
(mem (plus (unspec [(match_operand:SI 1 "got_operand" "")] 8)
(match_dup 2))))]
But if all platforms are affected it's better to fix glibc once and forever.
Franz.