svn commit: r288492 - head/sys/arm/arm

Adrian Chadd adrian.chadd at gmail.com
Fri Oct 2 16:33:40 UTC 2015


Hi,

When you run this stuff on ARM (and MIPS, too) - would you please
report in the commit message(s) which platforms you ran it on?

I'd hate to see this break an existing platform that it mostly works
on just to fix it on a platform it doesn't.



-a


On 2 October 2015 at 06:26, Konstantin Belousov <kib at freebsd.org> wrote:
> Author: kib
> Date: Fri Oct  2 13:25:59 2015
> New Revision: 288492
> URL: https://svnweb.freebsd.org/changeset/base/288492
>
> Log:
>   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 at kronometrix.org>
>   Discussed with:       andrew
>   Sponsored by: The FreeBSD Foundation
>   MFC after:    1 week
>
> Modified:
>   head/sys/arm/arm/machdep.c
>   head/sys/arm/arm/vm_machdep.c
>
> Modified: head/sys/arm/arm/machdep.c
> ==============================================================================
> --- head/sys/arm/arm/machdep.c  Fri Oct  2 13:21:08 2015        (r288491)
> +++ head/sys/arm/arm/machdep.c  Fri Oct  2 13:25:59 2015        (r288492)
> @@ -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;
>  }
>
> Modified: head/sys/arm/arm/vm_machdep.c
> ==============================================================================
> --- head/sys/arm/arm/vm_machdep.c       Fri Oct  2 13:21:08 2015        (r288491)
> +++ head/sys/arm/arm/vm_machdep.c       Fri Oct  2 13:25:59 2015        (r288492)
> @@ -134,7 +134,7 @@ cpu_fork(register struct thread *td1, re
>         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;
>


More information about the svn-src-head mailing list