Re: amd64_set_gsbase()

2007-10-22 Thread Mihai Donțu
On Wednesday 10 October 2007, Tijl Coosemans wrote: > > To get back to what you are trying to do, because %gs isn't preserved, > > I think you should avoid writing to it and instead strictly use > > amd64_set_gsbase(). But from what you've written, I'm guessing you're > > already doing this, so the

Re: amd64_set_gsbase()

2007-10-10 Thread Mihai Donțu
On Wednesday 10 October 2007, Tijl Coosemans wrote: > On Tuesday 09 October 2007 02:48:51 Mihai Donțu wrote: > > I have *one* more question: maybe I don't fully understand the hole > > BASE thing, but since the FreeBSD kernel does not preserve %gs and > > %fs, what is the purpose of amd64_set_XXbas

Re: amd64_set_gsbase()

2007-10-10 Thread Tijl Coosemans
On Tuesday 09 October 2007 02:48:51 Mihai Donțu wrote: > I have *one* more question: maybe I don't fully understand the hole > BASE thing, but since the FreeBSD kernel does not preserve %gs and > %fs, what is the purpose of amd64_set_XXbase()? The %fs, %gs registers and fsbase and gsbase MSRs are

Re: amd64_set_gsbase()

2007-10-09 Thread Roman Divacky
On Tue, Oct 09, 2007 at 03:48:51AM +0300, Mihai Don??u wrote: > On Tuesday 09 October 2007, Jung-uk Kim wrote: > > In long mode, we don't really care about segment registers. While > > implementing TLS for Linuxulator, I had to do the following hack, for > > example: > > > > http://docs.freebsd

Re: amd64_set_gsbase()

2007-10-08 Thread Mihai Donțu
On Tuesday 09 October 2007, Jung-uk Kim wrote: > In long mode, we don't really care about segment registers. While > implementing TLS for Linuxulator, I had to do the following hack, for > example: > > http://docs.freebsd.org/cgi/mid.cgi?20070336.l2U06LA1075891 > > Under Linux and Windows,

Re: amd64_set_gsbase()

2007-10-08 Thread Jung-uk Kim
On Monday 08 October 2007 06:00 pm, Mihai Donțu wrote: > On Monday 08 October 2007, Jung-uk Kim wrote: > > Yes, you are correct. A short version is "don't do that". A > > long version goes like this. %fs and %gs are not preserved while > > context switching on amd64. > > But this makes emulation

Re: amd64_set_gsbase()

2007-10-08 Thread Mihai Donțu
On Monday 08 October 2007, Jung-uk Kim wrote: > Yes, you are correct. A short version is "don't do that". A long > version goes like this. %fs and %gs are not preserved while context > switching on amd64. But this makes emulation software such as Wine a lost hope, doesn't it? Because Windows

Re: amd64_set_gsbase()

2007-10-08 Thread Jung-uk Kim
On Monday 08 October 2007 02:35 pm, Mihai Donțu wrote: > Hi, > > I have a "small" amd64 program that makes havy use of LDT (%GS to > be more specific). The trouble is, in a multithreaded environment, > the selector value gets lost (or reset?). > > The code *always* segfaults with this stack: > 4