Mon Jan 3 12:45:10 2005 Søren Sandmann <sandmann@redhat.com>

Clean-ups and support for AMD64. Bug 1067. Patch by Nicholas Miell
    (nmiell@comcast.net)
Add support for AMD64
Many cleanups using <mmintrin.h> instead of __builin_ia32_*, and intrinsics
    instead of inline assembly. Also unconditionally use pshufw on AMD64.
s/USE_GCC34_MMX/USE_MMX/g
This commit is contained in:
Søren Sandmann Pedersen 2005-01-03 21:32:22 +00:00
parent 5f39eff851
commit af8bd71617
4 changed files with 342 additions and 372 deletions

View File

@ -44,7 +44,7 @@ fbFill (DrawablePtr pDrawable,
switch (pGC->fillStyle) { switch (pGC->fillStyle) {
case FillSolid: case FillSolid:
#ifdef USE_GCC34_MMX #ifdef USE_MMX
if (!pPriv->and && fbHaveMMX()) if (!pPriv->and && fbHaveMMX())
if (fbSolidFillmmx (pDrawable, x, y, width, height, pPriv->xor)) if (fbSolidFillmmx (pDrawable, x, y, width, height, pPriv->xor))
return; return;

File diff suppressed because it is too large Load Diff

View File

@ -22,13 +22,19 @@
* *
* Based on work by Owen Taylor * Based on work by Owen Taylor
*/ */
#ifdef USE_GCC34_MMX #ifdef USE_MMX
#ifndef __amd64__
Bool fbHaveMMX(void); Bool fbHaveMMX(void);
#else #else
#define fbHaveMMX FALSE #define fbHaveMMX() TRUE
#endif #endif
#ifdef USE_GCC34_MMX #else
#define fbHaveMMX() FALSE
#endif
#ifdef USE_MMX
void fbCompositeSolidMask_nx8888x0565Cmmx (CARD8 op, void fbCompositeSolidMask_nx8888x0565Cmmx (CARD8 op,
PicturePtr pSrc, PicturePtr pSrc,
@ -157,4 +163,4 @@ Bool fbSolidFillmmx (DrawablePtr pDraw,
int height, int height,
FbBits xor); FbBits xor);
#endif /* USE_GCC34_MMX */ #endif /* USE_MMX */

View File

@ -877,7 +877,7 @@ fbComposite (CARD8 op,
switch (pDst->format) { switch (pDst->format) {
case PICT_r5g6b5: case PICT_r5g6b5:
case PICT_b5g6r5: case PICT_b5g6r5:
#ifdef USE_GCC34_MMX #ifdef USE_MMX
if (fbHaveMMX()) if (fbHaveMMX())
func = fbCompositeSolidMask_nx8x0565mmx; func = fbCompositeSolidMask_nx8x0565mmx;
else else
@ -892,7 +892,7 @@ fbComposite (CARD8 op,
case PICT_x8r8g8b8: case PICT_x8r8g8b8:
case PICT_a8b8g8r8: case PICT_a8b8g8r8:
case PICT_x8b8g8r8: case PICT_x8b8g8r8:
#ifdef USE_GCC34_MMX #ifdef USE_MMX
if (fbHaveMMX()) if (fbHaveMMX())
func = fbCompositeSolidMask_nx8x8888mmx; func = fbCompositeSolidMask_nx8x8888mmx;
else else
@ -906,7 +906,7 @@ fbComposite (CARD8 op,
switch (pDst->format) { switch (pDst->format) {
case PICT_a8r8g8b8: case PICT_a8r8g8b8:
case PICT_x8r8g8b8: case PICT_x8r8g8b8:
#ifdef USE_GCC34_MMX #ifdef USE_MMX
if (fbHaveMMX()) if (fbHaveMMX())
func = fbCompositeSolidMask_nx8888x8888Cmmx; func = fbCompositeSolidMask_nx8888x8888Cmmx;
else else
@ -914,7 +914,7 @@ fbComposite (CARD8 op,
func = fbCompositeSolidMask_nx8888x8888C; func = fbCompositeSolidMask_nx8888x8888C;
break; break;
case PICT_r5g6b5: case PICT_r5g6b5:
#ifdef USE_GCC34_MMX #ifdef USE_MMX
if (fbHaveMMX()) if (fbHaveMMX())
func = fbCompositeSolidMask_nx8888x0565Cmmx; func = fbCompositeSolidMask_nx8888x0565Cmmx;
else else
@ -929,7 +929,7 @@ fbComposite (CARD8 op,
switch (pDst->format) { switch (pDst->format) {
case PICT_a8b8g8r8: case PICT_a8b8g8r8:
case PICT_x8b8g8r8: case PICT_x8b8g8r8:
#ifdef USE_GCC34_MMX #ifdef USE_MMX
if (fbHaveMMX()) if (fbHaveMMX())
func = fbCompositeSolidMask_nx8888x8888Cmmx; func = fbCompositeSolidMask_nx8888x8888Cmmx;
else else
@ -937,7 +937,7 @@ fbComposite (CARD8 op,
func = fbCompositeSolidMask_nx8888x8888C; func = fbCompositeSolidMask_nx8888x8888C;
break; break;
case PICT_b5g6r5: case PICT_b5g6r5:
#ifdef USE_GCC34_MMX #ifdef USE_MMX
if (fbHaveMMX()) if (fbHaveMMX())
func = fbCompositeSolidMask_nx8888x0565Cmmx; func = fbCompositeSolidMask_nx8888x0565Cmmx;
else else
@ -978,13 +978,13 @@ fbComposite (CARD8 op,
switch (pDst->format) { switch (pDst->format) {
case PICT_a8r8g8b8: case PICT_a8r8g8b8:
case PICT_x8r8g8b8: case PICT_x8r8g8b8:
#ifdef USE_GCC34_MMX #ifdef USE_MMX
if (fbHaveMMX()) if (fbHaveMMX())
func = fbCompositeSrc_8888RevNPx8888mmx; func = fbCompositeSrc_8888RevNPx8888mmx;
#endif #endif
break; break;
case PICT_r5g6b5: case PICT_r5g6b5:
#ifdef USE_GCC34_MMX #ifdef USE_MMX
if (fbHaveMMX()) if (fbHaveMMX())
func = fbCompositeSrc_8888RevNPx0565mmx; func = fbCompositeSrc_8888RevNPx0565mmx;
#endif #endif
@ -1000,13 +1000,13 @@ fbComposite (CARD8 op,
switch (pDst->format) { switch (pDst->format) {
case PICT_a8b8g8r8: case PICT_a8b8g8r8:
case PICT_x8b8g8r8: case PICT_x8b8g8r8:
#ifdef USE_GCC34_MMX #ifdef USE_MMX
if (fbHaveMMX()) if (fbHaveMMX())
func = fbCompositeSrc_8888RevNPx8888mmx; func = fbCompositeSrc_8888RevNPx8888mmx;
#endif #endif
break; break;
case PICT_r5g6b5: case PICT_r5g6b5:
#ifdef USE_GCC34_MMX #ifdef USE_MMX
if (fbHaveMMX()) if (fbHaveMMX())
func = fbCompositeSrc_8888RevNPx0565mmx; func = fbCompositeSrc_8888RevNPx0565mmx;
#endif #endif
@ -1032,7 +1032,7 @@ fbComposite (CARD8 op,
switch (pDst->format) { switch (pDst->format) {
case PICT_a8r8g8b8: case PICT_a8r8g8b8:
case PICT_x8r8g8b8: case PICT_x8r8g8b8:
#ifdef USE_GCC34_MMX #ifdef USE_MMX
if (fbHaveMMX()) if (fbHaveMMX())
{ {
srcRepeat = FALSE; srcRepeat = FALSE;
@ -1041,7 +1041,7 @@ fbComposite (CARD8 op,
#endif #endif
break; break;
case PICT_r5g6b5: case PICT_r5g6b5:
#ifdef USE_GCC34_MMX #ifdef USE_MMX
if (fbHaveMMX()) if (fbHaveMMX())
{ {
srcRepeat = FALSE; srcRepeat = FALSE;
@ -1109,7 +1109,7 @@ fbComposite (CARD8 op,
case PICT_a8r8g8b8: case PICT_a8r8g8b8:
switch (pDst->format) { switch (pDst->format) {
case PICT_a8r8g8b8: case PICT_a8r8g8b8:
#ifdef USE_GCC34_MMX #ifdef USE_MMX
if (fbHaveMMX()) if (fbHaveMMX())
func = fbCompositeSrcAdd_8888x8888mmx; func = fbCompositeSrcAdd_8888x8888mmx;
else else
@ -1121,7 +1121,7 @@ fbComposite (CARD8 op,
case PICT_a8b8g8r8: case PICT_a8b8g8r8:
switch (pDst->format) { switch (pDst->format) {
case PICT_a8b8g8r8: case PICT_a8b8g8r8:
#ifdef USE_GCC34_MMX #ifdef USE_MMX
if (fbHaveMMX()) if (fbHaveMMX())
func = fbCompositeSrcAdd_8888x8888mmx; func = fbCompositeSrcAdd_8888x8888mmx;
else else
@ -1133,7 +1133,7 @@ fbComposite (CARD8 op,
case PICT_a8: case PICT_a8:
switch (pDst->format) { switch (pDst->format) {
case PICT_a8: case PICT_a8:
#ifdef USE_GCC34_MMX #ifdef USE_MMX
if (fbHaveMMX()) if (fbHaveMMX())
func = fbCompositeSrcAdd_8000x8000mmx; func = fbCompositeSrcAdd_8000x8000mmx;
else else