(NAN): Define for support of Not-a-Number bit patterns.
authorRichard Stallman <rms@gnu.org>
Sun, 9 May 1993 22:13:02 +0000 (22:13 +0000)
committerRichard Stallman <rms@gnu.org>
Sun, 9 May 1993 22:13:02 +0000 (22:13 +0000)
commit66b6d60bac72ce00d521c3828d13f8ce23d17c90
tree34720b801d0dcc635a501f5a44e2738ec3edc6ef
parent5ec88efd8236e258640bc1dd8911cfff18c41fc2
(NAN): Define for support of Not-a-Number bit patterns.

(make_nan): New function outputs a NaN in requested machine mode.
(eisnan, eiisnan, enan, einan, eiisinf, eiinfin): New functions.
(earith, etrunci, etruncui, ereal_negate, ereal_ldexp,
real_value_truncate, esub, eadd, emul, ediv, eremain):
Return NaN arg back to caller.
(eroundi, eroundui, ereal_to_int): NaN to integer returns -1
and a warning.
(target_isnan): Check for NaN.
(eneg): No-op if NaN.
(eisneg, eisinf): False if NaN.
(emovi, emovo): Handle NaN conversions.
(esub, eadd): Infinity minus infinity = NaN and INVALID warning.
(ediv): 0/0, inf/inf = NaN and INVALID warning.
(emul): 0 * inf = NaN and INVALID warning.
(e24toe, e53toe, e64toe): Generate e-type NaN for NaN input.
(etoe24, etoe53, etoe64): Output NaN in appropriate machine mode.
(ecmp): Unordered compare returns -2.
(etoasc): NaN produces ASCII string "NaN".
(asctoe): Unrecognizable input produces e-type NaN.
(eremain): x REM y = NaN if y = 0 or x = infinity.

From-SVN: r4401
gcc/real.c