libgcj and the NPTL posix threads implementation

Boehm, Hans hans.boehm@hp.com
Mon Mar 1 22:52:00 GMT 2004


Based on a quick look in an old X86 manual, the segment register itself
contains an index into a segment table, which might explain the "33".
Apparently

lea %gs:0,<result reg>

only yields the offset part of the resulting address.  So maybe there is
no way to get a hold of the actual flat address without dereferencing it?
Yuch.

Hans

> -----Original Message-----
> From: Anthony Green [mailto:green@redhat.com]
> Sent: Monday, March 01, 2004 2:20 PM
> To: Boehm, Hans
> Cc: Jeff Sturm; 'Michael Koch'; java@gcc.gnu.org
> Subject: RE: libgcj and the NPTL posix threads implementation
> 
> 
> On Mon, 2004-03-01 at 14:16, Boehm, Hans wrote:
> > I'm a bit confused, in part because I'm an X86 assembly amateur.
> 
> Same here.
> 
> > I assume both of the proposals below retrieve a value 
> stored at an offset from
> > %gs?  (What's "move"?  Is it different from "mov" or a 
> typo?) Won't %gs itself do as
> > a thread-specific value? 
> 
> That was my first guess as well, but I only get 33 out of it.  I don't
> know why, and I'm not motivated enough to find out :-)   glibc uses
> %gs:0x8 so that's what I went with.
> 
> AG
> 
> -- 
> Anthony Green <green@redhat.com>
> Red Hat, Inc.
> 



More information about the Java mailing list