Home General|News| Download Contact


SSE/MMX support

February the 4-th, 2011

The following requirements must be met in order given OS supports SSE:

  • a)Startup ring 0 code must be modified

  • b)trap/exception handling in kernel must be modified

  • c)context switch handling in kernel must be modified

  • d)Your processor should support it, it means You need PIII or P4 machine

  • e)because startup code is written in Coherent assemble, assembler itself must be patched to support certain new instructions

  • f)gcc compiler must support SSE/MMX in order for applications being able to take advantage of SSE

So far so good. We have gcc 3.2.3 which supports SSE/MMX, it means it produces the code containing SSE/SSE2 processor instructions.

Applications built using this compiler with SSE flags enabled abort , when used in our standard Coherent kernel environment on P4 system and when the requirements a,b,c,e are not met.

But we have suceeded to accomplish some of above tasks. As a result XFree multimedia applications , for example, xanim 2.8.1,work fine and we observe noticable performance gain.To take full advantage of SSE XFree itself should also be rebuilt with this compiler, what is one of our next goals.We expect good results for 3D applications, for example Mesa applications explicitly support SSE.

Tested applications so far :

  • xanim 2.8.1

Although SSE/SSE2 was a hype in years 2000/2001 , it is still extremely important for Coherent, because XFree video driver for GeForce cards we use, does not support hardware 3D acceleration.So SSE is the only chance to make multimedia applications usable in Coherent.

  • 25.3.2012 , gcc-4.4.6 is available for Coherent, with enhanced SSE support, for example loop vectorizer is active when option -O3 is used. It solves partially problem of SSE optimisation (?), we do not how good it is yet. It is the last gcc compiler with coff support.

  • Another possibility is to compile using gcc 4.4.x and above under Linux/Solaris/Freebsd and create assembler code with -S option and then copy assembler source file to Coherent . Tested.