diff options
Diffstat (limited to 'media-video/xmovie/files/xmovie-1.8-gcc3.3.patch')
-rw-r--r-- | media-video/xmovie/files/xmovie-1.8-gcc3.3.patch | 335 |
1 files changed, 0 insertions, 335 deletions
diff --git a/media-video/xmovie/files/xmovie-1.8-gcc3.3.patch b/media-video/xmovie/files/xmovie-1.8-gcc3.3.patch deleted file mode 100644 index e9e798517b01..000000000000 --- a/media-video/xmovie/files/xmovie-1.8-gcc3.3.patch +++ /dev/null @@ -1,335 +0,0 @@ -diff -ur xmovie-1.8/avifile/audiodecoder/mpeg/mpegtoraw.cpp xmovie-1.8-gentoo/avifile/audiodecoder/mpeg/mpegtoraw.cpp ---- xmovie-1.8/avifile/audiodecoder/mpeg/mpegtoraw.cpp 2001-05-20 15:02:39.000000000 +1200 -+++ xmovie-1.8-gentoo/avifile/audiodecoder/mpeg/mpegtoraw.cpp 2003-11-09 12:34:40.000000000 +1300 -@@ -553,8 +556,7 @@ - } - } - #ifdef DEBUG -- fprintf(stderr, "MPEG %d audio layer %d (%d kbps), at %d Hz %s [%d]\n", version+1, layer, bitrate[version][layer-1][bitrateindex], (mpeg25) ? frequencies[2][frequency] : frequencies[version][frequency], (mode == single) ? "mono" : "stere --o", framesize); -+ fprintf(stderr, "MPEG %d audio layer %d (%d kbps), at %d Hz %s [%d]\n", version+1, layer, bitrate[version][layer-1][bitrateindex], (mpeg25) ? frequencies[2][frequency] : frequencies[version][frequency], (mode == single) ? "mono" : "stereo", framesize); - #endif - - -diff -ur xmovie-1.8/avifile/loader/win32.c xmovie-1.8-gentoo/avifile/loader/win32.c ---- xmovie-1.8/avifile/loader/win32.c 2001-05-20 15:02:39.000000000 +1200 -+++ xmovie-1.8-gentoo/avifile/loader/win32.c 2003-11-09 12:32:21.000000000 +1300 -@@ -1083,12 +1083,12 @@ - { - #warning FIXME - if(s1) -- dbgprintf("MultiByteToWideChar(codepage %d, flags 0x%x, string 0x%x='%s', -- size %d, dest buffer 0x%x, dest size %d) => 1 ( L\"\\0\" )\n", -+ dbgprintf("MultiByteToWideChar(codepage %d, flags 0x%x, string 0x%x='%s', " -+ "size %d, dest buffer 0x%x, dest size %d) => 1 ( L\"\\0\" )\n", - v1, v2, s1, s1, siz1, s2, siz2); - else -- dbgprintf("MultiByteToWideChar(codepage %d, flags 0x%x, string NULL, -- size %d, dest buffer 0x%x, dest size %d) => 1 ( L\"\\0\" )\n", -+ dbgprintf("MultiByteToWideChar(codepage %d, flags 0x%x, string NULL, " -+ "size %d, dest buffer 0x%x, dest size %d) => 1 ( L\"\\0\" )\n", - v1, v2, siz1, s2, siz2); - - if(s2==0) -@@ -1593,12 +1593,12 @@ - { - long result=CreateFileMappingA(hFile, lpAttr, flProtect, dwMaxHigh, dwMaxLow, name); - if(!name) -- dbgprintf("CreateFileMappingA(file 0x%x, lpAttr 0x%x, -- flProtect 0x%x, dwMaxHigh 0x%x, dwMaxLow 0x%x, name 0) => %d\n", -+ dbgprintf("CreateFileMappingA(file 0x%x, lpAttr 0x%x, " -+ "flProtect 0x%x, dwMaxHigh 0x%x, dwMaxLow 0x%x, name 0) => %d\n", - hFile, lpAttr, flProtect, dwMaxHigh, dwMaxLow, result); - else -- dbgprintf("CreateFileMappingA(file 0x%x, lpAttr 0x%x, -- flProtect 0x%x, dwMaxHigh 0x%x, dwMaxLow 0x%x, name 0x%x='%s') => %d\n", -+ dbgprintf("CreateFileMappingA(file 0x%x, lpAttr 0x%x, " -+ "flProtect 0x%x, dwMaxHigh 0x%x, dwMaxLow 0x%x, name 0x%x='%s') => %d\n", - hFile, lpAttr, flProtect, dwMaxHigh, dwMaxLow, name, name, result); - return result; - } -diff -ur xmovie-1.8/libmpeg3/video/output.c xmovie-1.8-gentoo/libmpeg3/video/output.c ---- xmovie-1.8/libmpeg3/video/output.c 2001-05-20 15:02:38.000000000 +1200 -+++ xmovie-1.8-gentoo/libmpeg3/video/output.c 2003-11-09 12:46:11.000000000 +1300 -@@ -219,82 +219,80 @@ - unsigned long v, - unsigned long *output) - { --asm(" -+asm( - /* Output will be 0x00rrggbb with the 00 trailing so this can also be used */ - /* for bgr24. */ -- movd (%0), %%mm0; /* Load y 0x00000000000000yy */ -- movd (%1), %%mm1; /* Load u 0x00000000000000cr */ -- movq %%mm0, %%mm3; /* Copy y to temp */ -- psllq $16, %%mm1; /* Shift u 0x0000000000cr0000 */ -- movd (%2), %%mm2; /* Load v 0x00000000000000cb */ -- psllq $16, %%mm3; /* Shift y */ -- movq %%mm1, %%mm4; /* Copy u to temp */ -- por %%mm3, %%mm0; /* Overlay new y byte 0x0000000000yy00yy */ -- psllq $16, %%mm4; /* Shift u */ -- movq %%mm2, %%mm5; /* Copy v to temp */ -- psllq $16, %%mm3; /* Shift y */ -- por %%mm4, %%mm1; /* Overlay new u byte 0x000000cr00cr0000 */ -- psllq $16, %%mm5; /* Shift v */ -- por %%mm3, %%mm0; /* Overlay new y byte 0x000000yy00yy00yy */ -- por %%mm5, %%mm2; /* Overlay new v byte 0x0000000000cb00cb */ -+ "movd (%0), %%mm0;\n" /* Load y 0x00000000000000yy */ -+ "movd (%1), %%mm1;\n" /* Load u 0x00000000000000cr */ -+ "movq %%mm0, %%mm3;\n" /* Copy y to temp */ -+ "psllq $16, %%mm1;\n" /* Shift u 0x0000000000cr0000 */ -+ "movd (%2), %%mm2;\n" /* Load v 0x00000000000000cb */ -+ "psllq $16, %%mm3;\n" /* Shift y */ -+ "movq %%mm1, %%mm4;\n" /* Copy u to temp */ -+ "por %%mm3, %%mm0;\n" /* Overlay new y byte 0x0000000000yy00yy */ -+ "psllq $16, %%mm4;\n" /* Shift u */ -+ "movq %%mm2, %%mm5;\n" /* Copy v to temp */ -+ "psllq $16, %%mm3;\n" /* Shift y */ -+ "por %%mm4, %%mm1;\n" /* Overlay new u byte 0x000000cr00cr0000 */ -+ "psllq $16, %%mm5;\n" /* Shift v */ -+ "por %%mm3, %%mm0;\n" /* Overlay new y byte 0x000000yy00yy00yy */ -+ "por %%mm5, %%mm2;\n" /* Overlay new v byte 0x0000000000cb00cb */ - - /* mm0: 0x000000yy00yy00yy mm1: 0x000000uu00uu0000 mm2: 0x0000000000vv00vv */ -- psubw mpeg3_MMX_U_80, %%mm1; /* Subtract 128 from u 0x000000uu00uu0000 */ -- pmullw mpeg3_MMX_U_COEF, %%mm1; /* Multiply u coeffs 0x0000uuuuuuuu0000 */ -- psllw $6, %%mm0; /* Shift y coeffs 0x0000yyy0yyy0yyy0 */ -- psubw mpeg3_MMX_V_80, %%mm2; /* Subtract 128 from v 0x0000000000cb00cb */ -- pmullw mpeg3_MMX_V_COEF, %%mm2; /* Multiply v coeffs 0x0000crcrcrcrcrcr */ -+ "psubw mpeg3_MMX_U_80, %%mm1;\n" /* Subtract 128 from u 0x000000uu00uu0000 */ -+ "pmullw mpeg3_MMX_U_COEF, %%mm1;\n" /* Multiply u coeffs 0x0000uuuuuuuu0000 */ -+ "psllw $6, %%mm0;\n" /* Shift y coeffs 0x0000yyy0yyy0yyy0 */ -+ "psubw mpeg3_MMX_V_80, %%mm2;\n" /* Subtract 128 from v 0x0000000000cb00cb */ -+ "pmullw mpeg3_MMX_V_COEF, %%mm2;\n" /* Multiply v coeffs 0x0000crcrcrcrcrcr */ - - /* mm0: 0x000000yy00yy00yy mm1: 0x0000uuuuuuuu0000 mm2: 0x00000000vvvvvvvv */ -- paddsw %%mm1, %%mm0; /* Add u to result */ -- paddsw %%mm2, %%mm0; /* Add v to result 0x0000rrrrggggbbbb */ -- psraw $6, %%mm0; /* Demote precision */ -- packuswb %%mm0, %%mm0; /* Pack into ARGB 0x0000000000rrggbb */ -- movd %%mm0, (%3); /* Store output */ -- " -+ "paddsw %%mm1, %%mm0;\n" /* Add u to result */ -+ "paddsw %%mm2, %%mm0;\n" /* Add v to result 0x0000rrrrggggbbbb */ -+ "psraw $6, %%mm0;\n" /* Demote precision */ -+ "packuswb %%mm0, %%mm0;\n" /* Pack into ARGB 0x0000000000rrggbb */ -+ "movd %%mm0, (%3);\n" /* Store output */ - : - : "r" (&y), "r" (&u), "r" (&v), "r" (output)); - } - - inline void mpeg3_601_bgra32_mmx(unsigned long y, -- unsigned long u, -- unsigned long v, -+ unsigned long u, -+ unsigned long v, - unsigned long *output) - { --asm(" -+asm( - /* Output will be 0x00rrggbb with the 00 trailing so this can also be used */ - /* for bgr24. */ -- movd (%0), %%mm0; /* Load y 0x00000000000000yy */ -- psubsw mpeg3_MMX_601_Y_DIFF, %%mm0; /* Subtract 16 from y */ -- movd (%1), %%mm1; /* Load u 0x00000000000000cr */ -- movq %%mm0, %%mm3; /* Copy y to temp */ -- psllq $16, %%mm1; /* Shift u 0x0000000000cr0000 */ -- movd (%2), %%mm2; /* Load v 0x00000000000000cb */ -- psllq $16, %%mm3; /* Shift y */ -- movq %%mm1, %%mm4; /* Copy u to temp */ -- por %%mm3, %%mm0; /* Overlay new y byte 0x0000000000yy00yy */ -- psllq $16, %%mm4; /* Shift u */ -- movq %%mm2, %%mm5; /* Copy v to temp */ -- psllq $16, %%mm3; /* Shift y */ -- por %%mm4, %%mm1; /* Overlay new u byte 0x000000cr00cr0000 */ -- psllq $16, %%mm5; /* Shift v */ -- por %%mm3, %%mm0; /* Overlay new y byte 0x000000yy00yy00yy */ -- por %%mm5, %%mm2; /* Overlay new v byte 0x0000000000cb00cb */ -+ "movd (%0), %%mm0;\n" /* Load y 0x00000000000000yy */ -+ "psubsw mpeg3_MMX_601_Y_DIFF, %%mm0;\n" /* Subtract 16 from y */ -+ "movd (%1), %%mm1;\n" /* Load u 0x00000000000000cr */ -+ "movq %%mm0, %%mm3;\n" /* Copy y to temp */ -+ "psllq $16, %%mm1;\n" /* Shift u 0x0000000000cr0000 */ -+ "movd (%2), %%mm2;\n" /* Load v 0x00000000000000cb */ -+ "psllq $16, %%mm3;\n" /* Shift y */ -+ "movq %%mm1, %%mm4;\n" /* Copy u to temp */ -+ "por %%mm3, %%mm0;\n" /* Overlay new y byte 0x0000000000yy00yy */ -+ "psllq $16, %%mm4;\n" /* Shift u */ -+ "movq %%mm2, %%mm5;\n" /* Copy v to temp */ -+ "psllq $16, %%mm3;\n" /* Shift y */ -+ "por %%mm4, %%mm1;\n" /* Overlay new u byte 0x000000cr00cr0000 */ -+ "psllq $16, %%mm5;\n" /* Shift v */ -+ "por %%mm3, %%mm0;\n" /* Overlay new y byte 0x000000yy00yy00yy */ -+ "por %%mm5, %%mm2;\n" /* Overlay new v byte 0x0000000000cb00cb */ - - /* mm0: 0x000000yy00yy00yy mm1: 0x000000uu00uu0000 mm2: 0x0000000000vv00vv */ -- pmullw mpeg3_MMX_601_Y_COEF, %%mm0; /* Scale and shift y coeffs */ -- psubw mpeg3_MMX_U_80, %%mm1; /* Subtract 128 from u 0x000000uu00uu0000 */ -- pmullw mpeg3_MMX_U_COEF, %%mm1; /* Multiply u coeffs 0x0000uuuuuuuu0000 */ -- psubw mpeg3_MMX_V_80, %%mm2; /* Subtract 128 from v 0x0000000000cb00cb */ -- pmullw mpeg3_MMX_V_COEF, %%mm2; /* Multiply v coeffs 0x0000crcrcrcrcrcr */ -+ "pmullw mpeg3_MMX_601_Y_COEF, %%mm0;\n" /* Scale and shift y coeffs */ -+ "psubw mpeg3_MMX_U_80, %%mm1;\n" /* Subtract 128 from u 0x000000uu00uu0000 */ -+ "pmullw mpeg3_MMX_U_COEF, %%mm1;\n" /* Multiply u coeffs 0x0000uuuuuuuu0000 */ -+ "psubw mpeg3_MMX_V_80, %%mm2;\n" /* Subtract 128 from v 0x0000000000cb00cb */ -+ "pmullw mpeg3_MMX_V_COEF, %%mm2;\n" /* Multiply v coeffs 0x0000crcrcrcrcrcr */ - - /* mm0: 0x000000yy00yy00yy mm1: 0x0000uuuuuuuu0000 mm2: 0x00000000vvvvvvvv */ -- paddsw %%mm1, %%mm0; /* Add u to result */ -- paddsw %%mm2, %%mm0; /* Add v to result 0x0000rrrrggggbbbb */ -- psraw $6, %%mm0; /* Demote precision */ -- packuswb %%mm0, %%mm0; /* Pack into ARGB 0x0000000000rrggbb */ -- movd %%mm0, (%3); /* Store output */ -- " -+ "paddsw %%mm1, %%mm0;\n" /* Add u to result */ -+ "paddsw %%mm2, %%mm0;\n" /* Add v to result 0x0000rrrrggggbbbb */ -+ "psraw $6, %%mm0;\n" /* Demote precision */ -+ "packuswb %%mm0, %%mm0;\n" /* Pack into ARGB 0x0000000000rrggbb */ -+ "movd %%mm0, (%3);\n" /* Store output */ - : - : "r" (&y), "r" (&u), "r" (&v), "r" (output)); - } -@@ -305,86 +303,84 @@ - static long long mpeg3_MMX_V_COEF_RGB = 0x0000006fffea0000; - - inline void mpeg3_rgba32_mmx(unsigned long y, -- unsigned long u, -- unsigned long v, -+ unsigned long u, -+ unsigned long v, - unsigned long *output) - { --asm(" -+asm( - /* Output will be 0x00bbggrr with the 00 trailing so this can also be used */ - /* for rgb24. */ -- movd (%0), %%mm0; /* Load y 0x00000000000000yy */ -- movd (%1), %%mm1; /* Load v 0x00000000000000vv */ -- movq %%mm0, %%mm3; /* Copy y to temp */ -- psllq $16, %%mm1; /* Shift v 0x0000000000vv0000 */ -- movd (%2), %%mm2; /* Load u 0x00000000000000uu */ -- psllq $16, %%mm3; /* Shift y */ -- movq %%mm1, %%mm4; /* Copy v to temp */ -- por %%mm3, %%mm0; /* Overlay new y byte 0x0000000000yy00yy */ -- psllq $16, %%mm4; /* Shift v */ -- movq %%mm2, %%mm5; /* Copy u to temp */ -- psllq $16, %%mm3; /* Shift y */ -- por %%mm4, %%mm1; /* Overlay new v byte 0x000000vv00vv0000 */ -- psllq $16, %%mm5; /* Shift u */ -- por %%mm3, %%mm0; /* Overlay new y byte 0x000000yy00yy00yy */ -- por %%mm5, %%mm2; /* Overlay new u byte 0x0000000000uu00uu */ -+ "movd (%0), %%mm0;\n" /* Load y 0x00000000000000yy */ -+ "movd (%1), %%mm1;\n" /* Load v 0x00000000000000vv */ -+ "movq %%mm0, %%mm3;\n" /* Copy y to temp */ -+ "psllq $16, %%mm1;\n" /* Shift v 0x0000000000vv0000 */ -+ "movd (%2), %%mm2;\n" /* Load u 0x00000000000000uu */ -+ "psllq $16, %%mm3;\n" /* Shift y */ -+ "movq %%mm1, %%mm4;\n" /* Copy v to temp */ -+ "por %%mm3, %%mm0;\n" /* Overlay new y byte 0x0000000000yy00yy */ -+ "psllq $16, %%mm4;\n" /* Shift v */ -+ "movq %%mm2, %%mm5;\n" /* Copy u to temp */ -+ "psllq $16, %%mm3;\n" /* Shift y */ -+ "por %%mm4, %%mm1;\n" /* Overlay new v byte 0x000000vv00vv0000 */ -+ "psllq $16, %%mm5;\n" /* Shift u */ -+ "por %%mm3, %%mm0;\n" /* Overlay new y byte 0x000000yy00yy00yy */ -+ "por %%mm5, %%mm2;\n" /* Overlay new u byte 0x0000000000uu00uu */ - - /* mm0: 0x000000yy00yy00yy mm1: 0x000000vv00vv0000 mm2: 0x0000000000uu00uu */ -- psubw mpeg3_MMX_V_80_RGB, %%mm1; /* Subtract 128 from v 0x000000vv00vv0000 */ -- pmullw mpeg3_MMX_V_COEF_RGB, %%mm1; /* Multiply v coeffs 0x0000vvvvvvvv0000 */ -- psllw $6, %%mm0; /* Shift y coeffs 0x0000yyy0yyy0yyy0 */ -- psubw mpeg3_MMX_U_80_RGB, %%mm2; /* Subtract 128 from u 0x0000000000uu00uu */ -- pmullw mpeg3_MMX_U_COEF_RGB, %%mm2; /* Multiply u coeffs 0x0000uuuuuuuuuuuu */ -+ "psubw mpeg3_MMX_V_80_RGB, %%mm1;\n" /* Subtract 128 from v 0x000000vv00vv0000 */ -+ "pmullw mpeg3_MMX_V_COEF_RGB, %%mm1;\n" /* Multiply v coeffs 0x0000vvvvvvvv0000 */ -+ "psllw $6, %%mm0;\n" /* Shift y coeffs 0x0000yyy0yyy0yyy0 */ -+ "psubw mpeg3_MMX_U_80_RGB, %%mm2;\n" /* Subtract 128 from u 0x0000000000uu00uu */ -+ "pmullw mpeg3_MMX_U_COEF_RGB, %%mm2;\n" /* Multiply u coeffs 0x0000uuuuuuuuuuuu */ - - /* mm0: 0x000000yy00yy00yy mm1: 0x0000vvvvvvvv0000 mm2: 0x00000000uuuuuuuu */ -- paddsw %%mm1, %%mm0; /* Add v to result */ -- paddsw %%mm2, %%mm0; /* Add u to result 0x0000bbbbggggrrrr */ -- psraw $6, %%mm0; /* Demote precision */ -- packuswb %%mm0, %%mm0; /* Pack into RGBA 0x0000000000bbggrr */ -- movd %%mm0, (%3); /* Store output */ -- " -+ "paddsw %%mm1, %%mm0;\n" /* Add v to result */ -+ "paddsw %%mm2, %%mm0;\n" /* Add u to result 0x0000bbbbggggrrrr */ -+ "psraw $6, %%mm0;\n" /* Demote precision */ -+ "packuswb %%mm0, %%mm0;\n" /* Pack into RGBA 0x0000000000bbggrr */ -+ "movd %%mm0, (%3);\n" /* Store output */ - : - : "r" (&y), "r" (&v), "r" (&u), "r" (output)); - } - - inline void mpeg3_601_rgba32_mmx(unsigned long y, -- unsigned long u, -- unsigned long v, -+ unsigned long u, -+ unsigned long v, - unsigned long *output) - { --asm(" -+asm( - /* Output will be 0x00bbggrr with the 00 trailing so this can also be used */ - /* for rgb24. */ -- movd (%0), %%mm0; /* Load y 0x00000000000000yy */ -- psubsw mpeg3_MMX_601_Y_DIFF, %%mm0; /* Subtract 16 from y */ -- movd (%1), %%mm1; /* Load v 0x00000000000000vv */ -- movq %%mm0, %%mm3; /* Copy y to temp */ -- psllq $16, %%mm1; /* Shift v 0x0000000000vv0000 */ -- movd (%2), %%mm2; /* Load u 0x00000000000000uu */ -- psllq $16, %%mm3; /* Shift y */ -- movq %%mm1, %%mm4; /* Copy v to temp */ -- por %%mm3, %%mm0; /* Overlay new y byte 0x0000000000yy00yy */ -- psllq $16, %%mm4; /* Shift v */ -- movq %%mm2, %%mm5; /* Copy u to temp */ -- psllq $16, %%mm3; /* Shift y */ -- por %%mm4, %%mm1; /* Overlay new v byte 0x000000vv00vv0000 */ -- psllq $16, %%mm5; /* Shift u */ -- por %%mm3, %%mm0; /* Overlay new y byte 0x000000yy00yy00yy */ -- por %%mm5, %%mm2; /* Overlay new u byte 0x0000000000uu00uu */ -+ "movd (%0), %%mm0;\n" /* Load y 0x00000000000000yy */ -+ "psubsw mpeg3_MMX_601_Y_DIFF, %%mm0;\n" /* Subtract 16 from y */ -+ "movd (%1), %%mm1;\n" /* Load v 0x00000000000000vv */ -+ "movq %%mm0, %%mm3;\n" /* Copy y to temp */ -+ "psllq $16, %%mm1;\n" /* Shift v 0x0000000000vv0000 */ -+ "movd (%2), %%mm2;\n" /* Load u 0x00000000000000uu */ -+ "psllq $16, %%mm3;\n" /* Shift y */ -+ "movq %%mm1, %%mm4;\n" /* Copy v to temp */ -+ "por %%mm3, %%mm0;\n" /* Overlay new y byte 0x0000000000yy00yy */ -+ "psllq $16, %%mm4;\n" /* Shift v */ -+ "movq %%mm2, %%mm5;\n" /* Copy u to temp */ -+ "psllq $16, %%mm3;\n" /* Shift y */ -+ "por %%mm4, %%mm1;\n" /* Overlay new v byte 0x000000vv00vv0000 */ -+ "psllq $16, %%mm5;\n" /* Shift u */ -+ "por %%mm3, %%mm0;\n" /* Overlay new y byte 0x000000yy00yy00yy */ -+ "por %%mm5, %%mm2;\n" /* Overlay new u byte 0x0000000000uu00uu */ - - /* mm0: 0x000000yy00yy00yy mm1: 0x000000vv00vv0000 mm2: 0x0000000000uu00uu */ -- pmullw mpeg3_MMX_601_Y_COEF, %%mm0; /* Scale y coeffs */ -- psubw mpeg3_MMX_V_80_RGB, %%mm1; /* Subtract 128 from v 0x000000vv00vv0000 */ -- pmullw mpeg3_MMX_V_COEF_RGB, %%mm1; /* Multiply v coeffs 0x0000vvvvvvvv0000 */ -- psubw mpeg3_MMX_U_80_RGB, %%mm2; /* Subtract 128 from u 0x0000000000uu00uu */ -- pmullw mpeg3_MMX_U_COEF_RGB, %%mm2; /* Multiply u coeffs 0x0000uuuuuuuuuuuu */ -+ "pmullw mpeg3_MMX_601_Y_COEF, %%mm0;\n" /* Scale y coeffs */ -+ "psubw mpeg3_MMX_V_80_RGB, %%mm1;\n" /* Subtract 128 from v 0x000000vv00vv0000 */ -+ "pmullw mpeg3_MMX_V_COEF_RGB, %%mm1;\n" /* Multiply v coeffs 0x0000vvvvvvvv0000 */ -+ "psubw mpeg3_MMX_U_80_RGB, %%mm2;\n" /* Subtract 128 from u 0x0000000000uu00uu */ -+ "pmullw mpeg3_MMX_U_COEF_RGB, %%mm2;\n" /* Multiply u coeffs 0x0000uuuuuuuuuuuu */ - - /* mm0: 0x000000yy00yy00yy mm1: 0x0000vvvvvvvv0000 mm2: 0x00000000uuuuuuuu */ -- paddsw %%mm1, %%mm0; /* Add v to result */ -- paddsw %%mm2, %%mm0; /* Add u to result 0x0000bbbbggggrrrr */ -- psraw $6, %%mm0; /* Demote precision */ -- packuswb %%mm0, %%mm0; /* Pack into RGBA 0x0000000000bbggrr */ -- movd %%mm0, (%3); /* Store output */ -- " -+ "paddsw %%mm1, %%mm0;\n" /* Add v to result */ -+ "paddsw %%mm2, %%mm0;\n" /* Add u to result 0x0000bbbbggggrrrr */ -+ "psraw $6, %%mm0;\n" /* Demote precision */ -+ "packuswb %%mm0, %%mm0;\n" /* Pack into RGBA 0x0000000000bbggrr */ -+ "movd %%mm0, (%3);\n" /* Store output */ - : - : "r" (&y), "r" (&v), "r" (&u), "r" (output)); - } |