x86: h264_intrapred: Don't treat 32-bit integers as 64-bit
authorHenrik Gramner <henrik@gramner.com>
Wed, 1 Oct 2014 17:03:29 +0000 (19:03 +0200)
committerAnton Khirnov <anton@khirnov.net>
Wed, 8 Oct 2014 08:15:52 +0000 (08:15 +0000)
The upper halves are not guaranteed to be zero in x86-64.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
libavcodec/x86/h264_intrapred.asm

index 4a4fa10..df657a4 100644 (file)
@@ -1027,9 +1027,9 @@ cglobal pred8x8l_top_dc_8, 4,4
     movq        mm4, mm3
     PALIGNR     mm2, mm0, 7, mm0
     PALIGNR     mm1, mm4, 1, mm4
-    test         r1, r1 ; top_left
+    test        r1d, r1d ; top_left
     jz .fix_lt_2
-    test         r2, r2 ; top_right
+    test        r2d, r2d ; top_right
     jz .fix_tr_1
     jmp .body
 .fix_lt_2:
@@ -1038,7 +1038,7 @@ cglobal pred8x8l_top_dc_8, 4,4
     psllq       mm5, 56
     psrlq       mm5, 56
     pxor        mm2, mm5
-    test         r2, r2 ; top_right
+    test        r2d, r2d ; top_right
     jnz .body
 .fix_tr_1:
     movq        mm5, mm3
@@ -1099,7 +1099,7 @@ cglobal pred8x8l_dc_8, 4,5
     movq        mm2, mm3
     PALIGNR     mm4, mm0, 7, mm0
     PALIGNR     mm1, mm2, 1, mm2
-    test        r1, r1
+    test        r1d, r1d
     jnz .do_left
 .fix_lt_1:
     movq        mm5, mm3
@@ -1114,7 +1114,7 @@ cglobal pred8x8l_dc_8, 4,5
     psllq       mm5, 56
     psrlq       mm5, 56
     pxor        mm2, mm5
-    test         r2, r2
+    test        r2d, r2d
     jnz .body
 .fix_tr_1:
     movq        mm5, mm3
@@ -1138,9 +1138,9 @@ cglobal pred8x8l_dc_8, 4,5
     movq        mm4, mm3
     PALIGNR     mm2, mm0, 7, mm0
     PALIGNR     mm1, mm4, 1, mm4
-    test         r1, r1
+    test        r1d, r1d
     jz .fix_lt_2
-    test         r2, r2
+    test        r2d, r2d
     jz .fix_tr_1
 .body:
     lea          r1, [r0+r3*2]
@@ -1182,7 +1182,7 @@ cglobal pred8x8l_horizontal_8, 4,4
     sub          r0, r3
     lea          r2, [r0+r3*2]
     movq        mm0, [r0+r3*1-8]
-    test         r1, r1
+    test        r1d, r1d
     lea          r1, [r0+r3]
     cmovnz       r1, r0
     punpckhbw   mm0, [r1+r3*0-8]
@@ -1259,9 +1259,9 @@ cglobal pred8x8l_vertical_8, 4,4
     movq        mm4, mm3
     PALIGNR     mm2, mm0, 7, mm0
     PALIGNR     mm1, mm4, 1, mm4
-    test         r1, r1 ; top_left
+    test        r1d, r1d ; top_left
     jz .fix_lt_2
-    test         r2, r2 ; top_right
+    test        r2d, r2d ; top_right
     jz .fix_tr_1
     jmp .body
 .fix_lt_2:
@@ -1270,7 +1270,7 @@ cglobal pred8x8l_vertical_8, 4,4
     psllq       mm5, 56
     psrlq       mm5, 56
     pxor        mm2, mm5
-    test         r2, r2 ; top_right
+    test        r2d, r2d ; top_right
     jnz .body
 .fix_tr_1:
     movq        mm5, mm3
@@ -1310,9 +1310,9 @@ cglobal pred8x8l_down_left_8, 4,5
     movq        mm4, mm3
     PALIGNR     mm2, mm0, 7, mm0
     PALIGNR     mm1, mm4, 1, mm4
-    test         r1, r1
+    test        r1d, r1d
     jz .fix_lt_2
-    test         r2, r2
+    test        r2d, r2d
     jz .fix_tr_1
     jmp .do_top
 .fix_lt_2:
@@ -1321,7 +1321,7 @@ cglobal pred8x8l_down_left_8, 4,5
     psllq       mm5, 56
     psrlq       mm5, 56
     pxor        mm2, mm5
-    test         r2, r2
+    test        r2d, r2d
     jnz .do_top
 .fix_tr_1:
     movq        mm5, mm3
@@ -1337,7 +1337,7 @@ cglobal pred8x8l_down_left_8, 4,5
 .do_top:
     PRED4x4_LOWPASS mm4, mm2, mm1, mm3, mm5
     movq        mm7, mm4
-    test         r2, r2
+    test        r2d, r2d
     jz .fix_tr_2
     movq        mm0, [r0+8]
     movq        mm5, mm0
@@ -1418,9 +1418,9 @@ cglobal pred8x8l_down_left_8, 4,4
     movq        mm4, mm3
     PALIGNR     mm2, mm0, 7, mm0
     PALIGNR     mm1, mm4, 1, mm4
-    test         r1, r1 ; top_left
+    test        r1d, r1d ; top_left
     jz .fix_lt_2
-    test         r2, r2 ; top_right
+    test        r2d, r2d ; top_right
     jz .fix_tr_1
     jmp .do_top
 .fix_lt_2:
@@ -1429,7 +1429,7 @@ cglobal pred8x8l_down_left_8, 4,4
     psllq       mm5, 56
     psrlq       mm5, 56
     pxor        mm2, mm5
-    test         r2, r2 ; top_right
+    test        r2d, r2d ; top_right
     jnz .do_top
 .fix_tr_1:
     movq        mm5, mm3
@@ -1445,7 +1445,7 @@ cglobal pred8x8l_down_left_8, 4,4
 .do_top:
     PRED4x4_LOWPASS mm4, mm2, mm1, mm3, mm5
     movq2dq    xmm3, mm4
-    test         r2, r2 ; top_right
+    test        r2d, r2d ; top_right
     jz .fix_tr_2
     movq        mm0, [r0+8]
     movq        mm5, mm0
@@ -1527,7 +1527,7 @@ cglobal pred8x8l_down_right_8, 4,5
     movq        mm2, mm3
     PALIGNR     mm4, mm0, 7, mm0
     PALIGNR     mm1, mm2, 1, mm2
-    test        r1, r1 ; top_left
+    test        r1d, r1d ; top_left
     jz .fix_lt_1
 .do_left:
     movq        mm0, mm4
@@ -1545,9 +1545,9 @@ cglobal pred8x8l_down_right_8, 4,5
     movq        mm4, mm3
     PALIGNR     mm2, mm0, 7, mm0
     PALIGNR     mm1, mm4, 1, mm4
-    test         r1, r1 ; top_left
+    test        r1d, r1d ; top_left
     jz .fix_lt_2
-    test         r2, r2 ; top_right
+    test        r2d, r2d ; top_right
     jz .fix_tr_1
 .do_top:
     PRED4x4_LOWPASS mm4, mm2, mm1, mm3, mm5
@@ -1566,7 +1566,7 @@ cglobal pred8x8l_down_right_8, 4,5
     psllq       mm5, 56
     psrlq       mm5, 56
     pxor        mm2, mm5
-    test         r2, r2 ; top_right
+    test        r2d, r2d ; top_right
     jnz .do_top
 .fix_tr_1:
     movq        mm5, mm3
@@ -1659,7 +1659,7 @@ cglobal pred8x8l_down_right_8, 4,5
     movq        mm2, mm3
     PALIGNR     mm4, mm0, 7, mm0
     PALIGNR     mm1, mm2, 1, mm2
-    test        r1, r1
+    test        r1d, r1d
     jz .fix_lt_1
     jmp .do_left
 .fix_lt_1:
@@ -1675,7 +1675,7 @@ cglobal pred8x8l_down_right_8, 4,5
     psllq       mm5, 56
     psrlq       mm5, 56
     pxor        mm2, mm5
-    test         r2, r2
+    test        r2d, r2d
     jnz .do_top
 .fix_tr_1:
     movq        mm5, mm3
@@ -1701,9 +1701,9 @@ cglobal pred8x8l_down_right_8, 4,5
     movq        mm4, mm3
     PALIGNR     mm2, mm0, 7, mm0
     PALIGNR     mm1, mm4, 1, mm4
-    test         r1, r1
+    test        r1d, r1d
     jz .fix_lt_2
-    test         r2, r2
+    test        r2d, r2d
     jz .fix_tr_1
 .do_top:
     PRED4x4_LOWPASS mm4, mm2, mm1, mm3, mm5
@@ -1779,7 +1779,7 @@ cglobal pred8x8l_vertical_right_8, 4,5
     movq        mm2, mm3
     PALIGNR     mm4, mm0, 7, mm0
     PALIGNR     mm1, mm2, 1, mm2
-    test        r1, r1
+    test        r1d, r1d
     jz .fix_lt_1
     jmp .do_left
 .fix_lt_1:
@@ -1795,7 +1795,7 @@ cglobal pred8x8l_vertical_right_8, 4,5
     psllq       mm5, 56
     psrlq       mm5, 56
     pxor        mm2, mm5
-    test         r2, r2
+    test        r2d, r2d
     jnz .do_top
 .fix_tr_1:
     movq        mm5, mm3
@@ -1815,9 +1815,9 @@ cglobal pred8x8l_vertical_right_8, 4,5
     movq        mm4, mm3
     PALIGNR     mm2, mm0, 7, mm0
     PALIGNR     mm1, mm4, 1, mm4
-    test         r1, r1
+    test        r1d, r1d
     jz .fix_lt_2
-    test         r2, r2
+    test        r2d, r2d
     jz .fix_tr_1
 .do_top:
     PRED4x4_LOWPASS mm6, mm2, mm1, mm3, mm5
@@ -1889,7 +1889,7 @@ cglobal pred8x8l_vertical_right_8, 4,5,7
     movq        mm2, mm3
     PALIGNR     mm4, mm0, 7, mm0
     PALIGNR     mm1, mm2, 1, mm2
-    test        r1, r1
+    test        r1d, r1d
     jnz .do_left
 .fix_lt_1:
     movq        mm5, mm3
@@ -1904,7 +1904,7 @@ cglobal pred8x8l_vertical_right_8, 4,5,7
     psllq       mm5, 56
     psrlq       mm5, 56
     pxor        mm2, mm5
-    test         r2, r2
+    test        r2d, r2d
     jnz .do_top
 .fix_tr_1:
     movq        mm5, mm3
@@ -1924,9 +1924,9 @@ cglobal pred8x8l_vertical_right_8, 4,5,7
     movq        mm4, mm3
     PALIGNR     mm2, mm0, 7, mm0
     PALIGNR     mm1, mm4, 1, mm4
-    test         r1, r1
+    test        r1d, r1d
     jz .fix_lt_2
-    test         r2, r2
+    test        r2d, r2d
     jz .fix_tr_1
 .do_top:
     PRED4x4_LOWPASS mm6, mm2, mm1, mm3, mm5
@@ -1991,9 +1991,9 @@ cglobal pred8x8l_vertical_left_8, 4,4
     movq        mm4, mm3
     PALIGNR     mm2, mm0, 7, mm0
     PALIGNR     mm1, mm4, 1, mm4
-    test         r1, r1
+    test        r1d, r1d
     jz .fix_lt_2
-    test         r2, r2
+    test        r2d, r2d
     jz .fix_tr_1
     jmp .do_top
 .fix_lt_2:
@@ -2002,7 +2002,7 @@ cglobal pred8x8l_vertical_left_8, 4,4
     psllq       mm5, 56
     psrlq       mm5, 56
     pxor        mm2, mm5
-    test         r2, r2
+    test        r2d, r2d
     jnz .do_top
 .fix_tr_1:
     movq        mm5, mm3
@@ -2018,7 +2018,7 @@ cglobal pred8x8l_vertical_left_8, 4,4
 .do_top:
     PRED4x4_LOWPASS mm4, mm2, mm1, mm3, mm5
     movq2dq    xmm4, mm4
-    test         r2, r2
+    test        r2d, r2d
     jz .fix_tr_2
     movq        mm0, [r0+8]
     movq        mm5, mm0
@@ -2076,7 +2076,7 @@ cglobal pred8x8l_horizontal_up_8, 4,4
     sub          r0, r3
     lea          r2, [r0+r3*2]
     movq        mm0, [r0+r3*1-8]
-    test         r1, r1
+    test        r1d, r1d
     lea          r1, [r0+r3]
     cmovnz       r1, r0
     punpckhbw   mm0, [r1+r3*0-8]
@@ -2185,7 +2185,7 @@ cglobal pred8x8l_horizontal_down_8, 4,5
     movq        mm2, mm3
     PALIGNR     mm4, mm0, 7, mm0
     PALIGNR     mm1, mm2, 1, mm2
-    test        r1, r1
+    test        r1d, r1d
     jnz .do_left
 .fix_lt_1:
     movq        mm5, mm3
@@ -2200,7 +2200,7 @@ cglobal pred8x8l_horizontal_down_8, 4,5
     psllq       mm5, 56
     psrlq       mm5, 56
     pxor        mm2, mm5
-    test         r2, r2
+    test        r2d, r2d
     jnz .do_top
 .fix_tr_1:
     movq        mm5, mm3
@@ -2225,9 +2225,9 @@ cglobal pred8x8l_horizontal_down_8, 4,5
     movq        mm4, mm3
     PALIGNR     mm2, mm0, 7, mm0
     PALIGNR     mm1, mm4, 1, mm4
-    test         r1, r1
+    test        r1d, r1d
     jz .fix_lt_2
-    test         r2, r2
+    test        r2d, r2d
     jz .fix_tr_1
 .do_top:
     PRED4x4_LOWPASS mm4, mm2, mm1, mm3, mm5
@@ -2300,7 +2300,7 @@ cglobal pred8x8l_horizontal_down_8, 4,5
     movq        mm2, mm3
     PALIGNR     mm4, mm0, 7, mm0
     PALIGNR     mm1, mm2, 1, mm2
-    test        r1, r1
+    test        r1d, r1d
     jnz .do_left
 .fix_lt_1:
     movq        mm5, mm3
@@ -2315,7 +2315,7 @@ cglobal pred8x8l_horizontal_down_8, 4,5
     psllq       mm5, 56
     psrlq       mm5, 56
     pxor        mm2, mm5
-    test         r2, r2
+    test        r2d, r2d
     jnz .do_top
 .fix_tr_1:
     movq        mm5, mm3
@@ -2346,14 +2346,14 @@ cglobal pred8x8l_horizontal_down_8, 4,5
     movq        mm4, mm3
     PALIGNR     mm2, mm0, 7, mm0
     PALIGNR     mm1, mm4, 1, mm4
-    test         r1, r1
+    test        r1d, r1d
     jz .fix_lt_2
-    test         r2, r2
+    test        r2d, r2d
     jz .fix_tr_1
 .do_top:
     PRED4x4_LOWPASS mm4, mm2, mm1, mm3, mm5
     movq2dq    xmm1, mm4
-    test         r2, r2
+    test        r2d, r2d
     jz .fix_tr_2
     movq        mm0, [r0+8]
     movq        mm5, mm0