diff options
Diffstat (limited to 'lang/clisp/patches/patch-src_lispbibl.d')
-rw-r--r-- | lang/clisp/patches/patch-src_lispbibl.d | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lang/clisp/patches/patch-src_lispbibl.d b/lang/clisp/patches/patch-src_lispbibl.d new file mode 100644 index 00000000000..8e1b69e40c3 --- /dev/null +++ b/lang/clisp/patches/patch-src_lispbibl.d @@ -0,0 +1,20 @@ +$NetBSD: patch-src_lispbibl.d,v 1.1 2013/06/18 19:58:20 joerg Exp $ + +--- src/lispbibl.d.orig 2013-06-17 14:15:17.000000000 +0000 ++++ src/lispbibl.d +@@ -9090,6 +9090,15 @@ All other long words on the LISP-Stack a + #define setSP(adresse) \ + ({ __asm__ __volatile__ ("movel %0,"REGISTER_PREFIX"sp" : : "g" ((aint)(adresse)) : "sp" ); }) + #define FAST_SP ++#elif defined(__clang__) && defined(__x86_64__) ++ /* Access to a register-"variable" %rsp */ ++ #define SP() \ ++ ({var aint __SP; \ ++ __asm__ __volatile__ ("movq %%rsp,%0" : "=g" (__SP) : ); \ ++ __SP; \ ++ }) ++ #define setSP(adresse) \ ++ ({ __asm__ __volatile__ ("movq %0,%%rsp" : : "g" ((aint)(adresse)) : "sp" ); }) + #elif (defined(GNU) || defined(INTEL)) && defined(I80386) && !defined(NO_ASM) + /* Access to a register-"variable" %esp */ + #define SP() \ |