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:
parent
5f39eff851
commit
af8bd71617
|
@ -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;
|
||||||
|
|
668
fb/fbmmx.c
668
fb/fbmmx.c
File diff suppressed because it is too large
Load Diff
14
fb/fbmmx.h
14
fb/fbmmx.h
|
@ -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 */
|
||||||
|
|
30
fb/fbpict.c
30
fb/fbpict.c
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue