• Welcome to Tux Reports: Where Penguins Fly. We hope you find the topics varied, interesting, and worthy of your time. Please become a member and join in the discussions.

Re: x86 instruction set usage-difference between windows 95 andwindows xp ?

A

Alexei A. Frounze

Flightless Bird
On Mar 25, 12:54 pm, Rugxulo <rugx...@gmail.com> wrote:
> Hi,
>
> On Mar 25, 1:15 am, "Alexei A. Frounze" <alexfrun...@gmail.com> wrote:
>
> > On Mar 24, 9:28 pm, "Skybuck Flying" <IntoTheFut...@hotmail.com>
> > wrote:

>
> > > Q2: Has the x86 instruction set received any major or minor extension(s) for
> > > operating system usage (kernel-space) through the years ?

>
> > > (Maybe new instructions ?, maybe new registers ?)

>
> > Now, new non-system instructions that don't come in with new CPU
> > registers or special state structures (e.g. MMX/XMM regs, MXCSR)
> > should work equally well under either system. Think of POPCNT, for
> > example. It works with the same general purpose regs and as long it's
> > supported by the CPU (check with CPUID), you can use it.

>
> Be sure to also check if CPUID is supported before using it!   ;-)


Must be on all Pentium class CPUs. Anyone still has 80486? :)

> > But you're
> > out of luck with XMM under Win9x/2K because the OS isn't gonna save
> > and restore them as part of a context switch (switch between threads)
> > and even if you can execute those SSE instructions, as soon as two
> > threads start executing them concurrently, the XMM reg state will get
> > trashed.

>
> I don't know first-hand, but from what I've read, the following all
> support SSE state saving (FXSAVE/FXRSTOR):   Win95 OSR2, Win98, WinNT
> 4.0 SP4 + driver, WinNT 5.0 beta 2, or newer. As you probably know,
> WinNT 5 was officially renamed to Win2k.
>
> Not sure what Linux version introduced support, 2.2 or 2.4, somewhere
> in there.
> EDIT: Seems old patches for 2.2.5 and 2.2.12 are available athttp://sourceware.org/gdb/papers/linux/linux-sse.html.
>
> FXSAVE/FXRSTOR are meant to be faster at saving FPU/XMM and were
> actually introduced in late model Pentium II cpus. Of course, SSE1
> only came with Pentium III (or Athlon XP).


I might be wrong and you right. I've rarely needed to use this
instruction subset, so I don't know/remember all the historical
details.

Alex
 
Top