# HG changeset patch # User Matti Hamalainen # Date 1348817138 -10800 # Node ID 07bace8425d9ffcae581062eb6a26b8eb8e3e5fc # Parent 35b0c83af3ca9554c46aac2c60cb096462654b9a Optimize the scaled RGBA alpha blit MMX version further. diff -r 35b0c83af3ca -r 07bace8425d9 dmblitfunc.h --- a/dmblitfunc.h Fri Sep 28 09:35:25 2012 +0300 +++ b/dmblitfunc.h Fri Sep 28 10:25:38 2012 +0300 @@ -107,30 +107,22 @@ "movd %2, %%mm1\n" \ \ "movd %3, %%mm2\n" \ - "movq %%mm1, %%mm3\n" \ - "pand %%mm2, %%mm3\n" \ - "movq %%mm3, %%mm4\n" \ - "psrlq $8, %%mm3\n" \ - "por %%mm3, %%mm4\n" \ - "movq %%mm4, %%mm3\n" \ - "psrlq $16, %%mm4\n" \ - "por %%mm3, %%mm4\n" \ - "pxor %%mm5, %%mm5\n" \ - "movq %%mm5, %%mm2\n" \ - "punpcklbw %%mm5, %%mm4\n" \ - "movq %%mm4, %%mm5\n" \ + "movq %%mm1, %%mm5\n" \ + "pand %%mm2, %%mm5\n" \ + "psrlw $8, %%mm5\n" \ + "punpcklwd %%mm5, %%mm5\n" \ + "punpckhwd %%mm5, %%mm5\n" \ \ - "movq %%mm2, %%mm4\n" \ - \ + "pxor %%mm2, %%mm2\n" \ "movd %1, %%mm3\n" \ "punpcklbw %%mm2, %%mm1\n" \ - "punpcklbw %%mm4, %%mm3\n" \ + "punpcklbw %%mm2, %%mm3\n" \ \ "psubw %%mm3, %%mm1\n" \ "pmullw %%mm5, %%mm1\n" \ "psraw $8, %%mm1\n" \ "paddw %%mm3, %%mm1\n" \ - "pand %4, %%mm1\n" \ + "pand %4, %%mm1\n" \ "packuswb %%mm2, %%mm1\n" \ "movd %%mm1, %0\n" \ : "=m" (*dp) \ @@ -138,6 +130,7 @@ : "memory" ); dp++; #define DM_SCALED_FINISH asm("emms\n"); + #else #define DM_SCALED_SRC_TYPE DMRGBA32 #define DM_SCALED_DST_TYPE DMRGBA32