]> granicus.if.org Git - libvpx/commitdiff
Replace pinsrw (SSE) with MMX instructions
authorPhilip Jägenstedt <philipj@opera.com>
Tue, 13 Jul 2010 09:43:51 +0000 (11:43 +0200)
committerJohn Koleszar <jkoleszar@google.com>
Mon, 2 Aug 2010 13:15:45 +0000 (09:15 -0400)
Fixes http://code.google.com/p/webm/issues/detail?id=136

Change-Id: I5a3e294061644a1a9718e8ba4a39548ede25cc42

vp8/decoder/x86/dequantize_mmx.asm

index 7ad9289cc27372d9a1089046a5bd504ce76f1a35..f11eef35a71dbeadad759ae11c842dc1d2834568 100644 (file)
@@ -261,8 +261,6 @@ sym(vp8_dequant_dc_idct_add_mmx):
         mov         rax,    arg(0) ;input
         mov         rdx,    arg(1) ;dq
 
-        movsxd      rcx,    dword ptr arg(6) ;Dc
-
         movq        mm0,    [rax   ]
         pmullw      mm0,    [rdx]
 
@@ -286,8 +284,13 @@ sym(vp8_dequant_dc_idct_add_mmx):
         movq        [rax+16],mm7
         movq        [rax+24],mm7
 
+        ; move lower word of Dc to lower word of mm0
+        psrlq       mm0,    16
+        movzx       rcx,    word ptr arg(6) ;Dc
+        psllq       mm0,    16
+        movd        mm7,    rcx
+        por         mm0,    mm7
 
-        pinsrw      mm0,    rcx,  0
         movsxd      rax,            dword ptr arg(4) ;pitch
         movsxd      rdi,            dword ptr arg(5) ;stride