shithub: libvpx

Download patch

ref: c739fdeb1828aa6478d5dd271bae12cc05839887
parent: 850ebe40729a96d4d6af7c14970e3e12ae385425
parent: 4e4e7fa9122ffbe7ab3612dce8d28d47441ce53a
author: Jingning Han <jingning@google.com>
date: Mon May 19 12:06:35 EDT 2014

Merge "Make x86inc support local variable array"

--- a/third_party/x86inc/x86inc.asm
+++ b/third_party/x86inc/x86inc.asm
@@ -395,6 +395,23 @@
     %assign n_arg_names %0
 %endmacro
 
+%if ARCH_X86_64
+%macro ALLOC_STACK 2  ; stack_size, num_regs
+  %assign %%stack_aligment ((mmsize + 15) & ~15)
+  %assign stack_size_padded %1
+
+  %assign %%reg_num (%2 - 1)
+  %xdefine rsp_tmp r %+ %%reg_num
+  mov  rsp_tmp, rsp
+  sub  rsp, stack_size_padded
+  and  rsp, ~(%%stack_aligment - 1)
+%endmacro
+
+%macro RESTORE_STACK 0  ; reset rsp register
+  mov  rsp, rsp_tmp
+%endmacro
+%endif
+
 %if WIN64 ; Windows x64 ;=================================================
 
 DECLARE_REG 0,  rcx, ecx,  cx,   cl