[mips-tls] Revised versions of MIPS TLS ABI specification

Thiemo Seufer ica2_ts at csv.ica.uni-stuttgart.de
Mon Nov 8 16:53:52 UTC 2004


Nigel Stephens wrote:
[snip]
> I think this was suggested because 0x7ff0 is currently used by the 
> linker as the offset of the $gp register from the start of the small 
> data region. It's probably this value to ensure that a reference to the 
> sub-words of a larger variable is safe to break down into gp-relative 
> offsets, without causing an underflow below -0x8000, for the largest 
> possible directly loadable scalar  (a "long double"). Thiemo may know a 
> better reason :-).

I don't. :-) I simply used the gp offset as example. I guess it has
a value of 0x7ff0 instead of 0x8000 for historical reasons (probably
some implementation limitation in very early MIPS toolchains).

> But I don't think that causes us a problem with the suggested 0x7000 
> offset: the resulting range of offsets from -0x7000 up to 0x7fff will 
> work fine on MIPS, but care will be needed when accessing the "private" 
> thread data stored in the 4KB region below the TCB, to make sure that it 
> cannot underflow.

Yes, the biases suggested by Daniel (0x8000 and -0x7000) are ok.


Thiemo



More information about the mips-tls mailing list