diff --git a/vm/os-freebsd-x86.32.hpp b/vm/os-freebsd-x86.32.hpp index a0888e1f5b..e682fec13c 100644 --- a/vm/os-freebsd-x86.32.hpp +++ b/vm/os-freebsd-x86.32.hpp @@ -30,12 +30,12 @@ inline static unsigned int uap_fpu_status(void *uap) inline static void uap_clear_fpu_status(void *uap) { ucontext_t *ucontext = (ucontext_t *)uap; - if (uap->uc_mcontext.mc_fpformat == _MC_FPFMT_387) + if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_387) { struct save87 *x87 = (struct save87 *)(&ucontext->uc_mcontext.mc_fpstate); x87->sv_env.en_sw = 0; } - else if (uap->uc_mcontext.mc_fpformat == _MC_FPFMT_XMM) + else if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_XMM) { struct savexmm *xmm = (struct savexmm *)(&ucontext->uc_mcontext.mc_fpstate); xmm->sv_env.en_sw = 0; diff --git a/vm/os-freebsd-x86.64.hpp b/vm/os-freebsd-x86.64.hpp index 6200a0f5f3..8f8d218a10 100644 --- a/vm/os-freebsd-x86.64.hpp +++ b/vm/os-freebsd-x86.64.hpp @@ -15,7 +15,7 @@ inline static unsigned int uap_fpu_status(void *uap) ucontext_t *ucontext = (ucontext_t *)uap; if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_XMM) { - struct savexmm *xmm = (struct savexmm *)(&ucontext->uc_mcontext.mc_fpstate); + struct savefpu *xmm = (struct savefpu *)(&ucontext->uc_mcontext.mc_fpstate); return xmm->sv_env.en_sw | xmm->sv_env.en_mxcsr; } else @@ -27,7 +27,7 @@ inline static void uap_clear_fpu_status(void *uap) ucontext_t *ucontext = (ucontext_t *)uap; if (ucontext->uc_mcontext.mc_fpformat == _MC_FPFMT_XMM) { - struct savexmm *xmm = (struct savexmm *)(&ucontext->uc_mcontext.mc_fpstate); + struct savefpu *xmm = (struct savefpu *)(&ucontext->uc_mcontext.mc_fpstate); xmm->sv_env.en_sw = 0; xmm->sv_env.en_mxcsr &= 0xffffffc0; }