X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fx86-64-arch.h;h=4e3a18d4e94c5bbb1dd8bba887dc7d6b789cd78d;hb=69ef68ba7393e3492c1b4a756d1140f71c2922bc;hp=bf3306b378b2f7d359104f7e4f7addfd21f09de9;hpb=428b60fff4247e34ff601810f33976908f22bbc0;p=sbcl.git diff --git a/src/runtime/x86-64-arch.h b/src/runtime/x86-64-arch.h index bf3306b..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 @@ -15,15 +15,15 @@ static inline void 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 */