x86inc improvements for 64-bit
[ffmpeg.git] / libavcodec / x86 / h264_qpel_10bit.asm
index 15dd72ca3662f0d4a5744f15e23865f7942b2f93..788d715d614aa4a19be2d92c5e14398c08e12b42 100644 (file)
@@ -111,7 +111,7 @@ INIT_XMM
 %endmacro
 
 %macro MCAxA 8
-%ifdef ARCH_X86_64
+%if ARCH_X86_64
 %ifnidn %1,mmxext
 MCAxA_OP %1,%2,%3,%4,%5,%6,%7,%8
 %endif
@@ -121,8 +121,8 @@ MCAxA_OP %1,%2,%3,%4,%5,%6,%7,%8
 %endmacro
 
 %macro MCAxA_OP 8
+%if ARCH_X86_32
 cglobal %2_h264_qpel%5_%3_10_%1, %6,%7,%8
-%ifdef ARCH_X86_32
     call stub_%2_h264_qpel%4_%3_10_%1
     mov  r0, r0m
     mov  r1, r1m
@@ -141,18 +141,20 @@ cglobal %2_h264_qpel%5_%3_10_%1, %6,%7,%8
     call stub_%2_h264_qpel%4_%3_10_%1
     RET
 %else ; ARCH_X86_64
-    mov r10, r0
-    mov r11, r1
+cglobal %2_h264_qpel%5_%3_10_%1, %6,%7 + 2,%8
+    mov r%7, r0
+%assign p1 %7+1
+    mov r %+ p1, r1
     call stub_%2_h264_qpel%4_%3_10_%1
-    lea  r0, [r10+%4*2]
-    lea  r1, [r11+%4*2]
+    lea  r0, [r%7+%4*2]
+    lea  r1, [r %+ p1+%4*2]
     call stub_%2_h264_qpel%4_%3_10_%1
-    lea  r0, [r10+r2*%4]
-    lea  r1, [r11+r2*%4]
+    lea  r0, [r%7+r2*%4]
+    lea  r1, [r %+ p1+r2*%4]
     call stub_%2_h264_qpel%4_%3_10_%1
-    lea  r0, [r10+r2*%4+%4*2]
-    lea  r1, [r11+r2*%4+%4*2]
-%ifndef UNIX64 ; fall through to function
+    lea  r0, [r%7+r2*%4+%4*2]
+    lea  r1, [r %+ p1+r2*%4+%4*2]
+%if UNIX64 == 0 ; fall through to function
     call stub_%2_h264_qpel%4_%3_10_%1
     RET
 %endif
@@ -165,7 +167,7 @@ cglobal %2_h264_qpel%5_%3_10_%1, %6,%7,%8
 MCAxA %1, %2, %3, %4, i, %5,%6,%7
 
 cglobal %2_h264_qpel%4_%3_10_%1, %5,%6,%7
-%ifndef UNIX64 ; no prologue or epilogue for UNIX64
+%if UNIX64 == 0 ; no prologue or epilogue for UNIX64
     call stub_%2_h264_qpel%4_%3_10_%1
     RET
 %endif
@@ -619,7 +621,7 @@ MC MC33
 %define PAD 12
 %define COUNT 2
 %else
-%define PAD 0
+%define PAD 4
 %define COUNT 3
 %endif
 put_hv%2_10_%1: