aboutsummaryrefslogtreecommitdiff
path: root/patches/patch-source-clisp-clispver_lispbibl_d
diff options
context:
space:
mode:
Diffstat (limited to 'patches/patch-source-clisp-clispver_lispbibl_d')
-rw-r--r--patches/patch-source-clisp-clispver_lispbibl_d18
1 files changed, 18 insertions, 0 deletions
diff --git a/patches/patch-source-clisp-clispver_lispbibl_d b/patches/patch-source-clisp-clispver_lispbibl_d
new file mode 100644
index 0000000..2eec681
--- /dev/null
+++ b/patches/patch-source-clisp-clispver_lispbibl_d
@@ -0,0 +1,18 @@
1--- src/lispbibl.d.orig 2013-06-17 14:15:17.000000000 +0000
2+++ src/lispbibl.d
3@@ -9090,6 +9090,15 @@ All other long words on the LISP-Stack a
4 #define setSP(adresse) \
5 ({ __asm__ __volatile__ ("movel %0,"REGISTER_PREFIX"sp" : : "g" ((aint)(adresse)) : "sp" ); })
6 #define FAST_SP
7+#elif defined(__clang__) && defined(__x86_64__)
8+ /* Access to a register-"variable" %rsp */
9+ #define SP() \
10+ ({var aint __SP; \
11+ __asm__ __volatile__ ("movq %%rsp,%0" : "=g" (__SP) : ); \
12+ __SP; \
13+ })
14+ #define setSP(adresse) \
15+ ({ __asm__ __volatile__ ("movq %0,%%rsp" : : "g" ((aint)(adresse)) : "sp" ); })
16 #elif (defined(GNU) || defined(INTEL)) && defined(I80386) && !defined(NO_ASM)
17 /* Access to a register-"variable" %esp */
18 #define SP() \