checkasm: Fix stack alignment bug
authorHenrik Gramner <henrik@gramner.com>
Fri, 10 May 2013 11:55:32 +0000 (13:55 +0200)
committerJason Garrett-Glaser <jason@x264.com>
Fri, 17 May 2013 16:26:45 +0000 (09:26 -0700)
tools/checkasm-a.asm
tools/checkasm.c

index 7b39d93..de33043 100644 (file)
@@ -207,8 +207,12 @@ cglobal checkasm_call, 1,7
 ; int x264_stack_pagealign( int (*func)(), int align )
 ;-----------------------------------------------------------------------------
 cglobal stack_pagealign, 2,2
+    movsxdifnidn r1, r1d
     push rbp
     mov  rbp, rsp
+%if WIN64
+    sub  rsp, 32 ; shadow space
+%endif
     and  rsp, ~0xfff
     sub  rsp, r1
     call r0
index f429b43..4aaa445 100644 (file)
@@ -2686,7 +2686,7 @@ int main(int argc, char *argv[])
             fprintf( stderr, "%d/%d\r", i+1, BENCH_ALIGNS );
         }
     else
-        ret = check_all_flags();
+        ret = x264_stack_pagealign( check_all_flags, 0 );
 
     if( ret )
     {