simplify, speedup and reduce needed headroom by 2 bits in the 3rd
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 20 Aug 2007 23:54:49 +0000 (23:54 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 20 Aug 2007 23:54:49 +0000 (23:54 +0000)
vertical lifting step

Originally committed as revision 10162 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/i386/snowdsp_mmx.c

index 17ac345..7b3214d 100644 (file)
@@ -590,18 +590,17 @@ void ff_snow_vertical_compose97i_mmx(DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, DWTE
         snow_vertical_compose_mmx_sub("mm1","mm3","mm5","mm7","mm0","mm2","mm4","mm6")
         snow_vertical_compose_mmx_store(REG_S,"mm0","mm2","mm4","mm6")
         "mov %2, %%"REG_a"                           \n\t"
-        snow_vertical_compose_mmx_load(REG_c,"mm1","mm3","mm5","mm7")
         snow_vertical_compose_mmx_add(REG_a,"mm0","mm2","mm4","mm6")
-        snow_vertical_compose_mmx_sll("2","mm1","mm3","mm5","mm7")
-        snow_vertical_compose_mmx_r2r_add("mm1","mm3","mm5","mm7","mm0","mm2","mm4","mm6")
+        snow_vertical_compose_mmx_sra("2","mm0","mm2","mm4","mm6")
+        snow_vertical_compose_mmx_add(REG_c,"mm0","mm2","mm4","mm6")
 
         "pcmpeqd %%mm1, %%mm1                        \n\t"
         "pslld $31, %%mm1                            \n\t"
-        "psrld $28, %%mm1                            \n\t"
+        "psrld $30, %%mm1                            \n\t"
         "mov %1, %%"REG_S"                           \n\t"
 
         snow_vertical_compose_mmx_r2r_add("mm1","mm1","mm1","mm1","mm0","mm2","mm4","mm6")
-        snow_vertical_compose_mmx_sra("4","mm0","mm2","mm4","mm6")
+        snow_vertical_compose_mmx_sra("2","mm0","mm2","mm4","mm6")
         snow_vertical_compose_mmx_add(REG_c,"mm0","mm2","mm4","mm6")
         snow_vertical_compose_mmx_store(REG_c,"mm0","mm2","mm4","mm6")
         snow_vertical_compose_mmx_add(REG_S,"mm0","mm2","mm4","mm6")