5 get_spinlock(lispobj
*word
,long value
)
7 #ifdef LISP_FEATURE_SB_THREAD
10 asm volatile("1: lwarx %0,0,%1;"
17 : "r" (word
), "r" (value
)
27 release_spinlock(lispobj
*word
)
29 #ifdef LISP_FEATURE_SB_THREAD
30 asm volatile ("sync" : : : "memory");
35 #ifdef LISP_FEATURE_SB_THREAD
37 swap_lispobjs(volatile lispobj
*dest
, lispobj value
)
40 asm volatile ("1: lwarx %0,0,%1;"
45 : "r" (dest
), "r" (value
)
51 #define ARCH_HAS_LINK_REGISTER
52 #define ALIEN_STACK_GROWS_DOWNWARD
54 extern void ppc_flush_icache(os_vm_address_t address
, os_vm_size_t length
);
56 os_context_register_t
*os_context_ctr_addr(os_context_t
*context
);
57 os_context_register_t
*os_context_cr_addr(os_context_t
*context
);
59 #endif /* _PPC_ARCH_H */