Mercurial > hg > dmlib
changeset 13:07bace8425d9
Optimize the scaled RGBA alpha blit MMX version further.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 28 Sep 2012 10:25:38 +0300 |
parents | 35b0c83af3ca |
children | a40c266a71a2 |
files | dmblitfunc.h |
diffstat | 1 files changed, 9 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- 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