Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: [netbsd-9] src/sys/arch/alpha/alpha



Module Name:    src
Committed By:   martin
Date:           Wed Sep  2 12:38:07 UTC 2020

Modified Files:
        src/sys/arch/alpha/alpha [netbsd-9]: fp_complete.c

Log Message:
Pull up following revision(s) (requested by thorpej in ticket #1071):

        sys/arch/alpha/alpha/fp_complete.c: revision 1.24

- compare_{le,lt)(): Use float64_{le,lt}_quiet() to avoid raising
exceptions on QNaNs.
- alpha_fp_interpret(): Instructions are 32-bits wide, so don't use a
uint64_t to contain them.
- alpha_fp_complete(): Operations on NaNs trap on Alpha, but the exception
summary reports INV (invalid operation) rather than SWC (software
completion) in this case.  So also interpret the instruction if INV
is set in the exception summary.  This will emulate operations on
NaN and correctly suppress FP traps for QNaNs.

This fixes bin/55633, which was caused by:
-> Input string "nanotime" is passed to awk's internal is_number().
-> strtod() interprets as "nan" and returns QNaN as the result.
-> Result compared against HUGE_VAL, blows up because cmptle is called
with a NaN operand, and the hardware doesn't care that it's quiet.


To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.23.4.1 src/sys/arch/alpha/alpha/fp_complete.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index