X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fmips-linux-os.c;h=70f988e8f467df0b0c4e3681e93440fd5d0f2a8c;hb=4ba392170e98744f0ef0b8e08a5d42b988f1d0c9;hp=165fc2984264059fc73a9d6779ea5b361fa50b5f;hpb=9724274ab5985705dc1ab7bb3be40423ac4c5e14;p=sbcl.git diff --git a/src/runtime/mips-linux-os.c b/src/runtime/mips-linux-os.c index 165fc29..70f988e 100644 --- a/src/runtime/mips-linux-os.c +++ b/src/runtime/mips-linux-os.c @@ -80,14 +80,17 @@ os_context_sigmask_addr(os_context_t *context) unsigned int os_context_fp_control(os_context_t *context) { - /* FIXME: Probably do something. */ - return 0; + mcontext_t *mctx = &context->uc_mcontext; + struct sigcontext *ctx = (struct sigcontext *)mctx; + return ctx->sc_fpc_csr; } void os_restore_fp_control(os_context_t *context) { - /* FIXME: Probably do something. */ + unsigned int ctl = os_context_fp_control(context); + ctl &= ~(FLOAT_STICKY_BITS_MASK | FLOAT_EXCEPTIONS_BYTE_MASK); + arch_set_fp_control(ctl); } unsigned int