> vx32 converts SIGFPE to the SIMD SSE/SSE2 trap 19, but
> 9vx expects only x87.

Ah.  So that explains where the 19 came from.
I had wondered how I got that wrong.  ;-)
Vx32 originally disallowed the x87 so that the
VM execution would be more deterministic,
but it was easier to turn on x87 support than
change 8c.

> i had wondered the other day whether there were AMD/Intel processors
> in common use that supported x87 but not SSE/SSE2.  should 8c start
> using SSE as the plan 9 amd64 compiler does? could it support that 
> exclusively?

I have pushed hard to keep post-386 dependencies
from creeping into the system.  That's why, for example,
libthread uses locked INCL and DECL instructions
instead of the commented-out XADDL implementation
that would only work on the 486 and later.
I harbor no illusion that we've succeeded entirely, but
I do hope that if someone dug up a 386, it would not be
too much work to get it to boot and run.

Just the other day Sape and I were discussing whether
some code he was working on should add a dependency
on CMPXCHG8B (64-bit compare and swap), which was
only introduced in the Pentium.  I think we decided there
is a way to avoid it in favor of the 386-supported 32-bit XCHG.

The SSE instructions were only added in the Pentium III;
SSE2 only came in with the Pentium 4.

I realize that, at this point, keeping 386 support is bordering
on retrocomputing, but it's hard to know where to draw the line.
I would be inclined to leave the 386 support as it is
and assume that people who want to take advantage of
new features will switch to the x86-64 once the port is available.
But I might just be out of touch.

Russ


Reply via email to