FPU cleanup
- last reference to MF_USED_FPU removed - proc_used_fpu() used to test for MF_FPU_INITIALIZED
This commit is contained in:
		
							parent
							
								
									b5ae3961bb
								
							
						
					
					
						commit
						7920d48156
					
				@ -219,7 +219,7 @@ PUBLIC void save_fpu(struct proc *pr)
 | 
			
		||||
 | 
			
		||||
PUBLIC void restore_fpu(struct proc *pr)
 | 
			
		||||
{
 | 
			
		||||
	if(!(pr->p_misc_flags & MF_FPU_INITIALIZED)) {
 | 
			
		||||
	if(!proc_used_fpu(pr)) {
 | 
			
		||||
		fninit();
 | 
			
		||||
		pr->p_misc_flags |= MF_FPU_INITIALIZED;
 | 
			
		||||
	} else {
 | 
			
		||||
 | 
			
		||||
@ -146,7 +146,7 @@ struct proc {
 | 
			
		||||
#define proc_is_preempted(p)	((p)->p_rts_flags & RTS_PREEMPTED)
 | 
			
		||||
#define proc_no_quantum(p)	((p)->p_rts_flags & RTS_NO_QUANTUM)
 | 
			
		||||
#define proc_ptr_ok(p)		((p)->p_magic == PMAGIC)
 | 
			
		||||
#define proc_used_fpu(p)	((p)->p_misc_flags & (MF_FPU_INITIALIZED|MF_USED_FPU))
 | 
			
		||||
#define proc_used_fpu(p)	((p)->p_misc_flags & (MF_FPU_INITIALIZED))
 | 
			
		||||
 | 
			
		||||
/* test whether the process is scheduled by the kernel's default policy  */
 | 
			
		||||
#define proc_kernel_scheduler(p)	((p)->p_scheduler == NULL || \
 | 
			
		||||
 | 
			
		||||
@ -67,7 +67,7 @@ PUBLIC int do_fork(struct proc * caller, message * m_ptr)
 | 
			
		||||
#if (_MINIX_CHIP == _CHIP_INTEL)
 | 
			
		||||
  rpc->p_seg.p_ldt_sel = old_ldt_sel;	/* restore descriptors */
 | 
			
		||||
  rpc->p_fpu_state.fpu_save_area_p = old_fpu_save_area_p;
 | 
			
		||||
  if(rpp->p_misc_flags & MF_FPU_INITIALIZED)
 | 
			
		||||
  if(proc_used_fpu(rpp)) {
 | 
			
		||||
	memcpy(rpc->p_fpu_state.fpu_save_area_p,
 | 
			
		||||
	       rpp->p_fpu_state.fpu_save_area_p,
 | 
			
		||||
	       FPU_XFP_SIZE);
 | 
			
		||||
 | 
			
		||||
@ -29,7 +29,7 @@ PUBLIC int do_getmcontext(struct proc * caller, message * m_ptr)
 | 
			
		||||
  rp = proc_addr(proc_nr);
 | 
			
		||||
 | 
			
		||||
#if (_MINIX_CHIP == _CHIP_INTEL)
 | 
			
		||||
  if (!(rp->p_misc_flags & MF_FPU_INITIALIZED)) 
 | 
			
		||||
  if (!proc_used_fpu(rp)) {
 | 
			
		||||
	return(OK);	/* No state to copy */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@ -41,7 +41,7 @@ PUBLIC int do_getmcontext(struct proc * caller, message * m_ptr)
 | 
			
		||||
#if (_MINIX_CHIP == _CHIP_INTEL)
 | 
			
		||||
  /* Copy FPU state */
 | 
			
		||||
  mc.mc_fpu_flags = 0;
 | 
			
		||||
  if (rp->p_misc_flags & MF_FPU_INITIALIZED) {
 | 
			
		||||
  if (proc_used_fpu(rp)) {
 | 
			
		||||
	/* make sure that the FPU context is saved into proc structure first */
 | 
			
		||||
	if (fpu_owner == rp) {
 | 
			
		||||
		disable_fpu_exception();
 | 
			
		||||
 | 
			
		||||
@ -44,7 +44,7 @@ PUBLIC int do_sigsend(struct proc * caller, message * m_ptr)
 | 
			
		||||
  /* Copy the registers to the sigcontext structure. */
 | 
			
		||||
  memcpy(&sc.sc_regs, (char *) &rp->p_reg, sizeof(sigregs));
 | 
			
		||||
  #if (_MINIX_CHIP == _CHIP_INTEL)
 | 
			
		||||
    if(rp->p_misc_flags & MF_FPU_INITIALIZED) {
 | 
			
		||||
    if(proc_used_fpu(rp)) {
 | 
			
		||||
	    /* save the FPU context before saving it to the sig context */
 | 
			
		||||
	    if (fpu_owner == rp) {
 | 
			
		||||
		    disable_fpu_exception();
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user