4 #define ALIEN_STACK_GROWS_DOWNWARD
7 get_spinlock(volatile lispobj
*word
, long value
)
9 #ifdef LISP_FEATURE_SB_THREAD
10 unsigned long __old
= (volatile lispobj
)*word
;
14 __asm__
__volatile__ (
18 "1: ll %[__prev],%[__mem]\n"
19 " bne %[__prev],%[__old],2f\n"
21 " move %[__cmp],%[__new]\n"
22 " sc %[__cmp],%[__mem]\n"
28 : [__prev
] "=&r" (__prev
),
30 : [__mem
] "R" (*word
),
36 lose("recursive get_spinlock: 0x%x,%d\n", word
, value
);
37 #else /* LISP_FEATURE_SB_THREAD */
43 release_spinlock(volatile lispobj
*word
)
45 #ifdef LISP_FEATURE_SB_THREAD
46 __asm__
__volatile__ (
56 #else /* LISP_FEATURE_SB_THREAD */
61 unsigned int arch_get_fp_control(void);
62 void arch_set_fp_control(unsigned int fp
);
64 #endif /* _MIPS_ARCH_H */