summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2014-02-12 14:28:03 -0500
committerMark H Weaver <mhw@netris.org>2014-02-12 20:53:55 -0500
commitf07fa851505c6f4e7040b10ca0e178901bd106ef (patch)
treed32c5e7cb0e0ce6057b44474652e903bc926b968
parente1d7a93bb286d691069d47063d1ce5baabd7a35d (diff)
downloadguile-f07fa851505c6f4e7040b10ca0e178901bd106ef.tar.gz
Fix inline asm of VM numerical operations for x32.
* libguile/vm-i-scheme.c (_CX): Choose register size based on 'SIZEOF_VOID_P' instead of '__x86_64__'.
-rw-r--r--libguile/vm-i-scheme.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libguile/vm-i-scheme.c b/libguile/vm-i-scheme.c
index fc32ec5a8..dd2150ddc 100644
--- a/libguile/vm-i-scheme.c
+++ b/libguile/vm-i-scheme.c
@@ -236,10 +236,12 @@ VM_DEFINE_FUNCTION (149, ge, "ge?", 2)
#if SCM_GNUC_PREREQ (4, 5) && (defined __x86_64__ || defined __i386__)
# undef _CX
-# ifdef __x86_64__
+# if SIZEOF_VOID_P == 8
# define _CX "rcx"
-# else
+# elif SIZEOF_VOID_P == 4
# define _CX "ecx"
+# else
+# error unsupported word size
# endif
/* The macros below check the CPU's overflow flag to improve fixnum