More precise and compact source locations from xref.
[sbcl.git] / src / runtime / arm64-arch.h
blob8418350b16a7b115e5e16049686d27ca5ad71ae5
1 #ifndef _ARM64_ARCH_H
2 #define _ARM64_ARCH_H
4 #define ALIEN_STACK_GROWS_DOWNWARD
6 #ifdef LISP_FEATURE_SB_THREAD
7 static inline lispobj
8 swap_lispobjs(volatile lispobj *dest, lispobj value)
10 lispobj old_value;
11 int temp;
13 asm volatile ("1: ldaxr %0,[%2];"
14 " stlxr %w1,%3,[%2];"
15 " cbnz %w1,1b;"
16 : "=&r" (old_value), "=&r" (temp)
17 : "r" (dest), "r" (value)
18 : "memory");
19 return old_value;
21 #endif
23 #define ARCH_HAS_LINK_REGISTER
25 #endif /* _ARM64_ARCH_H */