You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
3.0 KiB
102 lines
3.0 KiB
X-Git-Url: http://git.ffmpeg.org/gitweb/ffmpeg.git/blobdiff_plain/3205ed31a7756ae563301e2f5a5dd2c853b20349..0b2b03568f22fdb361d9a44c262bfb9269335f80:/libavutil/x86/x86inc.asm
|
|
|
|
diff --git a/libavutil/x86/x86inc.asm b/libavutil/x86/x86inc.asm
|
|
index 5044ee8..01c35e3 100644
|
|
--- a/libavutil/x86/x86inc.asm
|
|
+++ b/libavutil/x86/x86inc.asm
|
|
@@ -411,16 +411,6 @@ DECLARE_REG_TMP_SIZE 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
|
|
%endif
|
|
%endmacro
|
|
|
|
-%macro DEFINE_ARGS_INTERNAL 3+
|
|
- %ifnum %2
|
|
- DEFINE_ARGS %3
|
|
- %elif %1 == 4
|
|
- DEFINE_ARGS %2
|
|
- %elif %1 > 4
|
|
- DEFINE_ARGS %2, %3
|
|
- %endif
|
|
-%endmacro
|
|
-
|
|
%if WIN64 ; Windows x64 ;=================================================
|
|
|
|
DECLARE_REG 0, rcx
|
|
@@ -439,7 +429,7 @@ DECLARE_REG 12, R15, 104
|
|
DECLARE_REG 13, R12, 112
|
|
DECLARE_REG 14, R13, 120
|
|
|
|
-%macro PROLOGUE 2-5+ 0 ; #args, #regs, #xmm_regs, [stack_size,] arg_names...
|
|
+%macro PROLOGUE 2-5+ 0, 0 ; #args, #regs, #xmm_regs, [stack_size,] arg_names...
|
|
%assign num_args %1
|
|
%assign regs_used %2
|
|
ASSERT regs_used >= num_args
|
|
@@ -451,7 +441,15 @@ DECLARE_REG 14, R13, 120
|
|
WIN64_SPILL_XMM %3
|
|
%endif
|
|
LOAD_IF_USED 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
|
|
- DEFINE_ARGS_INTERNAL %0, %4, %5
|
|
+ %if %0 > 4
|
|
+ %ifnum %4
|
|
+ DEFINE_ARGS %5
|
|
+ %else
|
|
+ DEFINE_ARGS %4, %5
|
|
+ %endif
|
|
+ %elifnnum %4
|
|
+ DEFINE_ARGS %4
|
|
+ %endif
|
|
%endmacro
|
|
|
|
%macro WIN64_PUSH_XMM 0
|
|
@@ -547,7 +545,7 @@ DECLARE_REG 12, R15, 56
|
|
DECLARE_REG 13, R12, 64
|
|
DECLARE_REG 14, R13, 72
|
|
|
|
-%macro PROLOGUE 2-5+ 0 ; #args, #regs, #xmm_regs, [stack_size,] arg_names...
|
|
+%macro PROLOGUE 2-5+ 0, 0 ; #args, #regs, #xmm_regs, [stack_size,] arg_names...
|
|
%assign num_args %1
|
|
%assign regs_used %2
|
|
%assign xmm_regs_used %3
|
|
@@ -557,7 +555,15 @@ DECLARE_REG 14, R13, 72
|
|
PUSH_IF_USED 9, 10, 11, 12, 13, 14
|
|
ALLOC_STACK %4
|
|
LOAD_IF_USED 6, 7, 8, 9, 10, 11, 12, 13, 14
|
|
- DEFINE_ARGS_INTERNAL %0, %4, %5
|
|
+ %if %0 > 4
|
|
+ %ifnum %4
|
|
+ DEFINE_ARGS %5
|
|
+ %else
|
|
+ DEFINE_ARGS %4, %5
|
|
+ %endif
|
|
+ %elifnnum %4
|
|
+ DEFINE_ARGS %4
|
|
+ %endif
|
|
%endmacro
|
|
|
|
%define has_epilogue regs_used > 9 || stack_size > 0 || vzeroupper_required
|
|
@@ -598,7 +604,7 @@ DECLARE_REG 6, ebp, 28
|
|
|
|
DECLARE_ARG 7, 8, 9, 10, 11, 12, 13, 14
|
|
|
|
-%macro PROLOGUE 2-5+ ; #args, #regs, #xmm_regs, [stack_size,] arg_names...
|
|
+%macro PROLOGUE 2-5+ 0, 0 ; #args, #regs, #xmm_regs, [stack_size,] arg_names...
|
|
%assign num_args %1
|
|
%assign regs_used %2
|
|
ASSERT regs_used >= num_args
|
|
@@ -613,7 +619,15 @@ DECLARE_ARG 7, 8, 9, 10, 11, 12, 13, 14
|
|
PUSH_IF_USED 3, 4, 5, 6
|
|
ALLOC_STACK %4
|
|
LOAD_IF_USED 0, 1, 2, 3, 4, 5, 6
|
|
- DEFINE_ARGS_INTERNAL %0, %4, %5
|
|
+ %if %0 > 4
|
|
+ %ifnum %4
|
|
+ DEFINE_ARGS %5
|
|
+ %else
|
|
+ DEFINE_ARGS %4, %5
|
|
+ %endif
|
|
+ %elifnnum %4
|
|
+ DEFINE_ARGS %4
|
|
+ %endif
|
|
%endmacro
|
|
|
|
%define has_epilogue regs_used > 3 || stack_size > 0 || vzeroupper_required
|