FPU: fix field names, compiler warning, long lines

This commit is contained in:
David van Moolenbroek
2009-12-02 23:12:46 +00:00
parent 38fecc5de1
commit fe982ca684
7 changed files with 28 additions and 19 deletions

View File

@@ -11,6 +11,7 @@
#include "../system.h"
#include "../vm.h"
#include <signal.h>
#include <string.h>
#include <minix/endpoint.h>
@@ -60,15 +61,15 @@ register message *m_ptr; /* pointer to request message */
gen = _ENDPOINT_G(rpc->p_endpoint);
#if (_MINIX_CHIP == _CHIP_INTEL)
old_ldt_sel = rpc->p_seg.p_ldt_sel; /* backup local descriptors */
old_fpu_save_area_p = rpc->fpu_state.fpu_save_area_p;
old_fpu_save_area_p = rpc->p_fpu_state.fpu_save_area_p;
#endif
*rpc = *rpp; /* copy 'proc' struct */
#if (_MINIX_CHIP == _CHIP_INTEL)
rpc->p_seg.p_ldt_sel = old_ldt_sel; /* restore descriptors */
rpc->fpu_state.fpu_save_area_p = old_fpu_save_area_p;
rpc->p_fpu_state.fpu_save_area_p = old_fpu_save_area_p;
if(rpp->p_misc_flags & MF_FPU_INITIALIZED)
memcpy(rpc->fpu_state.fpu_save_area_p,
rpp->fpu_state.fpu_save_area_p,
memcpy(rpc->p_fpu_state.fpu_save_area_p,
rpp->p_fpu_state.fpu_save_area_p,
FPU_XFP_SIZE);
#endif
if(++gen >= _ENDPOINT_MAX_GENERATION) /* increase generation */

View File

@@ -58,7 +58,8 @@ message *m_ptr; /* pointer to request message */
#if (_MINIX_CHIP == _CHIP_INTEL)
if(sc.sc_flags & MF_FPU_INITIALIZED)
{
memcpy(rp->fpu_state.fpu_save_area_p, &sc.fpu_state, FPU_XFP_SIZE);
memcpy(rp->p_fpu_state.fpu_save_area_p, &sc.sc_fpu_state,
FPU_XFP_SIZE);
rp->p_misc_flags |= MF_FPU_INITIALIZED; /* Restore math usage flag. */
}
#endif

View File

@@ -49,7 +49,8 @@ message *m_ptr; /* pointer to request message */
memcpy(&sc.sc_regs, (char *) &rp->p_reg, sizeof(sigregs));
#if (_MINIX_CHIP == _CHIP_INTEL)
if(rp->p_misc_flags & MF_FPU_INITIALIZED)
memcpy(&sc.fpu_state, rp->fpu_state.fpu_save_area_p, FPU_XFP_SIZE);
memcpy(&sc.sc_fpu_state, rp->p_fpu_state.fpu_save_area_p,
FPU_XFP_SIZE);
#endif
/* Finish the sigcontext initialization. */
@@ -71,11 +72,11 @@ message *m_ptr; /* pointer to request message */
#if (_MINIX_CHIP == _CHIP_INTEL)
if (osfxsr_feature == 1) {
fp_error = sc.fpu_state.xfp_regs.fp_status &
~sc.fpu_state.xfp_regs.fp_control;
fp_error = sc.sc_fpu_state.xfp_regs.fp_status &
~sc.sc_fpu_state.xfp_regs.fp_control;
} else {
fp_error = sc.fpu_state.fpu_regs.fp_status &
~sc.fpu_state.fpu_regs.fp_control;
fp_error = sc.sc_fpu_state.fpu_regs.fp_status &
~sc.sc_fpu_state.fpu_regs.fp_control;
}
if (fp_error & 0x001) { /* Invalid op */