diff options
Diffstat (limited to 'patches/patch-source-clisp-clispver_lispbibl_d')
-rw-r--r-- | patches/patch-source-clisp-clispver_lispbibl_d | 18 |
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() \ | ||