Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Jan 2004 20:26:10 -0800
From:      David Schultz <das@FreeBSD.ORG>
To:        Marcel Moolenaar <marcel@FreeBSD.ORG>
Cc:        cvs-all@FreeBSD.ORG
Subject:   Re: cvs commit: src/sys/ia64/ia64 trap.c
Message-ID:  <20040120042610.GA91142@VARK.homeunix.com>
In-Reply-To: <200401200329.i0K3TOL0029675@repoman.freebsd.org>
References:  <200401200329.i0K3TOL0029675@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jan 19, 2004, Marcel Moolenaar wrote:
> marcel      2004/01/19 19:29:24 PST
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/ia64/ia64        trap.c 
>   Log:
>   Fix handling of FP traps:
>   o  For traps, the cr.iip register points to the next instruction to
>      execute on interrupt return (modulo slot). Since we need to get
>      the bundle of the instruction that caused the FP fault/trap, make
>      sure we fetch the previous bundle if the next instruction is in
>      fact the first in a bundle.
>   o  When we call the FPSWA handler, we need to tell it whether it's
>      a trap or a fault (first argument). This was hardcoded to mean a
>      fault.
>   
>   Also, for FP faults, when a fault is converted to a trap, adjust the
>   cr.iip and cr.ipsr registers to point to the next instruction. This
>   makes sure that the SIGFPE handler gets a consistent state.

Does this fix the spurious SIGFPEs that were being delivered on
denormal traps?



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040120042610.GA91142>