|
|
@ -61,16 +61,16 @@ static void get_pixels_mmx(DCTELEM *block, const uint8_t *pixels, int line_size) |
|
|
|
static void get_pixels_sse2(DCTELEM *block, const uint8_t *pixels, int line_size) |
|
|
|
static void get_pixels_sse2(DCTELEM *block, const uint8_t *pixels, int line_size) |
|
|
|
{ |
|
|
|
{ |
|
|
|
__asm__ volatile( |
|
|
|
__asm__ volatile( |
|
|
|
"pxor %%xmm7, %%xmm7 \n\t" |
|
|
|
"pxor %%xmm4, %%xmm4 \n\t" |
|
|
|
"movq (%0), %%xmm0 \n\t" |
|
|
|
"movq (%0), %%xmm0 \n\t" |
|
|
|
"movq (%0, %2), %%xmm1 \n\t" |
|
|
|
"movq (%0, %2), %%xmm1 \n\t" |
|
|
|
"movq (%0, %2,2), %%xmm2 \n\t" |
|
|
|
"movq (%0, %2,2), %%xmm2 \n\t" |
|
|
|
"movq (%0, %3), %%xmm3 \n\t" |
|
|
|
"movq (%0, %3), %%xmm3 \n\t" |
|
|
|
"lea (%0,%2,4), %0 \n\t" |
|
|
|
"lea (%0,%2,4), %0 \n\t" |
|
|
|
"punpcklbw %%xmm7, %%xmm0 \n\t" |
|
|
|
"punpcklbw %%xmm4, %%xmm0 \n\t" |
|
|
|
"punpcklbw %%xmm7, %%xmm1 \n\t" |
|
|
|
"punpcklbw %%xmm4, %%xmm1 \n\t" |
|
|
|
"punpcklbw %%xmm7, %%xmm2 \n\t" |
|
|
|
"punpcklbw %%xmm4, %%xmm2 \n\t" |
|
|
|
"punpcklbw %%xmm7, %%xmm3 \n\t" |
|
|
|
"punpcklbw %%xmm4, %%xmm3 \n\t" |
|
|
|
"movdqa %%xmm0, (%1) \n\t" |
|
|
|
"movdqa %%xmm0, (%1) \n\t" |
|
|
|
"movdqa %%xmm1, 16(%1) \n\t" |
|
|
|
"movdqa %%xmm1, 16(%1) \n\t" |
|
|
|
"movdqa %%xmm2, 32(%1) \n\t" |
|
|
|
"movdqa %%xmm2, 32(%1) \n\t" |
|
|
@ -79,10 +79,10 @@ static void get_pixels_sse2(DCTELEM *block, const uint8_t *pixels, int line_size |
|
|
|
"movq (%0, %2), %%xmm1 \n\t" |
|
|
|
"movq (%0, %2), %%xmm1 \n\t" |
|
|
|
"movq (%0, %2,2), %%xmm2 \n\t" |
|
|
|
"movq (%0, %2,2), %%xmm2 \n\t" |
|
|
|
"movq (%0, %3), %%xmm3 \n\t" |
|
|
|
"movq (%0, %3), %%xmm3 \n\t" |
|
|
|
"punpcklbw %%xmm7, %%xmm0 \n\t" |
|
|
|
"punpcklbw %%xmm4, %%xmm0 \n\t" |
|
|
|
"punpcklbw %%xmm7, %%xmm1 \n\t" |
|
|
|
"punpcklbw %%xmm4, %%xmm1 \n\t" |
|
|
|
"punpcklbw %%xmm7, %%xmm2 \n\t" |
|
|
|
"punpcklbw %%xmm4, %%xmm2 \n\t" |
|
|
|
"punpcklbw %%xmm7, %%xmm3 \n\t" |
|
|
|
"punpcklbw %%xmm4, %%xmm3 \n\t" |
|
|
|
"movdqa %%xmm0, 64(%1) \n\t" |
|
|
|
"movdqa %%xmm0, 64(%1) \n\t" |
|
|
|
"movdqa %%xmm1, 80(%1) \n\t" |
|
|
|
"movdqa %%xmm1, 80(%1) \n\t" |
|
|
|
"movdqa %%xmm2, 96(%1) \n\t" |
|
|
|
"movdqa %%xmm2, 96(%1) \n\t" |
|
|
|