On 17 Aug 2006 14:01:51 +0700, Egor Pasko <[EMAIL PROTECTED]> wrote:
On the 0x1C8 day of Apache Harmony Weldon Washburn wrote:
> Windows uses ia32 segment register fs:14 for fast thread-local storage
> access.  I think Linux somehow uses the gs segment register.

In general, it is implementation-specific (not older kernels).

Here is a good link for that:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4915203

I took a look.  It mentions some kernels use GS register, some have an
TLS related API that uses the LDT and some use the upper 10 bits of
ESP as a unique thread value.  The upper 10 can then be used as an
index or hash into a JVM data struct that holds thread local data.

We need some approach to handle old linux kernels that use ESP.  Maybe
add a compiler instrinsic that returns the current ESP contents
shifted right by 22 bits.  Something like:

int index = espShiftedRightBy22Bits();


I wonder, how to handle system-dependent code with Java vmmagic :(
A simple if-then-else would make an #ifdef replacement?

Good point.  We should have a project-wide standard on "java #ifdef".
Feel free to propose something.



--
Egor Pasko, Intel Managed Runtime Division


---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Weldon Washburn
Intel Middleware Products Division

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to