CVS Xserver breaks on non-SSE capable i386 machines

Patrick McFarland pmcfarland at downeast.net
Sun Jul 24 11:56:03 PDT 2005


On Sunday 24 July 2005 07:25 am, Lars Knoll wrote:
> On Sunday 24 July 2005 01:47, Krzysztof Halasa wrote:
> > Hi,
> >
> > It looks like the following change broke Xserver on non-SSE i386
> > machines (Pentium MMX and earlier, and VIA C3 which lacks cmov
> > instruction):
>
> Hmmm... the SSE/MMX code paths should not  get used on such machines. And
> -mmmx/-msse should not enable CMOV in the compilation. I'll have a look at
> it on monday.

Except -mmmx/-msse tells gcc to enable/generate mmx and sse instructions (for 
the longest time, all this did was #define something, in gcc4, from what I 
understand, gcc can do stuff like vectorizing simple loops and such). Unless 
the object in question is loaded runtime based on what the CPU supports (ie, 
in X's plugin architecture), -mmmx/-msse cannot be used.

HOWEVER, none of this stops you from using runtime detection and using 
function pointers to point at different versions of the code depending on 
what the CPU supports; that doesn't require -mmmx/-msse. This runtime method 
is also the recommended method of providing mmx and sse enabled code, it 
allows you to build and run on any computer, no matter if it supports mmx or 
sse or neither.

-- 
Patrick "Diablo-D3" McFarland || pmcfarland at downeast.net
"Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd 
all be running around in darkened rooms, munching magic pills and listening to
repetitive electronic music." -- Kristian Wilson, Nintendo, Inc, 1989
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20050724/ca33e2ac/attachment.pgp>


More information about the xorg mailing list