Re: cvs commit: src/lib/libc/gen tls.c src/lib/libc/i386/gen Mak
On Tue, Mar 29, 2005 at 06:25:58PM -0800, Matthew Dillon wrote:
>
> :
> :On Tue, Mar 29, 2005 at 11:26:20AM -0800, Joerg Sonnenberger wrote:
> :> joerg 2005/03/29 11:26:20 PST
> :>
> :> Added files:
> :> sys/i386/include tls.h
> :
> :I'm open for any advice how to teach GCC to create correct assembly
> :for the #if'd out sections.
> :
> :Joerg
>
> As far as GAS is concerned, it's a memory effective address (remove
> the %gs: prefix and it becomes clear). So:
>
> __asm __volatile ("movl %%gs:%1,%0" : "=r" (self) :
> "m" (((struct tls_tcb *)0)->self));
That's what I initialy thought too. The problem is that the above statement
is assembled to:
..LC0:
.long 0 /* value of ((struct tls_tcb *)0)->self */
main:
...
movl %gs:.LC0,%eax
which is clearly something different.
Joerg
討論串 (同標題文章)
完整討論串 (本文為第 3 之 4 篇):