removed use of MMX registers

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33205 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
David McPaul 2009-09-20 11:15:13 +00:00
parent 2bd3d086c9
commit c3d1699fcd
1 changed files with 5 additions and 9 deletions

View File

@ -101,9 +101,9 @@
packuswb xmm4,xmm7 ; clamp to 0,255 and pack G to 8 bit per pixel
packuswb xmm5,xmm7 ; clamp to 0,255 and pack B to 8 bit per pixel
; convert to bgra32 packed
punpcklbw xmm3,xmm7 ; r0r0r0r0r0r0r0r0
punpcklbw xmm5,xmm4 ; bgbgbgbgbgbgbgbg
movdqa xmm0, xmm5 ; save gb values
movdqa xmm0, xmm5 ; save bg values
punpcklbw xmm3,xmm7 ; r0r0r0r0r0r0r0r0
punpcklwd xmm5,xmm3 ; lower half bgr0bgr0bgr0bgr0
punpckhwd xmm0,xmm3 ; upper half bgr0bgr0bgr0bgr0
; write to output ptr
@ -226,13 +226,10 @@ cglobal Convert_YUV420P_RGBA32_SSE2
REPEATLOOP1: ; loop over width / 8
; push ecx ; preserve loop counter
; YUV420 Planar inputer
movq mm0, [esi] ; fetch 8 y values (8 bit) (direct unaligned sse2 loads might be better)
movd mm1, [eax] ; fetch 4 u values
movd mm2, [ebx] ; fetch 4 v values
movq xmm0, [esi] ; fetch 8 y values (8 bit) yyyyyyyy00000000
movd xmm1, [eax] ; fetch 4 u values (8 bit) uuuu000000000000
movd xmm2, [ebx] ; fetch 4 v values (8 bit) vvvv000000000000
movq2dq xmm0, mm0 ; copy y to sse register yyyyyyyy00000000
movq2dq xmm1, mm1 ; copy u to sse register uuuu000000000000
movq2dq xmm2, mm2 ; copy v to sse register vvvv000000000000
; extract y
pxor xmm7,xmm7 ; 00000000000000000000000000000000
punpcklbw xmm0,xmm7 ; interleave xmm7 into xmm0 y0y0y0y0y0y0y0y0
@ -261,7 +258,6 @@ rgba32output
jnz REPEATLOOP1
ENDLOOP1:
; Cleanup
emms
pop ebx
pop eax
pop ecx