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) {
case FillSolid:
#ifdef USE_GCC34_MMX
#ifdef USE_MMX
if (!pPriv->and && fbHaveMMX())
if (fbSolidFillmmx (pDrawable, x, y, width, height, pPriv->xor))
return;

File diff suppressed because it is too large Load Diff

View File

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

View File

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