summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2006-11-05 01:13:26 +0000
committerDavid Schleef <ds@schleef.org>2006-11-05 01:13:26 +0000
commit7c4fb36a2edace90ffa2b4cce9dc1002aeae6a9a (patch)
treed6798931e7c843f8d3b8421245d0ad648d9d37f0 /testsuite
parent224c46ca4c94950674b1af054535e0a9108bdef1 (diff)
downloadliboil-7c4fb36a2edace90ffa2b4cce9dc1002aeae6a9a.tar.gz
* configure.ac:
* liboil/Makefile.am: * liboil/amd64/Makefile.am: * liboil/amd64/empty.c: * liboil/i386/Makefile.am: * liboil/i386/clamp.c: * liboil/i386/idct8x8_i386.c: * liboil/i386/mt19937.c: * liboil/i386/resample.c: * liboil/i386/sum.c: * liboil/i386/swab.c: * liboil/i386_amd64/Makefile.am: * liboil/i386_amd64/clamp.c: * liboil/i386_amd64/idct8x8_i386.c: * liboil/i386_amd64/mt19937.c: * liboil/i386_amd64/resample.c: * liboil/i386_amd64/sum.c: * liboil/i386_amd64/swab.c: * testsuite/stack_align.c: Move stuff from i386/ to i386_amd64/ that compiles on amd64 (along with a resample fix). Other random amd64 fixes.
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/stack_align.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/testsuite/stack_align.c b/testsuite/stack_align.c
index 8156981..935dc75 100644
--- a/testsuite/stack_align.c
+++ b/testsuite/stack_align.c
@@ -235,12 +235,22 @@ int realign_return;
void realign(int align)
{
+#ifdef HAVE_I386
__asm__ __volatile__ (
" sub %%ebx, %%esp\n"
" call check_class_with_alignment\n"
" add %%ebx, %%esp\n"
:: "b" (align)
);
+#endif
+#ifdef HAVE_AMD64
+ __asm__ __volatile__ (
+ " sub %%rbx, %%rsp\n"
+ " call check_class_with_alignment\n"
+ " add %%rbx, %%rsp\n"
+ :: "b" (align)
+ );
+#endif
}
void check_class_with_alignment (void)
@@ -289,8 +299,13 @@ int check_class(OilFunctionClass *klass)
test = oil_test_new(klass);
for (i=0; i < OIL_ARG_LAST; i++) {
int align;
+ int step = 4;
+
+#ifdef HAVE_AMD64
+ step = 16;
+#endif
- for (align = 0; align <= 32; align += 4) {
+ for (align = 0; align <= 32; align += step) {
realign_klass = klass;
realign_align = align;
realign(align);