mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-27 05:00:37 +00:00
fixed gcc-3.0.x compilation (by Michael Niedermayer)
Originally committed as revision 211 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
6c426cff79
commit
a822a47983
@ -344,7 +344,7 @@ void print_stats(void);
|
||||
|
||||
/* misc math functions */
|
||||
|
||||
extern inline int av_log2(unsigned int v)
|
||||
static inline int av_log2(unsigned int v)
|
||||
{
|
||||
int n;
|
||||
|
||||
|
@ -76,7 +76,7 @@ static void get_pixels_mmx(DCTELEM *block, const UINT8 *pixels, int line_size)
|
||||
/* read the pixels */
|
||||
p = block;
|
||||
pix = pixels;
|
||||
__asm __volatile("pxor %%mm7, %%mm7":::"memory");
|
||||
__asm __volatile("pxor %%mm7, %%mm7":);
|
||||
for(i=0;i<4;i++) {
|
||||
__asm __volatile(
|
||||
"movq %1, %%mm0\n\t"
|
||||
@ -110,25 +110,23 @@ static void put_pixels_clamped_mmx(const DCTELEM *block, UINT8 *pixels, int line
|
||||
pix = pixels;
|
||||
for(i=0;i<2;i++) {
|
||||
__asm __volatile(
|
||||
"movq %4, %%mm0\n\t"
|
||||
"movq 8%4, %%mm1\n\t"
|
||||
"movq 16%4, %%mm2\n\t"
|
||||
"movq 24%4, %%mm3\n\t"
|
||||
"movq 32%4, %%mm4\n\t"
|
||||
"movq 40%4, %%mm5\n\t"
|
||||
"movq 48%4, %%mm6\n\t"
|
||||
"movq 56%4, %%mm7\n\t"
|
||||
"movq %3, %%mm0\n\t"
|
||||
"movq 8%3, %%mm1\n\t"
|
||||
"movq 16%3, %%mm2\n\t"
|
||||
"movq 24%3, %%mm3\n\t"
|
||||
"movq 32%3, %%mm4\n\t"
|
||||
"movq 40%3, %%mm5\n\t"
|
||||
"movq 48%3, %%mm6\n\t"
|
||||
"movq 56%3, %%mm7\n\t"
|
||||
"packuswb %%mm1, %%mm0\n\t"
|
||||
"packuswb %%mm3, %%mm2\n\t"
|
||||
"packuswb %%mm5, %%mm4\n\t"
|
||||
"packuswb %%mm7, %%mm6\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
"movq %%mm2, %1\n\t"
|
||||
"movq %%mm4, %2\n\t"
|
||||
"movq %%mm6, %3\n\t"
|
||||
:"=m"(*pix), "=m"(*(pix+line_size))
|
||||
,"=m"(*(pix+line_size*2)), "=m"(*(pix+line_size*3))
|
||||
:"m"(*p)
|
||||
"movq %%mm0, (%0)\n\t"
|
||||
"movq %%mm2, (%0, %1)\n\t"
|
||||
"movq %%mm4, (%0, %1, 2)\n\t"
|
||||
"movq %%mm6, (%0, %2)\n\t"
|
||||
::"r" (pix), "r" (line_size), "r" (line_size*3), "m"(*p)
|
||||
:"memory");
|
||||
pix += line_size*4;
|
||||
p += 32;
|
||||
@ -144,7 +142,7 @@ static void add_pixels_clamped_mmx(const DCTELEM *block, UINT8 *pixels, int line
|
||||
/* read the pixels */
|
||||
p = block;
|
||||
pix = pixels;
|
||||
__asm __volatile("pxor %%mm7, %%mm7":::"memory");
|
||||
__asm __volatile("pxor %%mm7, %%mm7":);
|
||||
for(i=0;i<4;i++) {
|
||||
__asm __volatile(
|
||||
"movq %2, %%mm0\n\t"
|
||||
@ -167,7 +165,7 @@ static void add_pixels_clamped_mmx(const DCTELEM *block, UINT8 *pixels, int line
|
||||
"packuswb %%mm3, %%mm2\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
"movq %%mm2, %1\n\t"
|
||||
:"=m"(*pix), "=m"(*(pix+line_size))
|
||||
:"+m"(*pix), "+m"(*(pix+line_size))
|
||||
:"m"(*p)
|
||||
:"memory");
|
||||
pix += line_size*2;
|
||||
@ -186,16 +184,15 @@ static void put_pixels_mmx(UINT8 *block, const UINT8 *pixels, int line_size, int
|
||||
dh=h&3;
|
||||
while(hh--) {
|
||||
__asm __volatile(
|
||||
"movq %4, %%mm0\n\t"
|
||||
"movq %5, %%mm1\n\t"
|
||||
"movq %6, %%mm2\n\t"
|
||||
"movq %7, %%mm3\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
"movq %%mm1, %1\n\t"
|
||||
"movq %%mm2, %2\n\t"
|
||||
"movq %%mm3, %3\n\t"
|
||||
:"=m"(*p), "=m"(*(p+line_size)), "=m"(*(p+line_size*2)), "=m"(*(p+line_size*3))
|
||||
:"m"(*pix), "m"(*(pix+line_size)), "m"(*(pix+line_size*2)), "m"(*(pix+line_size*3))
|
||||
"movq (%1), %%mm0 \n\t"
|
||||
"movq (%1, %2), %%mm1 \n\t"
|
||||
"movq (%1, %2, 2), %%mm2 \n\t"
|
||||
"movq (%1, %3), %%mm3 \n\t"
|
||||
"movq %%mm0, (%0) \n\t"
|
||||
"movq %%mm1, (%0, %2) \n\t"
|
||||
"movq %%mm2, (%0, %2, 2) \n\t"
|
||||
"movq %%mm3, (%0, %3) \n\t"
|
||||
::"r"(p), "r"(pix), "r"(line_size), "r"(line_size*3)
|
||||
:"memory");
|
||||
pix = pix + line_size*4;
|
||||
p = p + line_size*4;
|
||||
@ -221,7 +218,7 @@ static void put_pixels_x2_mmx(UINT8 *block, const UINT8 *pixels, int line_size,
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7\n\t"
|
||||
"movq %0, %%mm4\n\t"
|
||||
::"m"(mm_wone):"memory");
|
||||
::"m"(mm_wone));
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %1, %%mm0\n\t"
|
||||
@ -256,7 +253,7 @@ static void put_pixels_y2_mmx(UINT8 *block, const UINT8 *pixels, int line_size,
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7\n\t"
|
||||
"movq %0, %%mm4\n\t"
|
||||
::"m"(mm_wone):"memory");
|
||||
::"m"(mm_wone));
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %1, %%mm0\n\t"
|
||||
@ -293,7 +290,7 @@ static void put_pixels_xy2_mmx(UINT8 *block, const UINT8 *pixels, int line_size,
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7\n\t"
|
||||
"movq %0, %%mm6\n\t"
|
||||
::"m"(mm_wtwo):"memory");
|
||||
::"m"(mm_wtwo));
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %1, %%mm0\n\t"
|
||||
@ -339,7 +336,7 @@ static void put_no_rnd_pixels_x2_mmx( UINT8 *block, const UINT8 *pixels, int
|
||||
const UINT8 *pix;
|
||||
p = block;
|
||||
pix = pixels;
|
||||
__asm __volatile("pxor %%mm7, %%mm7\n\t":::"memory");
|
||||
__asm __volatile("pxor %%mm7, %%mm7\n\t":);
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %1, %%mm0\n\t"
|
||||
@ -370,7 +367,7 @@ static void put_no_rnd_pixels_y2_mmx( UINT8 *block, const UINT8 *pixels, int li
|
||||
const UINT8 *pix;
|
||||
p = block;
|
||||
pix = pixels;
|
||||
__asm __volatile("pxor %%mm7, %%mm7\n\t":::"memory");
|
||||
__asm __volatile("pxor %%mm7, %%mm7\n\t":);
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %1, %%mm0\n\t"
|
||||
@ -405,7 +402,7 @@ static void put_no_rnd_pixels_xy2_mmx( UINT8 *block, const UINT8 *pixels, int
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7\n\t"
|
||||
"movq %0, %%mm6\n\t"
|
||||
::"m"(mm_wone):"memory");
|
||||
::"m"(mm_wone));
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %1, %%mm0\n\t"
|
||||
@ -454,7 +451,7 @@ static void avg_pixels_mmx(UINT8 *block, const UINT8 *pixels, int line_size, int
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7\n\t"
|
||||
"movq %0, %%mm6\n\t"
|
||||
::"m"(mm_wone):"memory");
|
||||
::"m"(mm_wone));
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %0, %%mm0\n\t"
|
||||
@ -473,7 +470,7 @@ static void avg_pixels_mmx(UINT8 *block, const UINT8 *pixels, int line_size, int
|
||||
"psrlw $1, %%mm2\n\t"
|
||||
"packuswb %%mm2, %%mm0\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix)
|
||||
:"memory");
|
||||
pix += line_size;
|
||||
@ -491,7 +488,7 @@ static void avg_pixels_x2_mmx( UINT8 *block, const UINT8 *pixels, int line_si
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7\n\t"
|
||||
"movq %0, %%mm6\n\t"
|
||||
::"m"(mm_wone):"memory");
|
||||
::"m"(mm_wone));
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %1, %%mm1\n\t"
|
||||
@ -520,7 +517,7 @@ static void avg_pixels_x2_mmx( UINT8 *block, const UINT8 *pixels, int line_si
|
||||
"psrlw $1, %%mm2\n\t"
|
||||
"packuswb %%mm2, %%mm0\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix)
|
||||
:"memory");
|
||||
pix += line_size;
|
||||
@ -537,7 +534,7 @@ static void avg_pixels_y2_mmx( UINT8 *block, const UINT8 *pixels, int line_si
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7\n\t"
|
||||
"movq %0, %%mm6\n\t"
|
||||
::"m"(mm_wone):"memory");
|
||||
::"m"(mm_wone));
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %1, %%mm1\n\t"
|
||||
@ -566,7 +563,7 @@ static void avg_pixels_y2_mmx( UINT8 *block, const UINT8 *pixels, int line_si
|
||||
"psrlw $1, %%mm2\n\t"
|
||||
"packuswb %%mm2, %%mm0\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix), "m"(*(pix+line_size))
|
||||
:"memory");
|
||||
pix += line_size;
|
||||
@ -583,7 +580,7 @@ static void avg_pixels_xy2_mmx( UINT8 *block, const UINT8 *pixels, int line_s
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7\n\t"
|
||||
"movq %0, %%mm6\n\t"
|
||||
::"m"(mm_wtwo):"memory");
|
||||
::"m"(mm_wtwo));
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %1, %%mm0\n\t"
|
||||
@ -625,7 +622,7 @@ static void avg_pixels_xy2_mmx( UINT8 *block, const UINT8 *pixels, int line_s
|
||||
"psrlw $1, %%mm2\n\t"
|
||||
"packuswb %%mm2, %%mm0\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix),
|
||||
"m"(*(pix+line_size)), "m"(mm_wone)
|
||||
:"memory");
|
||||
@ -640,7 +637,7 @@ static void avg_no_rnd_pixels_mmx( UINT8 *block, const UINT8 *pixels, int line_
|
||||
const UINT8 *pix;
|
||||
p = block;
|
||||
pix = pixels;
|
||||
__asm __volatile("pxor %%mm7, %%mm7\n\t":::"memory");
|
||||
__asm __volatile("pxor %%mm7, %%mm7\n\t":);
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %1, %%mm0\n\t"
|
||||
@ -657,7 +654,7 @@ static void avg_no_rnd_pixels_mmx( UINT8 *block, const UINT8 *pixels, int line_
|
||||
"psrlw $1, %%mm2\n\t"
|
||||
"packuswb %%mm2, %%mm0\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix)
|
||||
:"memory");
|
||||
pix += line_size;
|
||||
@ -672,7 +669,7 @@ static void avg_no_rnd_pixels_x2_mmx( UINT8 *block, const UINT8 *pixels, int
|
||||
p = block;
|
||||
pix = pixels;
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7\n\t":::"memory");
|
||||
"pxor %%mm7, %%mm7\n\t":);
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %1, %%mm0\n\t"
|
||||
@ -697,7 +694,7 @@ static void avg_no_rnd_pixels_x2_mmx( UINT8 *block, const UINT8 *pixels, int
|
||||
"psrlw $1, %%mm2\n\t"
|
||||
"packuswb %%mm2, %%mm0\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix)
|
||||
:"memory");
|
||||
pix += line_size;
|
||||
@ -712,7 +709,7 @@ static void avg_no_rnd_pixels_y2_mmx( UINT8 *block, const UINT8 *pixels, int
|
||||
p = block;
|
||||
pix = pixels;
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7\n\t":::"memory");
|
||||
"pxor %%mm7, %%mm7\n\t":);
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %1, %%mm0\n\t"
|
||||
@ -737,7 +734,7 @@ static void avg_no_rnd_pixels_y2_mmx( UINT8 *block, const UINT8 *pixels, int
|
||||
"psrlw $1, %%mm2\n\t"
|
||||
"packuswb %%mm2, %%mm0\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix), "m"(*(pix+line_size))
|
||||
:"memory");
|
||||
pix += line_size;
|
||||
@ -754,7 +751,7 @@ static void avg_no_rnd_pixels_xy2_mmx( UINT8 *block, const UINT8 *pixels, int
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7\n\t"
|
||||
"movq %0, %%mm6\n\t"
|
||||
::"m"(mm_wone):"memory");
|
||||
::"m"(mm_wone));
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %1, %%mm0\n\t"
|
||||
@ -793,7 +790,7 @@ static void avg_no_rnd_pixels_xy2_mmx( UINT8 *block, const UINT8 *pixels, int
|
||||
"psrlw $1, %%mm2\n\t"
|
||||
"packuswb %%mm2, %%mm0\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix),
|
||||
"m"(*(pix+line_size))
|
||||
:"memory");
|
||||
@ -808,7 +805,7 @@ static void sub_pixels_mmx( DCTELEM *block, const UINT8 *pixels, int line_size,
|
||||
const UINT8 *pix;
|
||||
p = block;
|
||||
pix = pixels;
|
||||
__asm __volatile("pxor %%mm7, %%mm7":::"memory");
|
||||
__asm __volatile("pxor %%mm7, %%mm7":);
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %0, %%mm0\n\t"
|
||||
@ -821,7 +818,7 @@ static void sub_pixels_mmx( DCTELEM *block, const UINT8 *pixels, int line_size,
|
||||
"psubsw %%mm3, %%mm1\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
"movq %%mm1, 8%0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix)
|
||||
:"memory");
|
||||
pix += line_size;
|
||||
@ -838,7 +835,7 @@ static void sub_pixels_x2_mmx( DCTELEM *block, const UINT8 *pixels, int line_si
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7\n\t"
|
||||
"movq %0, %%mm6"
|
||||
::"m"(mm_wone):"memory");
|
||||
::"m"(mm_wone));
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %0, %%mm0\n\t"
|
||||
@ -861,7 +858,7 @@ static void sub_pixels_x2_mmx( DCTELEM *block, const UINT8 *pixels, int line_si
|
||||
"psubsw %%mm3, %%mm1\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
"movq %%mm1, 8%0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix)
|
||||
:"memory");
|
||||
pix += line_size;
|
||||
@ -878,7 +875,7 @@ static void sub_pixels_y2_mmx( DCTELEM *block, const UINT8 *pixels, int line_si
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7\n\t"
|
||||
"movq %0, %%mm6"
|
||||
::"m"(mm_wone):"memory");
|
||||
::"m"(mm_wone));
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %0, %%mm0\n\t"
|
||||
@ -901,7 +898,7 @@ static void sub_pixels_y2_mmx( DCTELEM *block, const UINT8 *pixels, int line_si
|
||||
"psubsw %%mm3, %%mm1\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
"movq %%mm1, 8%0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix), "m"(*(pix+line_size))
|
||||
:"memory");
|
||||
pix += line_size;
|
||||
@ -918,7 +915,7 @@ static void sub_pixels_xy2_mmx( DCTELEM *block, const UINT8 *pixels, int line
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7\n\t"
|
||||
"movq %0, %%mm6\n\t"
|
||||
::"m"(mm_wtwo):"memory");
|
||||
::"m"(mm_wtwo));
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %1, %%mm0\n\t"
|
||||
@ -953,7 +950,7 @@ static void sub_pixels_xy2_mmx( DCTELEM *block, const UINT8 *pixels, int line
|
||||
"psubsw %%mm2, %%mm3\n\t"
|
||||
"movq %%mm1, %0\n\t"
|
||||
"movq %%mm3, 8%0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix),
|
||||
"m"(*(pix+line_size))
|
||||
:"memory");
|
||||
|
@ -30,24 +30,23 @@ static void DEF(put_pixels_x2)(UINT8 *block, const UINT8 *pixels, int line_size,
|
||||
dh=h&3;
|
||||
while(hh--) {
|
||||
__asm __volatile(
|
||||
"movq %4, %%mm0\n\t"
|
||||
"movq 1%4, %%mm1\n\t"
|
||||
"movq %5, %%mm2\n\t"
|
||||
"movq 1%5, %%mm3\n\t"
|
||||
"movq %6, %%mm4\n\t"
|
||||
"movq 1%6, %%mm5\n\t"
|
||||
"movq %7, %%mm6\n\t"
|
||||
"movq 1%7, %%mm7\n\t"
|
||||
"movq (%1), %%mm0\n\t"
|
||||
"movq 1(%1), %%mm1\n\t"
|
||||
"movq (%1, %2), %%mm2\n\t"
|
||||
"movq 1(%1, %2), %%mm3\n\t"
|
||||
"movq (%1, %2, 2), %%mm4\n\t"
|
||||
"movq 1(%1, %2, 2), %%mm5\n\t"
|
||||
"movq (%1, %3), %%mm6\n\t"
|
||||
"movq 1(%1, %3), %%mm7\n\t"
|
||||
PAVGB" %%mm1, %%mm0\n\t"
|
||||
PAVGB" %%mm3, %%mm2\n\t"
|
||||
PAVGB" %%mm5, %%mm4\n\t"
|
||||
PAVGB" %%mm7, %%mm6\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
"movq %%mm2, %1\n\t"
|
||||
"movq %%mm4, %2\n\t"
|
||||
"movq %%mm6, %3\n\t"
|
||||
:"=m"(*p), "=m"(*(p+line_size)), "=m"(*(p+line_size*2)), "=m"(*(p+line_size*3))
|
||||
:"m"(*pix), "m"(*(pix+line_size)), "m"(*(pix+line_size*2)), "m"(*(pix+line_size*3))
|
||||
"movq %%mm0, (%0)\n\t"
|
||||
"movq %%mm2, (%0, %2)\n\t"
|
||||
"movq %%mm4, (%0, %2, 2)\n\t"
|
||||
"movq %%mm6, (%0, %3)\n\t"
|
||||
::"r"(p), "r"(pix), "r" (line_size), "r" (line_size*3)
|
||||
:"memory");
|
||||
pix += line_size*4; p += line_size*4;
|
||||
}
|
||||
@ -114,24 +113,23 @@ static void DEF(avg_pixels)(UINT8 *block, const UINT8 *pixels, int line_size, in
|
||||
dh=h&3;
|
||||
while(hh--) {
|
||||
__asm __volatile(
|
||||
"movq %0, %%mm0\n\t"
|
||||
"movq %4, %%mm1\n\t"
|
||||
"movq %1, %%mm2\n\t"
|
||||
"movq %5, %%mm3\n\t"
|
||||
"movq %2, %%mm4\n\t"
|
||||
"movq %6, %%mm5\n\t"
|
||||
"movq %3, %%mm6\n\t"
|
||||
"movq %7, %%mm7\n\t"
|
||||
"movq (%0), %%mm0\n\t"
|
||||
"movq (%1), %%mm1\n\t"
|
||||
"movq (%0, %2), %%mm2\n\t"
|
||||
"movq (%1, %2), %%mm3\n\t"
|
||||
"movq (%0, %2, 2), %%mm4\n\t"
|
||||
"movq (%1, %2, 2), %%mm5\n\t"
|
||||
"movq (%0, %3), %%mm6\n\t"
|
||||
"movq (%1, %3), %%mm7\n\t"
|
||||
PAVGB" %%mm1, %%mm0\n\t"
|
||||
PAVGB" %%mm3, %%mm2\n\t"
|
||||
PAVGB" %%mm5, %%mm4\n\t"
|
||||
PAVGB" %%mm7, %%mm6\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
"movq %%mm2, %1\n\t"
|
||||
"movq %%mm4, %2\n\t"
|
||||
"movq %%mm6, %3\n\t"
|
||||
:"=m"(*p), "=m"(*(p+line_size)), "=m"(*(p+line_size*2)), "=m"(*(p+line_size*3))
|
||||
:"m"(*pix), "m"(*(pix+line_size)), "m"(*(pix+line_size*2)), "m"(*(pix+line_size*3))
|
||||
"movq %%mm0, (%0)\n\t"
|
||||
"movq %%mm2, (%0, %2)\n\t"
|
||||
"movq %%mm4, (%0, %2, 2)\n\t"
|
||||
"movq %%mm6, (%0, %3)\n\t"
|
||||
::"r"(p), "r"(pix), "r" (line_size), "r" (line_size*3)
|
||||
:"memory");
|
||||
pix += line_size*4; p += line_size*4;
|
||||
}
|
||||
@ -141,7 +139,7 @@ static void DEF(avg_pixels)(UINT8 *block, const UINT8 *pixels, int line_size, in
|
||||
"movq %1, %%mm1\n\t"
|
||||
PAVGB" %%mm1, %%mm0\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix)
|
||||
:"memory");
|
||||
pix += line_size; p += line_size;
|
||||
@ -171,7 +169,7 @@ static void DEF(avg_pixels_x2)( UINT8 *block, const UINT8 *pixels, int line_siz
|
||||
PAVGB" %%mm4, %%mm1\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
"movq %%mm1, %1\n\t"
|
||||
:"=m"(*p), "=m"(*(p+line_size))
|
||||
:"+m"(*p), "+m"(*(p+line_size))
|
||||
:"m"(*pix), "m"(*(pix+line_size))
|
||||
:"memory");
|
||||
pix += line_size*2;
|
||||
@ -185,7 +183,7 @@ static void DEF(avg_pixels_x2)( UINT8 *block, const UINT8 *pixels, int line_siz
|
||||
PAVGB" %%mm2, %%mm1\n\t"
|
||||
PAVGB" %%mm1, %%mm0\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix)
|
||||
:"memory");
|
||||
}
|
||||
@ -214,7 +212,7 @@ static void DEF(avg_pixels_y2)( UINT8 *block, const UINT8 *pixels, int line_si
|
||||
PAVGB" %%mm4, %%mm1\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
"movq %%mm1, %1\n\t"
|
||||
:"=m"(*p), "=m"(*(p+line_size))
|
||||
:"+m"(*p), "+m"(*(p+line_size))
|
||||
:"m"(*pix), "m"(*(pix+line_size)), "m"(*(pix+line_size*2))
|
||||
:"memory");
|
||||
pix += line_size*2;
|
||||
@ -228,7 +226,7 @@ static void DEF(avg_pixels_y2)( UINT8 *block, const UINT8 *pixels, int line_si
|
||||
PAVGB" %%mm2, %%mm1\n\t"
|
||||
PAVGB" %%mm1, %%mm0\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix), "m"(*(pix+line_size))
|
||||
:"memory");
|
||||
}
|
||||
@ -243,7 +241,7 @@ static void DEF(avg_pixels_xy2)( UINT8 *block, const UINT8 *pixels, int line_si
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7\n\t"
|
||||
"movq %0, %%mm6\n\t"
|
||||
::"m"(mm_wtwo):"memory");
|
||||
::"m"(mm_wtwo));
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %1, %%mm0\n\t"
|
||||
@ -275,7 +273,7 @@ static void DEF(avg_pixels_xy2)( UINT8 *block, const UINT8 *pixels, int line_si
|
||||
"packuswb %%mm2, %%mm0\n\t"
|
||||
PAVGB" %0, %%mm0\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix),
|
||||
"m"(*(pix+line_size))
|
||||
:"memory");
|
||||
@ -291,7 +289,7 @@ static void DEF(sub_pixels_x2)( DCTELEM *block, const UINT8 *pixels, int line_s
|
||||
p = block;
|
||||
pix = pixels;
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7":::"memory");
|
||||
"pxor %%mm7, %%mm7":);
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq 1%1, %%mm2\n\t"
|
||||
@ -305,7 +303,7 @@ static void DEF(sub_pixels_x2)( DCTELEM *block, const UINT8 *pixels, int line_s
|
||||
"psubsw %%mm3, %%mm1\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
"movq %%mm1, 8%0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix)
|
||||
:"memory");
|
||||
pix += line_size;
|
||||
@ -320,7 +318,7 @@ static void DEF(sub_pixels_y2)( DCTELEM *block, const UINT8 *pixels, int line_s
|
||||
p = block;
|
||||
pix = pixels;
|
||||
__asm __volatile(
|
||||
"pxor %%mm7, %%mm7":::"memory");
|
||||
"pxor %%mm7, %%mm7":);
|
||||
do {
|
||||
__asm __volatile(
|
||||
"movq %2, %%mm2\n\t"
|
||||
@ -334,7 +332,7 @@ static void DEF(sub_pixels_y2)( DCTELEM *block, const UINT8 *pixels, int line_s
|
||||
"psubsw %%mm3, %%mm1\n\t"
|
||||
"movq %%mm0, %0\n\t"
|
||||
"movq %%mm1, 8%0\n\t"
|
||||
:"=m"(*p)
|
||||
:"+m"(*p)
|
||||
:"m"(*pix), "m"(*(pix+line_size))
|
||||
:"memory");
|
||||
pix += line_size;
|
||||
|
@ -232,7 +232,7 @@ typedef struct RLTable {
|
||||
void init_rl(RLTable *rl);
|
||||
void init_vlc_rl(RLTable *rl);
|
||||
|
||||
extern inline int get_rl_index(const RLTable *rl, int last, int run, int level)
|
||||
static inline int get_rl_index(const RLTable *rl, int last, int run, int level)
|
||||
{
|
||||
int index;
|
||||
index = rl->index_run[last][run];
|
||||
|
Loading…
Reference in New Issue
Block a user