Changeset 825

Show
Ignore:
Timestamp:
03/12/08 01:16:31 (9 months ago)
Author:
gbooker
Message:

The instrinsics spill, a bunch. This doesn't (except for a "cmpl %ebp, 56(%esp)" at the end)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ColorConversions.c

    r629 r825  
    189189                        unsigned x2 = x*2, x4 = x*4; 
    190190 
     191#if 0 
     192                        asm volatile( 
     193                                "movdqu         %4,             %%xmm4  \n\t" 
     194                                "movdqu         %5,             %%xmm5  \n\t" 
     195                                "movdqa         %2,             %%xmm0  \n\t" 
     196                                "movdqa 16+1*%2,        %%xmm2  \n\t" 
     197                                "movdqa         %3,             %%xmm1  \n\t" 
     198                                "movdqa 16+1*%3,        %%xmm3  \n\t" 
     199                                "movdqa         %%xmm4, %%xmm6  \n\t" 
     200                                "punpcklbw      %%xmm5, %%xmm4  \n\t" /*chroma_l*/ 
     201                                "punpckhbw      %%xmm5, %%xmm6  \n\t" /*chroma_h*/ 
     202                                "movdqa         %%xmm4, %%xmm5  \n\t" 
     203                                "punpcklbw      %%xmm0, %%xmm5  \n\t" 
     204                                "movntdq        %%xmm5, %0              \n\t" /*ov[x4]*/ 
     205                                "movdqa         %%xmm4, %%xmm5  \n\t" 
     206                                "punpckhbw      %%xmm0, %%xmm5  \n\t" 
     207                                "movntdq        %%xmm5, 16+1*%0 \n\t" /*ov[x4+1]*/ 
     208                                "movdqa         %%xmm6, %%xmm5  \n\t" 
     209                                "punpcklbw      %%xmm2, %%xmm5  \n\t" 
     210                                "movntdq        %%xmm5, 32+1*%0 \n\t" /*ov[x4+2]*/ 
     211                                "movdqa         %%xmm6, %%xmm5  \n\t" 
     212                                "punpckhbw      %%xmm2, %%xmm5  \n\t" 
     213                                "movntdq        %%xmm5, 48+1*%0 \n\t" /*ov[x4+3]*/ 
     214                                "movdqa         %%xmm4, %%xmm5  \n\t" 
     215                                "punpcklbw      %%xmm1, %%xmm5  \n\t" 
     216                                "movntdq        %%xmm5, %1              \n\t" /*ov2[x4]*/ 
     217                                "punpckhbw      %%xmm1, %%xmm4  \n\t" 
     218                                "movntdq        %%xmm4, 16+1*%1 \n\t" /*ov2[x4+1]*/ 
     219                                "movdqa         %%xmm6, %%xmm5  \n\t" 
     220                                "punpcklbw      %%xmm3, %%xmm5  \n\t" 
     221                                "movntdq        %%xmm5, 32+1*%1 \n\t" /*ov2[x4+2]*/ 
     222                                "punpckhbw      %%xmm3, %%xmm6  \n\t" 
     223                                "movntdq        %%xmm6, 48+1*%1 \n\t" /*ov2[x4+3]*/ 
     224                                : "=m" (ov[x4]), "=m" (ov2[x4]) 
     225                                : "m" (yv[x2]), "m" (yv2[x2]), "m" (uv[x]), "m" (vv[x]) 
     226                                ); 
     227#else 
    191228                        __m128i tmp_y = yv[x2], tmp_y3 = yv[x2+1], 
    192229                                        tmp_y2 = yv2[x2], tmp_y4 = yv2[x2+1], 
     
    204241                        _mm_stream_si128(&ov2[x4+2],_mm_unpacklo_epi8(chroma_h, tmp_y4)); 
    205242                        _mm_stream_si128(&ov2[x4+3],_mm_unpackhi_epi8(chroma_h, tmp_y4)); 
     243#endif 
    206244                } 
    207245