X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fruntime%2Fx86-64-arch.h;h=4e3a18d4e94c5bbb1dd8bba887dc7d6b789cd78d;hb=731d5dd65a7b94b5d49d1663d9b60c3a406ce38c;hp=a992756e5e27bd3a71cef718c9d774d1d5267f38;hpb=78fa16bf55be44cc16845be84d98023e83fb14bc;p=sbcl.git diff --git a/src/runtime/x86-64-arch.h b/src/runtime/x86-64-arch.h index a992756..4e3a18d 100644 --- a/src/runtime/x86-64-arch.h +++ b/src/runtime/x86-64-arch.h @@ -2,8 +2,8 @@ * reserved for the system libraries? If so, it would be tidy to * rename flags like _X86_ARCH_H so their names are in a part of the * namespace that we control. */ -#ifndef _X86_ARCH_H -#define _X86_ARCH_H +#ifndef _X86_64_ARCH_H +#define _X86_64_ARCH_H #define ARCH_HAS_STACK_POINTER @@ -13,17 +13,17 @@ * architecture-abstracting patches for CSR's SPARC port. -- WHN 2002-02-15) */ static inline void -get_spinlock(lispobj *word,int value) +get_spinlock(lispobj *word,long value) { -#if 0 - u32 eax=0; +#ifdef LISP_FEATURE_SB_THREAD + u64 rax=0; do { asm ("xor %0,%0\n\ lock cmpxchg %1,%2" - : "=a" (eax) + : "=a" (rax) : "r" (value), "m" (*word) : "memory", "cc"); - } while(eax!=0); + } while(rax!=0); #else *word=value; #endif @@ -35,4 +35,4 @@ release_spinlock(lispobj *word) *word=0; } -#endif /* _X86_ARCH_H */ +#endif /* _X86_64_ARCH_H */