Do not set 'flush to zero' VFPSCR_FZ bit by default. The correct
implementation of IEEE 754 arithmetic depends on denormals operating correctly. Both perl test suite and paranoia tripped over the setting. Reported by: Stefan Parvu <sparvu@kronometrix.org> Discussed with: andrew Sponsored by: The FreeBSD Foundation MFC after: 1 week
This commit is contained in:
parent
c39e422eed
commit
7ecbae3523
@ -1069,7 +1069,7 @@ init_proc0(vm_offset_t kstack)
|
||||
(thread0.td_kstack + kstack_pages * PAGE_SIZE) - 1;
|
||||
thread0.td_pcb->pcb_flags = 0;
|
||||
thread0.td_pcb->pcb_vfpcpu = -1;
|
||||
thread0.td_pcb->pcb_vfpstate.fpscr = VFPSCR_DN | VFPSCR_FZ;
|
||||
thread0.td_pcb->pcb_vfpstate.fpscr = VFPSCR_DN;
|
||||
thread0.td_frame = &proc0_tf;
|
||||
pcpup->pc_curpcb = thread0.td_pcb;
|
||||
}
|
||||
|
@ -134,7 +134,7 @@ cpu_fork(register struct thread *td1, register struct proc *p2,
|
||||
pcb2->pcb_regs.sf_sp = STACKALIGN(td2->td_frame);
|
||||
|
||||
pcb2->pcb_vfpcpu = -1;
|
||||
pcb2->pcb_vfpstate.fpscr = VFPSCR_DN | VFPSCR_FZ;
|
||||
pcb2->pcb_vfpstate.fpscr = VFPSCR_DN;
|
||||
|
||||
tf = td2->td_frame;
|
||||
tf->tf_spsr &= ~PSR_C;
|
||||
|
Loading…
x
Reference in New Issue
Block a user