Commit 134ce4c0266bf994f07518fc534de53f1d3c8de8

Anthony Green 2014-03-16T07:47:17

Merge pull request #91 from joshtriplett/esp-extra-stackery-perception testsuite: Remove fragile stack pointer checks

diff --git a/testsuite/libffi.call/closure_stdcall.c b/testsuite/libffi.call/closure_stdcall.c
index 1407f02..2cc2e03 100644
--- a/testsuite/libffi.call/closure_stdcall.c
+++ b/testsuite/libffi.call/closure_stdcall.c
@@ -32,9 +32,6 @@ int main (void)
   ffi_closure *pcl = ffi_closure_alloc(sizeof(ffi_closure), &code);
   ffi_type * cl_arg_types[17];
   int res;
-  void* sp_pre;
-  void* sp_post;
-  char buf[1024];
 
   cl_arg_types[0] = &ffi_type_uint;
   cl_arg_types[1] = &ffi_type_uint;
@@ -49,24 +46,11 @@ int main (void)
   CHECK(ffi_prep_closure_loc(pcl, &cif, closure_test_stdcall,
                              (void *) 3 /* userdata */, code) == FFI_OK);
 
-#ifdef _MSC_VER
-  __asm { mov sp_pre, esp }
-#else
-  asm volatile (" movl %%esp,%0" : "=g" (sp_pre));
-#endif
   res = (*(closure_test_type0)code)(0, 1, 2, 3);
-#ifdef _MSC_VER
-  __asm { mov sp_post, esp }
-#else
-  asm volatile (" movl %%esp,%0" : "=g" (sp_post));
-#endif
   /* { dg-output "0 1 2 3: 9" } */
 
   printf("res: %d\n",res);
   /* { dg-output "\nres: 9" } */
 
-  sprintf(buf, "mismatch: pre=%p vs post=%p", sp_pre, sp_post);
-  printf("stack pointer %s\n", (sp_pre == sp_post ? "match" : buf));
-  /* { dg-output "\nstack pointer match" } */
   exit(0);
 }
diff --git a/testsuite/libffi.call/closure_thiscall.c b/testsuite/libffi.call/closure_thiscall.c
index 0f93649..33ce8b6 100644
--- a/testsuite/libffi.call/closure_thiscall.c
+++ b/testsuite/libffi.call/closure_thiscall.c
@@ -32,9 +32,6 @@ int main (void)
   ffi_closure *pcl = ffi_closure_alloc(sizeof(ffi_closure), &code);
   ffi_type * cl_arg_types[17];
   int res;
-  void* sp_pre;
-  void* sp_post;
-  char buf[1024];
 
   cl_arg_types[0] = &ffi_type_uint;
   cl_arg_types[1] = &ffi_type_uint;
@@ -49,24 +46,11 @@ int main (void)
   CHECK(ffi_prep_closure_loc(pcl, &cif, closure_test_thiscall,
                              (void *) 3 /* userdata */, code) == FFI_OK);
 
-#ifdef _MSC_VER
-  __asm { mov sp_pre, esp }
-#else
-  asm volatile (" movl %%esp,%0" : "=g" (sp_pre));
-#endif
   res = (*(closure_test_type0)code)(0, 1, 2, 3);
-#ifdef _MSC_VER
-  __asm { mov sp_post, esp }
-#else
-  asm volatile (" movl %%esp,%0" : "=g" (sp_post));
-#endif
   /* { dg-output "0 1 2 3: 9" } */
 
   printf("res: %d\n",res);
   /* { dg-output "\nres: 9" } */
 
-  sprintf(buf, "mismatch: pre=%p vs post=%p", sp_pre, sp_post);
-  printf("stack pointer %s\n", (sp_pre == sp_post ? "match" : buf));
-  /* { dg-output "\nstack pointer match" } */
   exit(0);
 }