X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fmips-arch.h;h=4ac1b787b3e28f4f9c51d039103734812e6ed81f;hb=eac461c1f1ca91cfe282c779291d582ed6b336cb;hp=eba16e4f6317eab81f991ed15db105249e78fb22;hpb=79cc569a97e444389350ea3f5b1017374fe16bec;p=sbcl.git diff --git a/src/runtime/mips-arch.h b/src/runtime/mips-arch.h index eba16e4..4ac1b78 100644 --- a/src/runtime/mips-arch.h +++ b/src/runtime/mips-arch.h @@ -41,7 +41,23 @@ get_spinlock(volatile lispobj *word, long value) static inline void release_spinlock(volatile lispobj *word) { +#ifdef LISP_FEATURE_SB_THREAD + __asm__ __volatile__ ( + " .set push\n" + " .set mips2\n" + " .set noreorder\n" + " sw $0,%[__mem]\n" + " sync\n" + " .set pop" + : + : [__mem] "R" (*word) + : "memory"); +#else /* LISP_FEATURE_SB_THREAD */ *word=0; +#endif } +unsigned int arch_get_fp_control(void); +void arch_set_fp_control(unsigned int fp); + #endif /* _MIPS_ARCH_H */