nextUp, nextDown, minNum, maxNum, minNumMag,
@@ -445,8 +447,8 @@ exponent must both be zero.
-SoftFloat's functions are not guaranteed to operate as expected when inputs of
-type extFloat80_t are non-canonical.
+SoftFloat’s functions are not guaranteed to operate as expected when
+inputs of type extFloat80_t are non-canonical.
Assuming all of a function’s extFloat80_t inputs (if any)
are canonical, function outputs of type extFloat80_t will always
be canonical.
@@ -591,16 +593,15 @@ Variable softfloat_roundingMode is initialized to
-If supported, mode softfloat_round_odd first rounds a
-floating-point result to minimum magnitude, the same as
+When softfloat_round_odd is the rounding mode for a function that
+rounds to an integer value (either conversion to an integer format or a
+‘roundToInt’ function), if the input is not already an
+integer, the rounded result is the closest odd integer.
+For other operations, this rounding mode acts as though the floating-point
+result is first rounded to minimum magnitude, the same as
softfloat_round_minMag, and then, if the result is inexact, the
least-significant bit of the result is set to 1.
-This rounding mode is also known as jamming.
-As a special case, when softfloat_round_odd is the rounding mode
-for a function that rounds to an integer value (either conversion to an integer
-format or a ‘roundToInt’ function), rounding is the
-same as softfloat_round_minMag, without any change to the
-least-significant integer bit.
+Rounding to odd is also known as jamming.
6.2. Underflow Detection
@@ -820,12 +821,6 @@ The roundingMode argument specifies the rounding mode for
the conversion.
The variable that usually indicates rounding mode,
softfloat_roundingMode, is ignored.
-If roundingMode is softfloat_round_odd,
-rounding is to minimum magnitude, the same as
-softfloat_round_minMag, rather than to an odd integer.
-
-
-
Argument exact determines whether the inexact
exception flag is raised if the conversion is not exact.
If exact is true, the inexact flag may
@@ -1087,12 +1082,6 @@ The roundingMode argument specifies the rounding mode to
apply.
The variable that usually indicates rounding mode,
softfloat_roundingMode, is ignored.
-If roundingMode is softfloat_round_odd,
-rounding is to minimum magnitude, the same as
-softfloat_round_minMag, rather than to an odd integer value.
-
-
-
Argument exact determines whether the inexact
exception flag is raised if the conversion is not exact.
If exact is true, the inexact flag may
diff --git a/deps/SoftFloat-3d/source/8086-SSE/extF80M_isSignalingNaN.c b/deps/SoftFloat-3e/source/8086-SSE/extF80M_isSignalingNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/extF80M_isSignalingNaN.c
rename to deps/SoftFloat-3e/source/8086-SSE/extF80M_isSignalingNaN.c
index 9abc018542..85ee211c28 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/extF80M_isSignalingNaN.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/extF80M_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/f128M_isSignalingNaN.c b/deps/SoftFloat-3e/source/8086-SSE/f128M_isSignalingNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/f128M_isSignalingNaN.c
rename to deps/SoftFloat-3e/source/8086-SSE/f128M_isSignalingNaN.c
index 7d7a78af7e..79a7077716 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/f128M_isSignalingNaN.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/f128M_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_commonNaNToExtF80M.c b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/s_commonNaNToExtF80M.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80M.c
index 80991a95ac..3405b3ba4e 100644
--- a/deps/SoftFloat-3d/source/8086/s_commonNaNToExtF80M.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_commonNaNToExtF80UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80UI.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/s_commonNaNToExtF80UI.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80UI.c
index 29da88ac87..cb7424f430 100644
--- a/deps/SoftFloat-3d/source/8086/s_commonNaNToExtF80UI.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToExtF80UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToF128M.c b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToF128M.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128M.c
index 6eb1e36615..e7ea802589 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToF128M.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToF128UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128UI.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToF128UI.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128UI.c
index 0036fa5476..7a9423bea2 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToF128UI.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF128UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_commonNaNToF16UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF16UI.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/s_commonNaNToF16UI.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF16UI.c
index b247a5dd48..d4e458a941 100644
--- a/deps/SoftFloat-3d/source/8086/s_commonNaNToF16UI.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF16UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToF32UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF32UI.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToF32UI.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF32UI.c
index ef117c88ff..ed6c2268f3 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToF32UI.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF32UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToF64UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF64UI.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToF64UI.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF64UI.c
index 2ca37f7a9f..1182be3c9c 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToF64UI.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_commonNaNToF64UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_extF80MToCommonNaN.c b/deps/SoftFloat-3e/source/8086-SSE/s_extF80MToCommonNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/s_extF80MToCommonNaN.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_extF80MToCommonNaN.c
index fa3d637230..00baf35f89 100644
--- a/deps/SoftFloat-3d/source/8086/s_extF80MToCommonNaN.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_extF80MToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_extF80UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086-SSE/s_extF80UIToCommonNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/s_extF80UIToCommonNaN.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_extF80UIToCommonNaN.c
index e3b4e66fda..ab6311ef29 100644
--- a/deps/SoftFloat-3d/source/8086/s_extF80UIToCommonNaN.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_extF80UIToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_f128MToCommonNaN.c b/deps/SoftFloat-3e/source/8086-SSE/s_f128MToCommonNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/s_f128MToCommonNaN.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_f128MToCommonNaN.c
index 61498d7d00..55ec25b58c 100644
--- a/deps/SoftFloat-3d/source/8086/s_f128MToCommonNaN.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_f128MToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_f128UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086-SSE/s_f128UIToCommonNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_f128UIToCommonNaN.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_f128UIToCommonNaN.c
index bd066090f4..f838f02aaf 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_f128UIToCommonNaN.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_f128UIToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_f16UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086-SSE/s_f16UIToCommonNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/s_f16UIToCommonNaN.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_f16UIToCommonNaN.c
index fe306e5952..c1e242d236 100644
--- a/deps/SoftFloat-3d/source/8086/s_f16UIToCommonNaN.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_f16UIToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_f32UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086-SSE/s_f32UIToCommonNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/s_f32UIToCommonNaN.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_f32UIToCommonNaN.c
index 050f8d122a..b21ba66039 100644
--- a/deps/SoftFloat-3d/source/8086/s_f32UIToCommonNaN.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_f32UIToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_f64UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086-SSE/s_f64UIToCommonNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/s_f64UIToCommonNaN.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_f64UIToCommonNaN.c
index 6b98ed09e7..6529d2ee5f 100644
--- a/deps/SoftFloat-3d/source/8086/s_f64UIToCommonNaN.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_f64UIToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNExtF80M.c b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNExtF80M.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80M.c
index f25d940f95..ea1d57a788 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNExtF80M.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_propagateNaNExtF80UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80UI.c
similarity index 88%
rename from deps/SoftFloat-3d/source/8086/s_propagateNaNExtF80UI.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80UI.c
index 2c063e128d..cc3f0f42c5 100644
--- a/deps/SoftFloat-3d/source/8086/s_propagateNaNExtF80UI.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNExtF80UI.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
@@ -42,9 +42,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "softfloat.h"
/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating `uiA64' and
-| `uiA0' as an 80-bit extended floating-point value, and likewise interpreting
-| the unsigned integer formed from concatenating `uiB64' and `uiB0' as another
+| Interpreting the unsigned integer formed from concatenating 'uiA64' and
+| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
+| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
| 80-bit extended floating-point value, and assuming at least on of these
| floating-point values is a NaN, returns the bit pattern of the combined NaN
| result. If either original floating-point value is a signaling NaN, the
@@ -90,8 +90,8 @@ struct uint128
uiMagB64 = uiB64 & 0x7FFF;
if ( uiMagA64 < uiMagB64 ) goto returnB;
if ( uiMagB64 < uiMagA64 ) goto returnA;
- if ( uiNonsigA0 < uiNonsigB0 ) goto returnB;
- if ( uiNonsigB0 < uiNonsigA0 ) goto returnA;
+ if ( uiA0 < uiB0 ) goto returnB;
+ if ( uiB0 < uiA0 ) goto returnA;
if ( uiA64 < uiB64 ) goto returnA;
returnB:
uiZ.v64 = uiB64;
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNF128M.c b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNF128M.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128M.c
index d432c3318f..aa903bf809 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNF128M.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNF128UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128UI.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNF128UI.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128UI.c
index 948bb32b0c..1c1c2f4a09 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNF128UI.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF128UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNF16UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF16UI.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNF16UI.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF16UI.c
index 78f7146df6..4e87ff41f8 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNF16UI.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF16UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNF32UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF32UI.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNF32UI.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF32UI.c
index bef013c005..e1a8755250 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNF32UI.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF32UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNF64UI.c b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF64UI.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNF64UI.c
rename to deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF64UI.c
index bd69513136..1af349f3e3 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNF64UI.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/s_propagateNaNF64UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/softfloat_raiseFlags.c b/deps/SoftFloat-3e/source/8086-SSE/softfloat_raiseFlags.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/softfloat_raiseFlags.c
rename to deps/SoftFloat-3e/source/8086-SSE/softfloat_raiseFlags.c
index 5da372882d..3115306bee 100644
--- a/deps/SoftFloat-3d/source/8086/softfloat_raiseFlags.c
+++ b/deps/SoftFloat-3e/source/8086-SSE/softfloat_raiseFlags.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/specialize.h b/deps/SoftFloat-3e/source/8086-SSE/specialize.h
similarity index 79%
rename from deps/SoftFloat-3d/source/8086-SSE/specialize.h
rename to deps/SoftFloat-3e/source/8086-SSE/specialize.h
index e403193dc7..5fe119a1e1 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/specialize.h
+++ b/deps/SoftFloat-3e/source/8086-SSE/specialize.h
@@ -2,10 +2,10 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California. All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2018 The Regents of the
+University of California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
@@ -39,10 +39,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include
#include
-#include "softfloat_types.h"
+#include "primitiveTypes.h"
+#include "softfloat.h"
/*----------------------------------------------------------------------------
-| Default value for `softfloat_detectTininess'.
+| Default value for 'softfloat_detectTininess'.
*----------------------------------------------------------------------------*/
#define init_detectTininess softfloat_tininess_afterRounding
@@ -51,22 +52,22 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
| invalid exception.
*----------------------------------------------------------------------------*/
#define ui32_fromPosOverflow 0xFFFFFFFF
-#define ui32_fromNegOverflow 0
+#define ui32_fromNegOverflow 0xFFFFFFFF
#define ui32_fromNaN 0xFFFFFFFF
-#define i32_fromPosOverflow 0x7FFFFFFF
+#define i32_fromPosOverflow (-0x7FFFFFFF - 1)
#define i32_fromNegOverflow (-0x7FFFFFFF - 1)
-#define i32_fromNaN 0x7FFFFFFF
+#define i32_fromNaN (-0x7FFFFFFF - 1)
/*----------------------------------------------------------------------------
| The values to return on conversions to 64-bit integer formats that raise an
| invalid exception.
*----------------------------------------------------------------------------*/
#define ui64_fromPosOverflow UINT64_C( 0xFFFFFFFFFFFFFFFF )
-#define ui64_fromNegOverflow 0
+#define ui64_fromNegOverflow UINT64_C( 0xFFFFFFFFFFFFFFFF )
#define ui64_fromNaN UINT64_C( 0xFFFFFFFFFFFFFFFF )
-#define i64_fromPosOverflow UINT64_C( 0x7FFFFFFFFFFFFFFF )
-#define i64_fromNegOverflow (-UINT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
-#define i64_fromNaN UINT64_C( 0x7FFFFFFFFFFFFFFF )
+#define i64_fromPosOverflow (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+#define i64_fromNegOverflow (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+#define i64_fromNaN (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
/*----------------------------------------------------------------------------
| "Common NaN" structure, used to transfer NaN representations from one format
@@ -87,30 +88,30 @@ struct commonNaN {
#define defaultNaNF16UI 0xFE00
/*----------------------------------------------------------------------------
-| Returns true when 16-bit unsigned integer `uiA' has the bit pattern of a
+| Returns true when 16-bit unsigned integer 'uiA' has the bit pattern of a
| 16-bit floating-point signaling NaN.
| Note: This macro evaluates its argument more than once.
*----------------------------------------------------------------------------*/
#define softfloat_isSigNaNF16UI( uiA ) ((((uiA) & 0x7E00) == 0x7C00) && ((uiA) & 0x01FF))
/*----------------------------------------------------------------------------
-| Assuming `uiA' has the bit pattern of a 16-bit floating-point NaN, converts
+| Assuming 'uiA' has the bit pattern of a 16-bit floating-point NaN, converts
| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
| exception is raised.
*----------------------------------------------------------------------------*/
void softfloat_f16UIToCommonNaN( uint_fast16_t uiA, struct commonNaN *zPtr );
/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 16-bit floating-point
+| Converts the common NaN pointed to by 'aPtr' into a 16-bit floating-point
| NaN, and returns the bit pattern of this value as an unsigned integer.
*----------------------------------------------------------------------------*/
uint_fast16_t softfloat_commonNaNToF16UI( const struct commonNaN *aPtr );
/*----------------------------------------------------------------------------
-| Interpreting `uiA' and `uiB' as the bit patterns of two 16-bit floating-
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 16-bit floating-
| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either `uiA' or `uiB' has the pattern of a
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
| signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/
uint_fast16_t
@@ -122,30 +123,30 @@ uint_fast16_t
#define defaultNaNF32UI 0xFFC00000
/*----------------------------------------------------------------------------
-| Returns true when 32-bit unsigned integer `uiA' has the bit pattern of a
+| Returns true when 32-bit unsigned integer 'uiA' has the bit pattern of a
| 32-bit floating-point signaling NaN.
| Note: This macro evaluates its argument more than once.
*----------------------------------------------------------------------------*/
#define softfloat_isSigNaNF32UI( uiA ) ((((uiA) & 0x7FC00000) == 0x7F800000) && ((uiA) & 0x003FFFFF))
/*----------------------------------------------------------------------------
-| Assuming `uiA' has the bit pattern of a 32-bit floating-point NaN, converts
+| Assuming 'uiA' has the bit pattern of a 32-bit floating-point NaN, converts
| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
| exception is raised.
*----------------------------------------------------------------------------*/
void softfloat_f32UIToCommonNaN( uint_fast32_t uiA, struct commonNaN *zPtr );
/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 32-bit floating-point
+| Converts the common NaN pointed to by 'aPtr' into a 32-bit floating-point
| NaN, and returns the bit pattern of this value as an unsigned integer.
*----------------------------------------------------------------------------*/
uint_fast32_t softfloat_commonNaNToF32UI( const struct commonNaN *aPtr );
/*----------------------------------------------------------------------------
-| Interpreting `uiA' and `uiB' as the bit patterns of two 32-bit floating-
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 32-bit floating-
| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either `uiA' or `uiB' has the pattern of a
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
| signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/
uint_fast32_t
@@ -157,30 +158,30 @@ uint_fast32_t
#define defaultNaNF64UI UINT64_C( 0xFFF8000000000000 )
/*----------------------------------------------------------------------------
-| Returns true when 64-bit unsigned integer `uiA' has the bit pattern of a
+| Returns true when 64-bit unsigned integer 'uiA' has the bit pattern of a
| 64-bit floating-point signaling NaN.
| Note: This macro evaluates its argument more than once.
*----------------------------------------------------------------------------*/
#define softfloat_isSigNaNF64UI( uiA ) ((((uiA) & UINT64_C( 0x7FF8000000000000 )) == UINT64_C( 0x7FF0000000000000 )) && ((uiA) & UINT64_C( 0x0007FFFFFFFFFFFF )))
/*----------------------------------------------------------------------------
-| Assuming `uiA' has the bit pattern of a 64-bit floating-point NaN, converts
+| Assuming 'uiA' has the bit pattern of a 64-bit floating-point NaN, converts
| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
| exception is raised.
*----------------------------------------------------------------------------*/
void softfloat_f64UIToCommonNaN( uint_fast64_t uiA, struct commonNaN *zPtr );
/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 64-bit floating-point
+| Converts the common NaN pointed to by 'aPtr' into a 64-bit floating-point
| NaN, and returns the bit pattern of this value as an unsigned integer.
*----------------------------------------------------------------------------*/
uint_fast64_t softfloat_commonNaNToF64UI( const struct commonNaN *aPtr );
/*----------------------------------------------------------------------------
-| Interpreting `uiA' and `uiB' as the bit patterns of two 64-bit floating-
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 64-bit floating-
| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either `uiA' or `uiB' has the pattern of a
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
| signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/
uint_fast64_t
@@ -194,7 +195,7 @@ uint_fast64_t
/*----------------------------------------------------------------------------
| Returns true when the 80-bit unsigned integer formed from concatenating
-| 16-bit `uiA64' and 64-bit `uiA0' has the bit pattern of an 80-bit extended
+| 16-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of an 80-bit extended
| floating-point signaling NaN.
| Note: This macro evaluates its arguments more than once.
*----------------------------------------------------------------------------*/
@@ -203,15 +204,15 @@ uint_fast64_t
#ifdef SOFTFLOAT_FAST_INT64
/*----------------------------------------------------------------------------
-| The following functions are needed only when `SOFTFLOAT_FAST_INT64' is
+| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is
| defined.
*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating `uiA64' and `uiA0'
+| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
| has the bit pattern of an 80-bit extended floating-point NaN, converts
| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
| exception is raised.
*----------------------------------------------------------------------------*/
void
@@ -219,16 +220,16 @@ void
uint_fast16_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr );
/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into an 80-bit extended
+| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
| floating-point NaN, and returns the bit pattern of this value as an unsigned
| integer.
*----------------------------------------------------------------------------*/
struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr );
/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating `uiA64' and
-| `uiA0' as an 80-bit extended floating-point value, and likewise interpreting
-| the unsigned integer formed from concatenating `uiB64' and `uiB0' as another
+| Interpreting the unsigned integer formed from concatenating 'uiA64' and
+| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
+| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
| 80-bit extended floating-point value, and assuming at least on of these
| floating-point values is a NaN, returns the bit pattern of the combined NaN
| result. If either original floating-point value is a signaling NaN, the
@@ -250,17 +251,17 @@ struct uint128
/*----------------------------------------------------------------------------
| Returns true when the 128-bit unsigned integer formed from concatenating
-| 64-bit `uiA64' and 64-bit `uiA0' has the bit pattern of a 128-bit floating-
+| 64-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of a 128-bit floating-
| point signaling NaN.
| Note: This macro evaluates its arguments more than once.
*----------------------------------------------------------------------------*/
#define softfloat_isSigNaNF128UI( uiA64, uiA0 ) ((((uiA64) & UINT64_C( 0x7FFF800000000000 )) == UINT64_C( 0x7FFF000000000000 )) && ((uiA0) || ((uiA64) & UINT64_C( 0x00007FFFFFFFFFFF ))))
/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating `uiA64' and `uiA0'
+| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
| has the bit pattern of a 128-bit floating-point NaN, converts this NaN to
| the common NaN form, and stores the resulting common NaN at the location
-| pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid exception
+| pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid exception
| is raised.
*----------------------------------------------------------------------------*/
void
@@ -268,15 +269,15 @@ void
uint_fast64_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr );
/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 128-bit floating-point
+| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
| NaN, and returns the bit pattern of this value as an unsigned integer.
*----------------------------------------------------------------------------*/
struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN * );
/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating `uiA64' and
-| `uiA0' as a 128-bit floating-point value, and likewise interpreting the
-| unsigned integer formed from concatenating `uiB64' and `uiB0' as another
+| Interpreting the unsigned integer formed from concatenating 'uiA64' and
+| 'uiA0' as a 128-bit floating-point value, and likewise interpreting the
+| unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
| 128-bit floating-point value, and assuming at least on of these floating-
| point values is a NaN, returns the bit pattern of the combined NaN result.
| If either original floating-point value is a signaling NaN, the invalid
@@ -293,14 +294,14 @@ struct uint128
#else
/*----------------------------------------------------------------------------
-| The following functions are needed only when `SOFTFLOAT_FAST_INT64' is not
+| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is not
| defined.
*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
-| Assuming the 80-bit extended floating-point value pointed to by `aSPtr' is
+| Assuming the 80-bit extended floating-point value pointed to by 'aSPtr' is
| a NaN, converts this NaN to the common NaN form, and stores the resulting
-| common NaN at the location pointed to by `zPtr'. If the NaN is a signaling
+| common NaN at the location pointed to by 'zPtr'. If the NaN is a signaling
| NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/
void
@@ -308,9 +309,9 @@ void
const struct extFloat80M *aSPtr, struct commonNaN *zPtr );
/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into an 80-bit extended
+| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
| floating-point NaN, and stores this NaN at the location pointed to by
-| `zSPtr'.
+| 'zSPtr'.
*----------------------------------------------------------------------------*/
void
softfloat_commonNaNToExtF80M(
@@ -318,8 +319,8 @@ void
/*----------------------------------------------------------------------------
| Assuming at least one of the two 80-bit extended floating-point values
-| pointed to by `aSPtr' and `bSPtr' is a NaN, stores the combined NaN result
-| at the location pointed to by `zSPtr'. If either original floating-point
+| pointed to by 'aSPtr' and 'bSPtr' is a NaN, stores the combined NaN result
+| at the location pointed to by 'zSPtr'. If either original floating-point
| value is a signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/
void
@@ -338,10 +339,10 @@ void
#define defaultNaNF128UI0 0
/*----------------------------------------------------------------------------
-| Assuming the 128-bit floating-point value pointed to by `aWPtr' is a NaN,
+| Assuming the 128-bit floating-point value pointed to by 'aWPtr' is a NaN,
| converts this NaN to the common NaN form, and stores the resulting common
-| NaN at the location pointed to by `zPtr'. If the NaN is a signaling NaN,
-| the invalid exception is raised. Argument `aWPtr' points to an array of
+| NaN at the location pointed to by 'zPtr'. If the NaN is a signaling NaN,
+| the invalid exception is raised. Argument 'aWPtr' points to an array of
| four 32-bit elements that concatenate in the platform's normal endian order
| to form a 128-bit floating-point value.
*----------------------------------------------------------------------------*/
@@ -349,9 +350,9 @@ void
softfloat_f128MToCommonNaN( const uint32_t *aWPtr, struct commonNaN *zPtr );
/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 128-bit floating-point
-| NaN, and stores this NaN at the location pointed to by `zWPtr'. Argument
-| `zWPtr' points to an array of four 32-bit elements that concatenate in the
+| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
+| NaN, and stores this NaN at the location pointed to by 'zWPtr'. Argument
+| 'zWPtr' points to an array of four 32-bit elements that concatenate in the
| platform's normal endian order to form a 128-bit floating-point value.
*----------------------------------------------------------------------------*/
void
@@ -359,10 +360,10 @@ void
/*----------------------------------------------------------------------------
| Assuming at least one of the two 128-bit floating-point values pointed to by
-| `aWPtr' and `bWPtr' is a NaN, stores the combined NaN result at the location
-| pointed to by `zWPtr'. If either original floating-point value is a
-| signaling NaN, the invalid exception is raised. Each of `aWPtr', `bWPtr',
-| and `zWPtr' points to an array of four 32-bit elements that concatenate in
+| 'aWPtr' and 'bWPtr' is a NaN, stores the combined NaN result at the location
+| pointed to by 'zWPtr'. If either original floating-point value is a
+| signaling NaN, the invalid exception is raised. Each of 'aWPtr', 'bWPtr',
+| and 'zWPtr' points to an array of four 32-bit elements that concatenate in
| the platform's normal endian order to form a 128-bit floating-point value.
*----------------------------------------------------------------------------*/
void
diff --git a/deps/SoftFloat-3d/source/8086/extF80M_isSignalingNaN.c b/deps/SoftFloat-3e/source/8086/extF80M_isSignalingNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/extF80M_isSignalingNaN.c
rename to deps/SoftFloat-3e/source/8086/extF80M_isSignalingNaN.c
index 9abc018542..85ee211c28 100644
--- a/deps/SoftFloat-3d/source/8086/extF80M_isSignalingNaN.c
+++ b/deps/SoftFloat-3e/source/8086/extF80M_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/f128M_isSignalingNaN.c b/deps/SoftFloat-3e/source/8086/f128M_isSignalingNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/f128M_isSignalingNaN.c
rename to deps/SoftFloat-3e/source/8086/f128M_isSignalingNaN.c
index 7d7a78af7e..79a7077716 100644
--- a/deps/SoftFloat-3d/source/8086/f128M_isSignalingNaN.c
+++ b/deps/SoftFloat-3e/source/8086/f128M_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToExtF80M.c b/deps/SoftFloat-3e/source/8086/s_commonNaNToExtF80M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToExtF80M.c
rename to deps/SoftFloat-3e/source/8086/s_commonNaNToExtF80M.c
index 80991a95ac..3405b3ba4e 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToExtF80M.c
+++ b/deps/SoftFloat-3e/source/8086/s_commonNaNToExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToExtF80UI.c b/deps/SoftFloat-3e/source/8086/s_commonNaNToExtF80UI.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToExtF80UI.c
rename to deps/SoftFloat-3e/source/8086/s_commonNaNToExtF80UI.c
index 29da88ac87..cb7424f430 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToExtF80UI.c
+++ b/deps/SoftFloat-3e/source/8086/s_commonNaNToExtF80UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_commonNaNToF128M.c b/deps/SoftFloat-3e/source/8086/s_commonNaNToF128M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/s_commonNaNToF128M.c
rename to deps/SoftFloat-3e/source/8086/s_commonNaNToF128M.c
index 6eb1e36615..e7ea802589 100644
--- a/deps/SoftFloat-3d/source/8086/s_commonNaNToF128M.c
+++ b/deps/SoftFloat-3e/source/8086/s_commonNaNToF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_commonNaNToF128UI.c b/deps/SoftFloat-3e/source/8086/s_commonNaNToF128UI.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/s_commonNaNToF128UI.c
rename to deps/SoftFloat-3e/source/8086/s_commonNaNToF128UI.c
index 0036fa5476..7a9423bea2 100644
--- a/deps/SoftFloat-3d/source/8086/s_commonNaNToF128UI.c
+++ b/deps/SoftFloat-3e/source/8086/s_commonNaNToF128UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToF16UI.c b/deps/SoftFloat-3e/source/8086/s_commonNaNToF16UI.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToF16UI.c
rename to deps/SoftFloat-3e/source/8086/s_commonNaNToF16UI.c
index b247a5dd48..d4e458a941 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_commonNaNToF16UI.c
+++ b/deps/SoftFloat-3e/source/8086/s_commonNaNToF16UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_commonNaNToF32UI.c b/deps/SoftFloat-3e/source/8086/s_commonNaNToF32UI.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/s_commonNaNToF32UI.c
rename to deps/SoftFloat-3e/source/8086/s_commonNaNToF32UI.c
index ef117c88ff..ed6c2268f3 100644
--- a/deps/SoftFloat-3d/source/8086/s_commonNaNToF32UI.c
+++ b/deps/SoftFloat-3e/source/8086/s_commonNaNToF32UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_commonNaNToF64UI.c b/deps/SoftFloat-3e/source/8086/s_commonNaNToF64UI.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/s_commonNaNToF64UI.c
rename to deps/SoftFloat-3e/source/8086/s_commonNaNToF64UI.c
index 2ca37f7a9f..1182be3c9c 100644
--- a/deps/SoftFloat-3d/source/8086/s_commonNaNToF64UI.c
+++ b/deps/SoftFloat-3e/source/8086/s_commonNaNToF64UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_extF80MToCommonNaN.c b/deps/SoftFloat-3e/source/8086/s_extF80MToCommonNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_extF80MToCommonNaN.c
rename to deps/SoftFloat-3e/source/8086/s_extF80MToCommonNaN.c
index fa3d637230..00baf35f89 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_extF80MToCommonNaN.c
+++ b/deps/SoftFloat-3e/source/8086/s_extF80MToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_extF80UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086/s_extF80UIToCommonNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_extF80UIToCommonNaN.c
rename to deps/SoftFloat-3e/source/8086/s_extF80UIToCommonNaN.c
index e3b4e66fda..ab6311ef29 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_extF80UIToCommonNaN.c
+++ b/deps/SoftFloat-3e/source/8086/s_extF80UIToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_f128MToCommonNaN.c b/deps/SoftFloat-3e/source/8086/s_f128MToCommonNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_f128MToCommonNaN.c
rename to deps/SoftFloat-3e/source/8086/s_f128MToCommonNaN.c
index 61498d7d00..55ec25b58c 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_f128MToCommonNaN.c
+++ b/deps/SoftFloat-3e/source/8086/s_f128MToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_f128UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086/s_f128UIToCommonNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/s_f128UIToCommonNaN.c
rename to deps/SoftFloat-3e/source/8086/s_f128UIToCommonNaN.c
index bd066090f4..f838f02aaf 100644
--- a/deps/SoftFloat-3d/source/8086/s_f128UIToCommonNaN.c
+++ b/deps/SoftFloat-3e/source/8086/s_f128UIToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_f16UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086/s_f16UIToCommonNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_f16UIToCommonNaN.c
rename to deps/SoftFloat-3e/source/8086/s_f16UIToCommonNaN.c
index fe306e5952..c1e242d236 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_f16UIToCommonNaN.c
+++ b/deps/SoftFloat-3e/source/8086/s_f16UIToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_f32UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086/s_f32UIToCommonNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_f32UIToCommonNaN.c
rename to deps/SoftFloat-3e/source/8086/s_f32UIToCommonNaN.c
index 050f8d122a..b21ba66039 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_f32UIToCommonNaN.c
+++ b/deps/SoftFloat-3e/source/8086/s_f32UIToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_f64UIToCommonNaN.c b/deps/SoftFloat-3e/source/8086/s_f64UIToCommonNaN.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/s_f64UIToCommonNaN.c
rename to deps/SoftFloat-3e/source/8086/s_f64UIToCommonNaN.c
index 6b98ed09e7..6529d2ee5f 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_f64UIToCommonNaN.c
+++ b/deps/SoftFloat-3e/source/8086/s_f64UIToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_propagateNaNExtF80M.c b/deps/SoftFloat-3e/source/8086/s_propagateNaNExtF80M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/s_propagateNaNExtF80M.c
rename to deps/SoftFloat-3e/source/8086/s_propagateNaNExtF80M.c
index f25d940f95..ea1d57a788 100644
--- a/deps/SoftFloat-3d/source/8086/s_propagateNaNExtF80M.c
+++ b/deps/SoftFloat-3e/source/8086/s_propagateNaNExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNExtF80UI.c b/deps/SoftFloat-3e/source/8086/s_propagateNaNExtF80UI.c
similarity index 88%
rename from deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNExtF80UI.c
rename to deps/SoftFloat-3e/source/8086/s_propagateNaNExtF80UI.c
index 2c063e128d..cc3f0f42c5 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/s_propagateNaNExtF80UI.c
+++ b/deps/SoftFloat-3e/source/8086/s_propagateNaNExtF80UI.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
@@ -42,9 +42,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "softfloat.h"
/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating `uiA64' and
-| `uiA0' as an 80-bit extended floating-point value, and likewise interpreting
-| the unsigned integer formed from concatenating `uiB64' and `uiB0' as another
+| Interpreting the unsigned integer formed from concatenating 'uiA64' and
+| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
+| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
| 80-bit extended floating-point value, and assuming at least on of these
| floating-point values is a NaN, returns the bit pattern of the combined NaN
| result. If either original floating-point value is a signaling NaN, the
@@ -90,8 +90,8 @@ struct uint128
uiMagB64 = uiB64 & 0x7FFF;
if ( uiMagA64 < uiMagB64 ) goto returnB;
if ( uiMagB64 < uiMagA64 ) goto returnA;
- if ( uiNonsigA0 < uiNonsigB0 ) goto returnB;
- if ( uiNonsigB0 < uiNonsigA0 ) goto returnA;
+ if ( uiA0 < uiB0 ) goto returnB;
+ if ( uiB0 < uiA0 ) goto returnA;
if ( uiA64 < uiB64 ) goto returnA;
returnB:
uiZ.v64 = uiB64;
diff --git a/deps/SoftFloat-3d/source/8086/s_propagateNaNF128M.c b/deps/SoftFloat-3e/source/8086/s_propagateNaNF128M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086/s_propagateNaNF128M.c
rename to deps/SoftFloat-3e/source/8086/s_propagateNaNF128M.c
index 9782a33fe5..06554fbfe1 100644
--- a/deps/SoftFloat-3d/source/8086/s_propagateNaNF128M.c
+++ b/deps/SoftFloat-3e/source/8086/s_propagateNaNF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/s_propagateNaNF128UI.c b/deps/SoftFloat-3e/source/8086/s_propagateNaNF128UI.c
similarity index 87%
rename from deps/SoftFloat-3d/source/8086/s_propagateNaNF128UI.c
rename to deps/SoftFloat-3e/source/8086/s_propagateNaNF128UI.c
index 46ad0b7ae3..46b9f5f2c2 100644
--- a/deps/SoftFloat-3d/source/8086/s_propagateNaNF128UI.c
+++ b/deps/SoftFloat-3e/source/8086/s_propagateNaNF128UI.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
@@ -42,9 +42,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "softfloat.h"
/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating `uiA64' and
-| `uiA0' as a 128-bit floating-point value, and likewise interpreting the
-| unsigned integer formed from concatenating `uiB64' and `uiB0' as another
+| Interpreting the unsigned integer formed from concatenating 'uiA64' and
+| 'uiA0' as a 128-bit floating-point value, and likewise interpreting the
+| unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
| 128-bit floating-point value, and assuming at least on of these floating-
| point values is a NaN, returns the bit pattern of the combined NaN result.
| If either original floating-point value is a signaling NaN, the invalid
@@ -85,8 +85,8 @@ struct uint128
}
}
returnLargerMag:
- uiMagA64 = uiNonsigA64 & UINT64_C( 0x7FFFFFFFFFFFFFFF );
- uiMagB64 = uiNonsigB64 & UINT64_C( 0x7FFFFFFFFFFFFFFF );
+ uiMagA64 = uiA64 & UINT64_C( 0x7FFFFFFFFFFFFFFF );
+ uiMagB64 = uiB64 & UINT64_C( 0x7FFFFFFFFFFFFFFF );
if ( uiMagA64 < uiMagB64 ) goto returnB;
if ( uiMagB64 < uiMagA64 ) goto returnA;
if ( uiA0 < uiB0 ) goto returnB;
diff --git a/deps/SoftFloat-3d/source/8086/s_propagateNaNF16UI.c b/deps/SoftFloat-3e/source/8086/s_propagateNaNF16UI.c
similarity index 88%
rename from deps/SoftFloat-3d/source/8086/s_propagateNaNF16UI.c
rename to deps/SoftFloat-3e/source/8086/s_propagateNaNF16UI.c
index 31f1c209e0..89cc0fe97e 100644
--- a/deps/SoftFloat-3d/source/8086/s_propagateNaNF16UI.c
+++ b/deps/SoftFloat-3e/source/8086/s_propagateNaNF16UI.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California. All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2018 The Regents of the
+University of California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
@@ -42,9 +42,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "softfloat.h"
/*----------------------------------------------------------------------------
-| Interpreting `uiA' and `uiB' as the bit patterns of two 16-bit floating-
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 16-bit floating-
| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either `uiA' or `uiB' has the pattern of a
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
| signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/
uint_fast16_t
@@ -74,8 +74,8 @@ uint_fast16_t
}
}
returnLargerMag:
- uiMagA = uiNonsigA & 0x7FFF;
- uiMagB = uiNonsigB & 0x7FFF;
+ uiMagA = uiA & 0x7FFF;
+ uiMagB = uiB & 0x7FFF;
if ( uiMagA < uiMagB ) return uiNonsigB;
if ( uiMagB < uiMagA ) return uiNonsigA;
return (uiNonsigA < uiNonsigB) ? uiNonsigA : uiNonsigB;
diff --git a/deps/SoftFloat-3d/source/8086/s_propagateNaNF32UI.c b/deps/SoftFloat-3e/source/8086/s_propagateNaNF32UI.c
similarity index 89%
rename from deps/SoftFloat-3d/source/8086/s_propagateNaNF32UI.c
rename to deps/SoftFloat-3e/source/8086/s_propagateNaNF32UI.c
index 615b54610b..aeb6024acf 100644
--- a/deps/SoftFloat-3d/source/8086/s_propagateNaNF32UI.c
+++ b/deps/SoftFloat-3e/source/8086/s_propagateNaNF32UI.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
@@ -42,9 +42,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "softfloat.h"
/*----------------------------------------------------------------------------
-| Interpreting `uiA' and `uiB' as the bit patterns of two 32-bit floating-
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 32-bit floating-
| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either `uiA' or `uiB' has the pattern of a
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
| signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/
uint_fast32_t
@@ -74,8 +74,8 @@ uint_fast32_t
}
}
returnLargerMag:
- uiMagA = uiNonsigA & 0x7FFFFFFF;
- uiMagB = uiNonsigB & 0x7FFFFFFF;
+ uiMagA = uiA & 0x7FFFFFFF;
+ uiMagB = uiB & 0x7FFFFFFF;
if ( uiMagA < uiMagB ) return uiNonsigB;
if ( uiMagB < uiMagA ) return uiNonsigA;
return (uiNonsigA < uiNonsigB) ? uiNonsigA : uiNonsigB;
diff --git a/deps/SoftFloat-3d/source/8086/s_propagateNaNF64UI.c b/deps/SoftFloat-3e/source/8086/s_propagateNaNF64UI.c
similarity index 88%
rename from deps/SoftFloat-3d/source/8086/s_propagateNaNF64UI.c
rename to deps/SoftFloat-3e/source/8086/s_propagateNaNF64UI.c
index e6b473dd68..dabad40248 100644
--- a/deps/SoftFloat-3d/source/8086/s_propagateNaNF64UI.c
+++ b/deps/SoftFloat-3e/source/8086/s_propagateNaNF64UI.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
@@ -42,9 +42,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "softfloat.h"
/*----------------------------------------------------------------------------
-| Interpreting `uiA' and `uiB' as the bit patterns of two 64-bit floating-
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 64-bit floating-
| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either `uiA' or `uiB' has the pattern of a
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
| signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/
uint_fast64_t
@@ -74,8 +74,8 @@ uint_fast64_t
}
}
returnLargerMag:
- uiMagA = uiNonsigA & UINT64_C( 0x7FFFFFFFFFFFFFFF );
- uiMagB = uiNonsigB & UINT64_C( 0x7FFFFFFFFFFFFFFF );
+ uiMagA = uiA & UINT64_C( 0x7FFFFFFFFFFFFFFF );
+ uiMagB = uiB & UINT64_C( 0x7FFFFFFFFFFFFFFF );
if ( uiMagA < uiMagB ) return uiNonsigB;
if ( uiMagB < uiMagA ) return uiNonsigA;
return (uiNonsigA < uiNonsigB) ? uiNonsigA : uiNonsigB;
diff --git a/deps/SoftFloat-3d/source/8086-SSE/softfloat_raiseFlags.c b/deps/SoftFloat-3e/source/8086/softfloat_raiseFlags.c
similarity index 96%
rename from deps/SoftFloat-3d/source/8086-SSE/softfloat_raiseFlags.c
rename to deps/SoftFloat-3e/source/8086/softfloat_raiseFlags.c
index 5da372882d..3115306bee 100644
--- a/deps/SoftFloat-3d/source/8086-SSE/softfloat_raiseFlags.c
+++ b/deps/SoftFloat-3e/source/8086/softfloat_raiseFlags.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/8086/specialize.h b/deps/SoftFloat-3e/source/8086/specialize.h
similarity index 79%
rename from deps/SoftFloat-3d/source/8086/specialize.h
rename to deps/SoftFloat-3e/source/8086/specialize.h
index e403193dc7..5fe119a1e1 100644
--- a/deps/SoftFloat-3d/source/8086/specialize.h
+++ b/deps/SoftFloat-3e/source/8086/specialize.h
@@ -2,10 +2,10 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California. All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2018 The Regents of the
+University of California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
@@ -39,10 +39,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include
#include
-#include "softfloat_types.h"
+#include "primitiveTypes.h"
+#include "softfloat.h"
/*----------------------------------------------------------------------------
-| Default value for `softfloat_detectTininess'.
+| Default value for 'softfloat_detectTininess'.
*----------------------------------------------------------------------------*/
#define init_detectTininess softfloat_tininess_afterRounding
@@ -51,22 +52,22 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
| invalid exception.
*----------------------------------------------------------------------------*/
#define ui32_fromPosOverflow 0xFFFFFFFF
-#define ui32_fromNegOverflow 0
+#define ui32_fromNegOverflow 0xFFFFFFFF
#define ui32_fromNaN 0xFFFFFFFF
-#define i32_fromPosOverflow 0x7FFFFFFF
+#define i32_fromPosOverflow (-0x7FFFFFFF - 1)
#define i32_fromNegOverflow (-0x7FFFFFFF - 1)
-#define i32_fromNaN 0x7FFFFFFF
+#define i32_fromNaN (-0x7FFFFFFF - 1)
/*----------------------------------------------------------------------------
| The values to return on conversions to 64-bit integer formats that raise an
| invalid exception.
*----------------------------------------------------------------------------*/
#define ui64_fromPosOverflow UINT64_C( 0xFFFFFFFFFFFFFFFF )
-#define ui64_fromNegOverflow 0
+#define ui64_fromNegOverflow UINT64_C( 0xFFFFFFFFFFFFFFFF )
#define ui64_fromNaN UINT64_C( 0xFFFFFFFFFFFFFFFF )
-#define i64_fromPosOverflow UINT64_C( 0x7FFFFFFFFFFFFFFF )
-#define i64_fromNegOverflow (-UINT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
-#define i64_fromNaN UINT64_C( 0x7FFFFFFFFFFFFFFF )
+#define i64_fromPosOverflow (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+#define i64_fromNegOverflow (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+#define i64_fromNaN (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
/*----------------------------------------------------------------------------
| "Common NaN" structure, used to transfer NaN representations from one format
@@ -87,30 +88,30 @@ struct commonNaN {
#define defaultNaNF16UI 0xFE00
/*----------------------------------------------------------------------------
-| Returns true when 16-bit unsigned integer `uiA' has the bit pattern of a
+| Returns true when 16-bit unsigned integer 'uiA' has the bit pattern of a
| 16-bit floating-point signaling NaN.
| Note: This macro evaluates its argument more than once.
*----------------------------------------------------------------------------*/
#define softfloat_isSigNaNF16UI( uiA ) ((((uiA) & 0x7E00) == 0x7C00) && ((uiA) & 0x01FF))
/*----------------------------------------------------------------------------
-| Assuming `uiA' has the bit pattern of a 16-bit floating-point NaN, converts
+| Assuming 'uiA' has the bit pattern of a 16-bit floating-point NaN, converts
| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
| exception is raised.
*----------------------------------------------------------------------------*/
void softfloat_f16UIToCommonNaN( uint_fast16_t uiA, struct commonNaN *zPtr );
/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 16-bit floating-point
+| Converts the common NaN pointed to by 'aPtr' into a 16-bit floating-point
| NaN, and returns the bit pattern of this value as an unsigned integer.
*----------------------------------------------------------------------------*/
uint_fast16_t softfloat_commonNaNToF16UI( const struct commonNaN *aPtr );
/*----------------------------------------------------------------------------
-| Interpreting `uiA' and `uiB' as the bit patterns of two 16-bit floating-
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 16-bit floating-
| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either `uiA' or `uiB' has the pattern of a
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
| signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/
uint_fast16_t
@@ -122,30 +123,30 @@ uint_fast16_t
#define defaultNaNF32UI 0xFFC00000
/*----------------------------------------------------------------------------
-| Returns true when 32-bit unsigned integer `uiA' has the bit pattern of a
+| Returns true when 32-bit unsigned integer 'uiA' has the bit pattern of a
| 32-bit floating-point signaling NaN.
| Note: This macro evaluates its argument more than once.
*----------------------------------------------------------------------------*/
#define softfloat_isSigNaNF32UI( uiA ) ((((uiA) & 0x7FC00000) == 0x7F800000) && ((uiA) & 0x003FFFFF))
/*----------------------------------------------------------------------------
-| Assuming `uiA' has the bit pattern of a 32-bit floating-point NaN, converts
+| Assuming 'uiA' has the bit pattern of a 32-bit floating-point NaN, converts
| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
| exception is raised.
*----------------------------------------------------------------------------*/
void softfloat_f32UIToCommonNaN( uint_fast32_t uiA, struct commonNaN *zPtr );
/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 32-bit floating-point
+| Converts the common NaN pointed to by 'aPtr' into a 32-bit floating-point
| NaN, and returns the bit pattern of this value as an unsigned integer.
*----------------------------------------------------------------------------*/
uint_fast32_t softfloat_commonNaNToF32UI( const struct commonNaN *aPtr );
/*----------------------------------------------------------------------------
-| Interpreting `uiA' and `uiB' as the bit patterns of two 32-bit floating-
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 32-bit floating-
| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either `uiA' or `uiB' has the pattern of a
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
| signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/
uint_fast32_t
@@ -157,30 +158,30 @@ uint_fast32_t
#define defaultNaNF64UI UINT64_C( 0xFFF8000000000000 )
/*----------------------------------------------------------------------------
-| Returns true when 64-bit unsigned integer `uiA' has the bit pattern of a
+| Returns true when 64-bit unsigned integer 'uiA' has the bit pattern of a
| 64-bit floating-point signaling NaN.
| Note: This macro evaluates its argument more than once.
*----------------------------------------------------------------------------*/
#define softfloat_isSigNaNF64UI( uiA ) ((((uiA) & UINT64_C( 0x7FF8000000000000 )) == UINT64_C( 0x7FF0000000000000 )) && ((uiA) & UINT64_C( 0x0007FFFFFFFFFFFF )))
/*----------------------------------------------------------------------------
-| Assuming `uiA' has the bit pattern of a 64-bit floating-point NaN, converts
+| Assuming 'uiA' has the bit pattern of a 64-bit floating-point NaN, converts
| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
| exception is raised.
*----------------------------------------------------------------------------*/
void softfloat_f64UIToCommonNaN( uint_fast64_t uiA, struct commonNaN *zPtr );
/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 64-bit floating-point
+| Converts the common NaN pointed to by 'aPtr' into a 64-bit floating-point
| NaN, and returns the bit pattern of this value as an unsigned integer.
*----------------------------------------------------------------------------*/
uint_fast64_t softfloat_commonNaNToF64UI( const struct commonNaN *aPtr );
/*----------------------------------------------------------------------------
-| Interpreting `uiA' and `uiB' as the bit patterns of two 64-bit floating-
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 64-bit floating-
| point values, at least one of which is a NaN, returns the bit pattern of
-| the combined NaN result. If either `uiA' or `uiB' has the pattern of a
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
| signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/
uint_fast64_t
@@ -194,7 +195,7 @@ uint_fast64_t
/*----------------------------------------------------------------------------
| Returns true when the 80-bit unsigned integer formed from concatenating
-| 16-bit `uiA64' and 64-bit `uiA0' has the bit pattern of an 80-bit extended
+| 16-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of an 80-bit extended
| floating-point signaling NaN.
| Note: This macro evaluates its arguments more than once.
*----------------------------------------------------------------------------*/
@@ -203,15 +204,15 @@ uint_fast64_t
#ifdef SOFTFLOAT_FAST_INT64
/*----------------------------------------------------------------------------
-| The following functions are needed only when `SOFTFLOAT_FAST_INT64' is
+| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is
| defined.
*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating `uiA64' and `uiA0'
+| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
| has the bit pattern of an 80-bit extended floating-point NaN, converts
| this NaN to the common NaN form, and stores the resulting common NaN at the
-| location pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
| exception is raised.
*----------------------------------------------------------------------------*/
void
@@ -219,16 +220,16 @@ void
uint_fast16_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr );
/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into an 80-bit extended
+| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
| floating-point NaN, and returns the bit pattern of this value as an unsigned
| integer.
*----------------------------------------------------------------------------*/
struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr );
/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating `uiA64' and
-| `uiA0' as an 80-bit extended floating-point value, and likewise interpreting
-| the unsigned integer formed from concatenating `uiB64' and `uiB0' as another
+| Interpreting the unsigned integer formed from concatenating 'uiA64' and
+| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
+| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
| 80-bit extended floating-point value, and assuming at least on of these
| floating-point values is a NaN, returns the bit pattern of the combined NaN
| result. If either original floating-point value is a signaling NaN, the
@@ -250,17 +251,17 @@ struct uint128
/*----------------------------------------------------------------------------
| Returns true when the 128-bit unsigned integer formed from concatenating
-| 64-bit `uiA64' and 64-bit `uiA0' has the bit pattern of a 128-bit floating-
+| 64-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of a 128-bit floating-
| point signaling NaN.
| Note: This macro evaluates its arguments more than once.
*----------------------------------------------------------------------------*/
#define softfloat_isSigNaNF128UI( uiA64, uiA0 ) ((((uiA64) & UINT64_C( 0x7FFF800000000000 )) == UINT64_C( 0x7FFF000000000000 )) && ((uiA0) || ((uiA64) & UINT64_C( 0x00007FFFFFFFFFFF ))))
/*----------------------------------------------------------------------------
-| Assuming the unsigned integer formed from concatenating `uiA64' and `uiA0'
+| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
| has the bit pattern of a 128-bit floating-point NaN, converts this NaN to
| the common NaN form, and stores the resulting common NaN at the location
-| pointed to by `zPtr'. If the NaN is a signaling NaN, the invalid exception
+| pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid exception
| is raised.
*----------------------------------------------------------------------------*/
void
@@ -268,15 +269,15 @@ void
uint_fast64_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr );
/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 128-bit floating-point
+| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
| NaN, and returns the bit pattern of this value as an unsigned integer.
*----------------------------------------------------------------------------*/
struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN * );
/*----------------------------------------------------------------------------
-| Interpreting the unsigned integer formed from concatenating `uiA64' and
-| `uiA0' as a 128-bit floating-point value, and likewise interpreting the
-| unsigned integer formed from concatenating `uiB64' and `uiB0' as another
+| Interpreting the unsigned integer formed from concatenating 'uiA64' and
+| 'uiA0' as a 128-bit floating-point value, and likewise interpreting the
+| unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
| 128-bit floating-point value, and assuming at least on of these floating-
| point values is a NaN, returns the bit pattern of the combined NaN result.
| If either original floating-point value is a signaling NaN, the invalid
@@ -293,14 +294,14 @@ struct uint128
#else
/*----------------------------------------------------------------------------
-| The following functions are needed only when `SOFTFLOAT_FAST_INT64' is not
+| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is not
| defined.
*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
-| Assuming the 80-bit extended floating-point value pointed to by `aSPtr' is
+| Assuming the 80-bit extended floating-point value pointed to by 'aSPtr' is
| a NaN, converts this NaN to the common NaN form, and stores the resulting
-| common NaN at the location pointed to by `zPtr'. If the NaN is a signaling
+| common NaN at the location pointed to by 'zPtr'. If the NaN is a signaling
| NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/
void
@@ -308,9 +309,9 @@ void
const struct extFloat80M *aSPtr, struct commonNaN *zPtr );
/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into an 80-bit extended
+| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
| floating-point NaN, and stores this NaN at the location pointed to by
-| `zSPtr'.
+| 'zSPtr'.
*----------------------------------------------------------------------------*/
void
softfloat_commonNaNToExtF80M(
@@ -318,8 +319,8 @@ void
/*----------------------------------------------------------------------------
| Assuming at least one of the two 80-bit extended floating-point values
-| pointed to by `aSPtr' and `bSPtr' is a NaN, stores the combined NaN result
-| at the location pointed to by `zSPtr'. If either original floating-point
+| pointed to by 'aSPtr' and 'bSPtr' is a NaN, stores the combined NaN result
+| at the location pointed to by 'zSPtr'. If either original floating-point
| value is a signaling NaN, the invalid exception is raised.
*----------------------------------------------------------------------------*/
void
@@ -338,10 +339,10 @@ void
#define defaultNaNF128UI0 0
/*----------------------------------------------------------------------------
-| Assuming the 128-bit floating-point value pointed to by `aWPtr' is a NaN,
+| Assuming the 128-bit floating-point value pointed to by 'aWPtr' is a NaN,
| converts this NaN to the common NaN form, and stores the resulting common
-| NaN at the location pointed to by `zPtr'. If the NaN is a signaling NaN,
-| the invalid exception is raised. Argument `aWPtr' points to an array of
+| NaN at the location pointed to by 'zPtr'. If the NaN is a signaling NaN,
+| the invalid exception is raised. Argument 'aWPtr' points to an array of
| four 32-bit elements that concatenate in the platform's normal endian order
| to form a 128-bit floating-point value.
*----------------------------------------------------------------------------*/
@@ -349,9 +350,9 @@ void
softfloat_f128MToCommonNaN( const uint32_t *aWPtr, struct commonNaN *zPtr );
/*----------------------------------------------------------------------------
-| Converts the common NaN pointed to by `aPtr' into a 128-bit floating-point
-| NaN, and stores this NaN at the location pointed to by `zWPtr'. Argument
-| `zWPtr' points to an array of four 32-bit elements that concatenate in the
+| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
+| NaN, and stores this NaN at the location pointed to by 'zWPtr'. Argument
+| 'zWPtr' points to an array of four 32-bit elements that concatenate in the
| platform's normal endian order to form a 128-bit floating-point value.
*----------------------------------------------------------------------------*/
void
@@ -359,10 +360,10 @@ void
/*----------------------------------------------------------------------------
| Assuming at least one of the two 128-bit floating-point values pointed to by
-| `aWPtr' and `bWPtr' is a NaN, stores the combined NaN result at the location
-| pointed to by `zWPtr'. If either original floating-point value is a
-| signaling NaN, the invalid exception is raised. Each of `aWPtr', `bWPtr',
-| and `zWPtr' points to an array of four 32-bit elements that concatenate in
+| 'aWPtr' and 'bWPtr' is a NaN, stores the combined NaN result at the location
+| pointed to by 'zWPtr'. If either original floating-point value is a
+| signaling NaN, the invalid exception is raised. Each of 'aWPtr', 'bWPtr',
+| and 'zWPtr' points to an array of four 32-bit elements that concatenate in
| the platform's normal endian order to form a 128-bit floating-point value.
*----------------------------------------------------------------------------*/
void
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/extF80M_isSignalingNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/extF80M_isSignalingNaN.c
new file mode 100644
index 0000000000..85ee211c28
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/extF80M_isSignalingNaN.c
@@ -0,0 +1,57 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include
+#include "platform.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
+bool extF80M_isSignalingNaN( const extFloat80_t *aPtr )
+{
+ const struct extFloat80M *aSPtr;
+ uint64_t uiA0;
+
+ aSPtr = (const struct extFloat80M *) aPtr;
+ if ( (aSPtr->signExp & 0x7FFF) != 0x7FFF ) return false;
+ uiA0 = aSPtr->signif;
+ return
+ ! (uiA0 & UINT64_C( 0x4000000000000000 ))
+ && (uiA0 & UINT64_C( 0x3FFFFFFFFFFFFFFF));
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/f128M_isSignalingNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/f128M_isSignalingNaN.c
new file mode 100644
index 0000000000..79a7077716
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/f128M_isSignalingNaN.c
@@ -0,0 +1,60 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include
+#include "platform.h"
+#include "primitives.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
+bool f128M_isSignalingNaN( const float128_t *aPtr )
+{
+ const uint32_t *aWPtr;
+ uint32_t uiA96;
+
+ aWPtr = (const uint32_t *) aPtr;
+ uiA96 = aWPtr[indexWordHi( 4 )];
+ if ( (uiA96 & 0x7FFF8000) != 0x7FFF0000 ) return false;
+ return
+ ((uiA96 & 0x00007FFF) != 0)
+ || ((aWPtr[indexWord( 4, 2 )] | aWPtr[indexWord( 4, 1 )]
+ | aWPtr[indexWord( 4, 0 )])
+ != 0);
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80M.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80M.c
new file mode 100644
index 0000000000..54a50dc357
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80M.c
@@ -0,0 +1,57 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include "platform.h"
+#include "softfloat_types.h"
+
+#define softfloat_commonNaNToExtF80M softfloat_commonNaNToExtF80M
+#include "specialize.h"
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
+| floating-point NaN, and stores this NaN at the location pointed to by
+| 'zSPtr'.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_commonNaNToExtF80M(
+ const struct commonNaN *aPtr, struct extFloat80M *zSPtr )
+{
+
+ zSPtr->signExp = defaultNaNExtF80UI64;
+ zSPtr->signif = defaultNaNExtF80UI0;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80UI.c
new file mode 100644
index 0000000000..5b698f6645
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToExtF80UI.c
@@ -0,0 +1,57 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include "platform.h"
+#include "primitiveTypes.h"
+
+#define softfloat_commonNaNToExtF80UI softfloat_commonNaNToExtF80UI
+#include "specialize.h"
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
+| floating-point NaN, and returns the bit pattern of this value as an unsigned
+| integer.
+*----------------------------------------------------------------------------*/
+struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr )
+{
+ struct uint128 uiZ;
+
+ uiZ.v64 = defaultNaNExtF80UI64;
+ uiZ.v0 = defaultNaNExtF80UI0;
+ return uiZ;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128M.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128M.c
new file mode 100644
index 0000000000..b22baa816b
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128M.c
@@ -0,0 +1,60 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "primitiveTypes.h"
+
+#define softfloat_commonNaNToF128M softfloat_commonNaNToF128M
+#include "specialize.h"
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
+| NaN, and stores this NaN at the location pointed to by 'zWPtr'. Argument
+| 'zWPtr' points to an array of four 32-bit elements that concatenate in the
+| platform's normal endian order to form a 128-bit floating-point value.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr )
+{
+
+ zWPtr[indexWord( 4, 3 )] = defaultNaNF128UI96;
+ zWPtr[indexWord( 4, 2 )] = defaultNaNF128UI64;
+ zWPtr[indexWord( 4, 1 )] = defaultNaNF128UI32;
+ zWPtr[indexWord( 4, 0 )] = defaultNaNF128UI0;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128UI.c
new file mode 100644
index 0000000000..70f0cf1c6c
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF128UI.c
@@ -0,0 +1,56 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include "platform.h"
+#include "primitiveTypes.h"
+
+#define softfloat_commonNaNToF128UI softfloat_commonNaNToF128UI
+#include "specialize.h"
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
+| NaN, and returns the bit pattern of this value as an unsigned integer.
+*----------------------------------------------------------------------------*/
+struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN *aPtr )
+{
+ struct uint128 uiZ;
+
+ uiZ.v64 = defaultNaNF128UI64;
+ uiZ.v0 = defaultNaNF128UI0;
+ return uiZ;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF16UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF16UI.c
new file mode 100644
index 0000000000..7c7d5c82e9
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF16UI.c
@@ -0,0 +1,5 @@
+
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF32UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF32UI.c
new file mode 100644
index 0000000000..7c7d5c82e9
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF32UI.c
@@ -0,0 +1,5 @@
+
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF64UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF64UI.c
new file mode 100644
index 0000000000..7c7d5c82e9
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_commonNaNToF64UI.c
@@ -0,0 +1,5 @@
+
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80MToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80MToCommonNaN.c
new file mode 100644
index 0000000000..7c7d5c82e9
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80MToCommonNaN.c
@@ -0,0 +1,5 @@
+
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80UIToCommonNaN.c
new file mode 100644
index 0000000000..7c7d5c82e9
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_extF80UIToCommonNaN.c
@@ -0,0 +1,5 @@
+
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128MToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128MToCommonNaN.c
new file mode 100644
index 0000000000..7c7d5c82e9
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128MToCommonNaN.c
@@ -0,0 +1,5 @@
+
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128UIToCommonNaN.c
new file mode 100644
index 0000000000..7c7d5c82e9
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f128UIToCommonNaN.c
@@ -0,0 +1,5 @@
+
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f16UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f16UIToCommonNaN.c
new file mode 100644
index 0000000000..7c7d5c82e9
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f16UIToCommonNaN.c
@@ -0,0 +1,5 @@
+
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f32UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f32UIToCommonNaN.c
new file mode 100644
index 0000000000..7c7d5c82e9
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f32UIToCommonNaN.c
@@ -0,0 +1,5 @@
+
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f64UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f64UIToCommonNaN.c
new file mode 100644
index 0000000000..7c7d5c82e9
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_f64UIToCommonNaN.c
@@ -0,0 +1,5 @@
+
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80M.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80M.c
new file mode 100644
index 0000000000..1c6510c7e3
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80M.c
@@ -0,0 +1,74 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "primitiveTypes.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Assuming at least one of the two 80-bit extended floating-point values
+| pointed to by 'aSPtr' and 'bSPtr' is a NaN, stores the combined NaN result
+| at the location pointed to by 'zSPtr'. If either original floating-point
+| value is a signaling NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_propagateNaNExtF80M(
+ const struct extFloat80M *aSPtr,
+ const struct extFloat80M *bSPtr,
+ struct extFloat80M *zSPtr
+ )
+{
+ uint_fast16_t ui64;
+ uint_fast64_t ui0;
+
+ ui64 = aSPtr->signExp;
+ ui0 = aSPtr->signif;
+ if (
+ softfloat_isSigNaNExtF80UI( ui64, ui0 )
+ || (bSPtr
+ && (ui64 = bSPtr->signExp,
+ ui0 = bSPtr->signif,
+ softfloat_isSigNaNExtF80UI( ui64, ui0 )))
+ ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ }
+ zSPtr->signExp = defaultNaNExtF80UI64;
+ zSPtr->signif = defaultNaNExtF80UI0;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80UI.c
new file mode 100644
index 0000000000..e1bb1555aa
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNExtF80UI.c
@@ -0,0 +1,73 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "primitiveTypes.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Interpreting the unsigned integer formed from concatenating 'uiA64' and
+| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
+| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
+| 80-bit extended floating-point value, and assuming at least on of these
+| floating-point values is a NaN, returns the bit pattern of the combined NaN
+| result. If either original floating-point value is a signaling NaN, the
+| invalid exception is raised.
+*----------------------------------------------------------------------------*/
+struct uint128
+ softfloat_propagateNaNExtF80UI(
+ uint_fast16_t uiA64,
+ uint_fast64_t uiA0,
+ uint_fast16_t uiB64,
+ uint_fast64_t uiB0
+ )
+{
+ struct uint128 uiZ;
+
+ if (
+ softfloat_isSigNaNExtF80UI( uiA64, uiA0 )
+ || softfloat_isSigNaNExtF80UI( uiB64, uiB0 )
+ ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ }
+ uiZ.v64 = defaultNaNExtF80UI64;
+ uiZ.v0 = defaultNaNExtF80UI0;
+ return uiZ;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128M.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128M.c
new file mode 100644
index 0000000000..9bddee955d
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128M.c
@@ -0,0 +1,68 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "primitiveTypes.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Assuming at least one of the two 128-bit floating-point values pointed to by
+| 'aWPtr' and 'bWPtr' is a NaN, stores the combined NaN result at the location
+| pointed to by 'zWPtr'. If either original floating-point value is a
+| signaling NaN, the invalid exception is raised. Each of 'aWPtr', 'bWPtr',
+| and 'zWPtr' points to an array of four 32-bit elements that concatenate in
+| the platform's normal endian order to form a 128-bit floating-point value.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_propagateNaNF128M(
+ const uint32_t *aWPtr, const uint32_t *bWPtr, uint32_t *zWPtr )
+{
+
+ if (
+ f128M_isSignalingNaN( (const float128_t *) aWPtr );
+ || (bWPtr && f128M_isSignalingNaN( (const float128_t *) bWPtr ))
+ ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ }
+ zWPtr[indexWord( 4, 3 )] = defaultNaNF128UI96;
+ zWPtr[indexWord( 4, 2 )] = defaultNaNF128UI64;
+ zWPtr[indexWord( 4, 1 )] = defaultNaNF128UI32;
+ zWPtr[indexWord( 4, 0 )] = defaultNaNF128UI0;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128UI.c
new file mode 100644
index 0000000000..57fddd158a
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF128UI.c
@@ -0,0 +1,73 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "primitiveTypes.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Interpreting the unsigned integer formed from concatenating 'uiA64' and
+| 'uiA0' as a 128-bit floating-point value, and likewise interpreting the
+| unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
+| 128-bit floating-point value, and assuming at least on of these floating-
+| point values is a NaN, returns the bit pattern of the combined NaN result.
+| If either original floating-point value is a signaling NaN, the invalid
+| exception is raised.
+*----------------------------------------------------------------------------*/
+struct uint128
+ softfloat_propagateNaNF128UI(
+ uint_fast64_t uiA64,
+ uint_fast64_t uiA0,
+ uint_fast64_t uiB64,
+ uint_fast64_t uiB0
+ )
+{
+ struct uint128 uiZ;
+
+ if (
+ softfloat_isSigNaNF128UI( uiA64, uiA0 )
+ || softfloat_isSigNaNF128UI( uiB64, uiB0 )
+ ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ }
+ uiZ.v64 = defaultNaNF128UI64;
+ uiZ.v0 = defaultNaNF128UI0;
+ return uiZ;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF16UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF16UI.c
new file mode 100644
index 0000000000..0b08e00396
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF16UI.c
@@ -0,0 +1,58 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+University of California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 16-bit floating-
+| point values, at least one of which is a NaN, returns the bit pattern of
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
+| signaling NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+uint_fast16_t
+ softfloat_propagateNaNF16UI( uint_fast16_t uiA, uint_fast16_t uiB )
+{
+
+ if ( softfloat_isSigNaNF16UI( uiA ) || softfloat_isSigNaNF16UI( uiB ) ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ }
+ return defaultNaNF16UI;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF32UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF32UI.c
new file mode 100644
index 0000000000..cab740358e
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF32UI.c
@@ -0,0 +1,58 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 32-bit floating-
+| point values, at least one of which is a NaN, returns the bit pattern of
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
+| signaling NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+uint_fast32_t
+ softfloat_propagateNaNF32UI( uint_fast32_t uiA, uint_fast32_t uiB )
+{
+
+ if ( softfloat_isSigNaNF32UI( uiA ) || softfloat_isSigNaNF32UI( uiB ) ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ }
+ return defaultNaNF32UI;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF64UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF64UI.c
new file mode 100644
index 0000000000..83b91d3a9d
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/s_propagateNaNF64UI.c
@@ -0,0 +1,58 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 64-bit floating-
+| point values, at least one of which is a NaN, returns the bit pattern of
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
+| signaling NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+uint_fast64_t
+ softfloat_propagateNaNF64UI( uint_fast64_t uiA, uint_fast64_t uiB )
+{
+
+ if ( softfloat_isSigNaNF64UI( uiA ) || softfloat_isSigNaNF64UI( uiB ) ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ }
+ return defaultNaNF64UI;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/softfloat_raiseFlags.c b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/softfloat_raiseFlags.c
new file mode 100644
index 0000000000..61046da3c0
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/softfloat_raiseFlags.c
@@ -0,0 +1,52 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include "platform.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Raises the exceptions specified by 'flags'. Floating-point traps can be
+| defined here if desired. It is currently not possible for such a trap
+| to substitute a result value. If traps are not implemented, this routine
+| should be simply 'softfloat_exceptionFlags |= flags;'.
+*----------------------------------------------------------------------------*/
+void softfloat_raiseFlags( uint_fast8_t flags )
+{
+
+ softfloat_exceptionFlags |= flags;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/specialize.h b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/specialize.h
new file mode 100644
index 0000000000..2c481a2596
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2-defaultNaN/specialize.h
@@ -0,0 +1,407 @@
+
+/*============================================================================
+
+This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
+University of California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#ifndef specialize_h
+#define specialize_h 1
+
+#include
+#include
+#include "primitiveTypes.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Default value for 'softfloat_detectTininess'.
+*----------------------------------------------------------------------------*/
+#define init_detectTininess softfloat_tininess_beforeRounding
+
+/*----------------------------------------------------------------------------
+| The values to return on conversions to 32-bit integer formats that raise an
+| invalid exception.
+*----------------------------------------------------------------------------*/
+#define ui32_fromPosOverflow 0xFFFFFFFF
+#define ui32_fromNegOverflow 0
+#define ui32_fromNaN 0
+#define i32_fromPosOverflow 0x7FFFFFFF
+#define i32_fromNegOverflow (-0x7FFFFFFF - 1)
+#define i32_fromNaN 0
+
+/*----------------------------------------------------------------------------
+| The values to return on conversions to 64-bit integer formats that raise an
+| invalid exception.
+*----------------------------------------------------------------------------*/
+#define ui64_fromPosOverflow UINT64_C( 0xFFFFFFFFFFFFFFFF )
+#define ui64_fromNegOverflow 0
+#define ui64_fromNaN 0
+#define i64_fromPosOverflow INT64_C( 0x7FFFFFFFFFFFFFFF )
+#define i64_fromNegOverflow (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+#define i64_fromNaN 0
+
+/*----------------------------------------------------------------------------
+| "Common NaN" structure, used to transfer NaN representations from one format
+| to another.
+*----------------------------------------------------------------------------*/
+struct commonNaN { char _unused; };
+
+/*----------------------------------------------------------------------------
+| The bit pattern for a default generated 16-bit floating-point NaN.
+*----------------------------------------------------------------------------*/
+#define defaultNaNF16UI 0x7E00
+
+/*----------------------------------------------------------------------------
+| Returns true when 16-bit unsigned integer 'uiA' has the bit pattern of a
+| 16-bit floating-point signaling NaN.
+| Note: This macro evaluates its argument more than once.
+*----------------------------------------------------------------------------*/
+#define softfloat_isSigNaNF16UI( uiA ) ((((uiA) & 0x7E00) == 0x7C00) && ((uiA) & 0x01FF))
+
+/*----------------------------------------------------------------------------
+| Assuming 'uiA' has the bit pattern of a 16-bit floating-point NaN, converts
+| this NaN to the common NaN form, and stores the resulting common NaN at the
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
+| exception is raised.
+*----------------------------------------------------------------------------*/
+#define softfloat_f16UIToCommonNaN( uiA, zPtr ) if ( ! ((uiA) & 0x0200) ) softfloat_raiseFlags( softfloat_flag_invalid )
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 16-bit floating-point
+| NaN, and returns the bit pattern of this value as an unsigned integer.
+*----------------------------------------------------------------------------*/
+#define softfloat_commonNaNToF16UI( aPtr ) ((uint_fast16_t) defaultNaNF16UI)
+
+/*----------------------------------------------------------------------------
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 16-bit floating-
+| point values, at least one of which is a NaN, returns the bit pattern of
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
+| signaling NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+uint_fast16_t
+ softfloat_propagateNaNF16UI( uint_fast16_t uiA, uint_fast16_t uiB );
+
+/*----------------------------------------------------------------------------
+| The bit pattern for a default generated 32-bit floating-point NaN.
+*----------------------------------------------------------------------------*/
+#define defaultNaNF32UI 0x7FC00000
+
+/*----------------------------------------------------------------------------
+| Returns true when 32-bit unsigned integer 'uiA' has the bit pattern of a
+| 32-bit floating-point signaling NaN.
+| Note: This macro evaluates its argument more than once.
+*----------------------------------------------------------------------------*/
+#define softfloat_isSigNaNF32UI( uiA ) ((((uiA) & 0x7FC00000) == 0x7F800000) && ((uiA) & 0x003FFFFF))
+
+/*----------------------------------------------------------------------------
+| Assuming 'uiA' has the bit pattern of a 32-bit floating-point NaN, converts
+| this NaN to the common NaN form, and stores the resulting common NaN at the
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
+| exception is raised.
+*----------------------------------------------------------------------------*/
+#define softfloat_f32UIToCommonNaN( uiA, zPtr ) if ( ! ((uiA) & 0x00400000) ) softfloat_raiseFlags( softfloat_flag_invalid )
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 32-bit floating-point
+| NaN, and returns the bit pattern of this value as an unsigned integer.
+*----------------------------------------------------------------------------*/
+#define softfloat_commonNaNToF32UI( aPtr ) ((uint_fast32_t) defaultNaNF32UI)
+
+/*----------------------------------------------------------------------------
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 32-bit floating-
+| point values, at least one of which is a NaN, returns the bit pattern of
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
+| signaling NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+uint_fast32_t
+ softfloat_propagateNaNF32UI( uint_fast32_t uiA, uint_fast32_t uiB );
+
+/*----------------------------------------------------------------------------
+| The bit pattern for a default generated 64-bit floating-point NaN.
+*----------------------------------------------------------------------------*/
+#define defaultNaNF64UI UINT64_C( 0x7FF8000000000000 )
+
+/*----------------------------------------------------------------------------
+| Returns true when 64-bit unsigned integer 'uiA' has the bit pattern of a
+| 64-bit floating-point signaling NaN.
+| Note: This macro evaluates its argument more than once.
+*----------------------------------------------------------------------------*/
+#define softfloat_isSigNaNF64UI( uiA ) ((((uiA) & UINT64_C( 0x7FF8000000000000 )) == UINT64_C( 0x7FF0000000000000 )) && ((uiA) & UINT64_C( 0x0007FFFFFFFFFFFF )))
+
+/*----------------------------------------------------------------------------
+| Assuming 'uiA' has the bit pattern of a 64-bit floating-point NaN, converts
+| this NaN to the common NaN form, and stores the resulting common NaN at the
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
+| exception is raised.
+*----------------------------------------------------------------------------*/
+#define softfloat_f64UIToCommonNaN( uiA, zPtr ) if ( ! ((uiA) & UINT64_C( 0x0008000000000000 )) ) softfloat_raiseFlags( softfloat_flag_invalid )
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 64-bit floating-point
+| NaN, and returns the bit pattern of this value as an unsigned integer.
+*----------------------------------------------------------------------------*/
+#define softfloat_commonNaNToF64UI( aPtr ) ((uint_fast64_t) defaultNaNF64UI)
+
+/*----------------------------------------------------------------------------
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 64-bit floating-
+| point values, at least one of which is a NaN, returns the bit pattern of
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
+| signaling NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+uint_fast64_t
+ softfloat_propagateNaNF64UI( uint_fast64_t uiA, uint_fast64_t uiB );
+
+/*----------------------------------------------------------------------------
+| The bit pattern for a default generated 80-bit extended floating-point NaN.
+*----------------------------------------------------------------------------*/
+#define defaultNaNExtF80UI64 0x7FFF
+#define defaultNaNExtF80UI0 UINT64_C( 0xC000000000000000 )
+
+/*----------------------------------------------------------------------------
+| Returns true when the 80-bit unsigned integer formed from concatenating
+| 16-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of an 80-bit extended
+| floating-point signaling NaN.
+| Note: This macro evaluates its arguments more than once.
+*----------------------------------------------------------------------------*/
+#define softfloat_isSigNaNExtF80UI( uiA64, uiA0 ) ((((uiA64) & 0x7FFF) == 0x7FFF) && ! ((uiA0) & UINT64_C( 0x4000000000000000 )) && ((uiA0) & UINT64_C( 0x3FFFFFFFFFFFFFFF )))
+
+#ifdef SOFTFLOAT_FAST_INT64
+
+/*----------------------------------------------------------------------------
+| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is
+| defined.
+*----------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
+| has the bit pattern of an 80-bit extended floating-point NaN, converts
+| this NaN to the common NaN form, and stores the resulting common NaN at the
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
+| exception is raised.
+*----------------------------------------------------------------------------*/
+#define softfloat_extF80UIToCommonNaN( uiA64, uiA0, zPtr ) if ( ! ((uiA0) & UINT64_C( 0x4000000000000000 )) ) softfloat_raiseFlags( softfloat_flag_invalid )
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
+| floating-point NaN, and returns the bit pattern of this value as an unsigned
+| integer.
+*----------------------------------------------------------------------------*/
+#if defined INLINE && ! defined softfloat_commonNaNToExtF80UI
+INLINE
+struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr )
+{
+ struct uint128 uiZ;
+ uiZ.v64 = defaultNaNExtF80UI64;
+ uiZ.v0 = defaultNaNExtF80UI0;
+ return uiZ;
+}
+#else
+struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr );
+#endif
+
+/*----------------------------------------------------------------------------
+| Interpreting the unsigned integer formed from concatenating 'uiA64' and
+| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
+| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
+| 80-bit extended floating-point value, and assuming at least on of these
+| floating-point values is a NaN, returns the bit pattern of the combined NaN
+| result. If either original floating-point value is a signaling NaN, the
+| invalid exception is raised.
+*----------------------------------------------------------------------------*/
+struct uint128
+ softfloat_propagateNaNExtF80UI(
+ uint_fast16_t uiA64,
+ uint_fast64_t uiA0,
+ uint_fast16_t uiB64,
+ uint_fast64_t uiB0
+ );
+
+/*----------------------------------------------------------------------------
+| The bit pattern for a default generated 128-bit floating-point NaN.
+*----------------------------------------------------------------------------*/
+#define defaultNaNF128UI64 UINT64_C( 0x7FFF800000000000 )
+#define defaultNaNF128UI0 UINT64_C( 0 )
+
+/*----------------------------------------------------------------------------
+| Returns true when the 128-bit unsigned integer formed from concatenating
+| 64-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of a 128-bit floating-
+| point signaling NaN.
+| Note: This macro evaluates its arguments more than once.
+*----------------------------------------------------------------------------*/
+#define softfloat_isSigNaNF128UI( uiA64, uiA0 ) ((((uiA64) & UINT64_C( 0x7FFF800000000000 )) == UINT64_C( 0x7FFF000000000000 )) && ((uiA0) || ((uiA64) & UINT64_C( 0x00007FFFFFFFFFFF ))))
+
+/*----------------------------------------------------------------------------
+| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
+| has the bit pattern of a 128-bit floating-point NaN, converts this NaN to
+| the common NaN form, and stores the resulting common NaN at the location
+| pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid exception
+| is raised.
+*----------------------------------------------------------------------------*/
+#define softfloat_f128UIToCommonNaN( uiA64, uiA0, zPtr ) if ( ! ((uiA64) & UINT64_C( 0x0000800000000000 )) ) softfloat_raiseFlags( softfloat_flag_invalid )
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
+| NaN, and returns the bit pattern of this value as an unsigned integer.
+*----------------------------------------------------------------------------*/
+#if defined INLINE && ! defined softfloat_commonNaNToF128UI
+INLINE
+struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN *aPtr )
+{
+ struct uint128 uiZ;
+ uiZ.v64 = defaultNaNF128UI64;
+ uiZ.v0 = defaultNaNF128UI0;
+ return uiZ;
+}
+#else
+struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN * );
+#endif
+
+/*----------------------------------------------------------------------------
+| Interpreting the unsigned integer formed from concatenating 'uiA64' and
+| 'uiA0' as a 128-bit floating-point value, and likewise interpreting the
+| unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
+| 128-bit floating-point value, and assuming at least on of these floating-
+| point values is a NaN, returns the bit pattern of the combined NaN result.
+| If either original floating-point value is a signaling NaN, the invalid
+| exception is raised.
+*----------------------------------------------------------------------------*/
+struct uint128
+ softfloat_propagateNaNF128UI(
+ uint_fast64_t uiA64,
+ uint_fast64_t uiA0,
+ uint_fast64_t uiB64,
+ uint_fast64_t uiB0
+ );
+
+#else
+
+/*----------------------------------------------------------------------------
+| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is not
+| defined.
+*----------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+| Assuming the 80-bit extended floating-point value pointed to by 'aSPtr' is
+| a NaN, converts this NaN to the common NaN form, and stores the resulting
+| common NaN at the location pointed to by 'zPtr'. If the NaN is a signaling
+| NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+#define softfloat_extF80MToCommonNaN( aSPtr, zPtr ) if ( ! ((aSPtr)->signif & UINT64_C( 0x4000000000000000 )) ) softfloat_raiseFlags( softfloat_flag_invalid )
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
+| floating-point NaN, and stores this NaN at the location pointed to by
+| 'zSPtr'.
+*----------------------------------------------------------------------------*/
+#if defined INLINE && ! defined softfloat_commonNaNToExtF80M
+INLINE
+void
+ softfloat_commonNaNToExtF80M(
+ const struct commonNaN *aPtr, struct extFloat80M *zSPtr )
+{
+ zSPtr->signExp = defaultNaNExtF80UI64;
+ zSPtr->signif = defaultNaNExtF80UI0;
+}
+#else
+void
+ softfloat_commonNaNToExtF80M(
+ const struct commonNaN *aPtr, struct extFloat80M *zSPtr );
+#endif
+
+/*----------------------------------------------------------------------------
+| Assuming at least one of the two 80-bit extended floating-point values
+| pointed to by 'aSPtr' and 'bSPtr' is a NaN, stores the combined NaN result
+| at the location pointed to by 'zSPtr'. If either original floating-point
+| value is a signaling NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_propagateNaNExtF80M(
+ const struct extFloat80M *aSPtr,
+ const struct extFloat80M *bSPtr,
+ struct extFloat80M *zSPtr
+ );
+
+/*----------------------------------------------------------------------------
+| The bit pattern for a default generated 128-bit floating-point NaN.
+*----------------------------------------------------------------------------*/
+#define defaultNaNF128UI96 0x7FFF8000
+#define defaultNaNF128UI64 0
+#define defaultNaNF128UI32 0
+#define defaultNaNF128UI0 0
+
+/*----------------------------------------------------------------------------
+| Assuming the 128-bit floating-point value pointed to by 'aWPtr' is a NaN,
+| converts this NaN to the common NaN form, and stores the resulting common
+| NaN at the location pointed to by 'zPtr'. If the NaN is a signaling NaN,
+| the invalid exception is raised. Argument 'aWPtr' points to an array of
+| four 32-bit elements that concatenate in the platform's normal endian order
+| to form a 128-bit floating-point value.
+*----------------------------------------------------------------------------*/
+#define softfloat_f128MToCommonNaN( aWPtr, zPtr ) if ( ! ((aWPtr)[indexWordHi( 4 )] & UINT64_C( 0x0000800000000000 )) ) softfloat_raiseFlags( softfloat_flag_invalid )
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
+| NaN, and stores this NaN at the location pointed to by 'zWPtr'. Argument
+| 'zWPtr' points to an array of four 32-bit elements that concatenate in the
+| platform's normal endian order to form a 128-bit floating-point value.
+*----------------------------------------------------------------------------*/
+#if defined INLINE && ! defined softfloat_commonNaNToF128M
+INLINE
+void
+ softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr )
+{
+ zWPtr[indexWord( 4, 3 )] = defaultNaNF128UI96;
+ zWPtr[indexWord( 4, 2 )] = defaultNaNF128UI64;
+ zWPtr[indexWord( 4, 1 )] = defaultNaNF128UI32;
+ zWPtr[indexWord( 4, 0 )] = defaultNaNF128UI0;
+}
+#else
+void
+ softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr );
+#endif
+
+/*----------------------------------------------------------------------------
+| Assuming at least one of the two 128-bit floating-point values pointed to by
+| 'aWPtr' and 'bWPtr' is a NaN, stores the combined NaN result at the location
+| pointed to by 'zWPtr'. If either original floating-point value is a
+| signaling NaN, the invalid exception is raised. Each of 'aWPtr', 'bWPtr',
+| and 'zWPtr' points to an array of four 32-bit elements that concatenate in
+| the platform's normal endian order to form a 128-bit floating-point value.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_propagateNaNF128M(
+ const uint32_t *aWPtr, const uint32_t *bWPtr, uint32_t *zWPtr );
+
+#endif
+
+#endif
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/extF80M_isSignalingNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/extF80M_isSignalingNaN.c
new file mode 100644
index 0000000000..85ee211c28
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/extF80M_isSignalingNaN.c
@@ -0,0 +1,57 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include
+#include "platform.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
+bool extF80M_isSignalingNaN( const extFloat80_t *aPtr )
+{
+ const struct extFloat80M *aSPtr;
+ uint64_t uiA0;
+
+ aSPtr = (const struct extFloat80M *) aPtr;
+ if ( (aSPtr->signExp & 0x7FFF) != 0x7FFF ) return false;
+ uiA0 = aSPtr->signif;
+ return
+ ! (uiA0 & UINT64_C( 0x4000000000000000 ))
+ && (uiA0 & UINT64_C( 0x3FFFFFFFFFFFFFFF));
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/f128M_isSignalingNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/f128M_isSignalingNaN.c
new file mode 100644
index 0000000000..79a7077716
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/f128M_isSignalingNaN.c
@@ -0,0 +1,60 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include
+#include "platform.h"
+#include "primitives.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
+bool f128M_isSignalingNaN( const float128_t *aPtr )
+{
+ const uint32_t *aWPtr;
+ uint32_t uiA96;
+
+ aWPtr = (const uint32_t *) aPtr;
+ uiA96 = aWPtr[indexWordHi( 4 )];
+ if ( (uiA96 & 0x7FFF8000) != 0x7FFF0000 ) return false;
+ return
+ ((uiA96 & 0x00007FFF) != 0)
+ || ((aWPtr[indexWord( 4, 2 )] | aWPtr[indexWord( 4, 1 )]
+ | aWPtr[indexWord( 4, 0 )])
+ != 0);
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80M.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80M.c
new file mode 100644
index 0000000000..543400bc1a
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80M.c
@@ -0,0 +1,56 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "internals.h"
+#include "specialize.h"
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
+| floating-point NaN, and stores this NaN at the location pointed to by
+| 'zSPtr'.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_commonNaNToExtF80M(
+ const struct commonNaN *aPtr, struct extFloat80M *zSPtr )
+{
+
+ zSPtr->signExp = packToExtF80UI64( aPtr->sign, 0x7FFF );
+ zSPtr->signif = UINT64_C( 0xC000000000000000 ) | aPtr->v64>>1;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80UI.c
new file mode 100644
index 0000000000..6cf1d11918
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToExtF80UI.c
@@ -0,0 +1,56 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "primitives.h"
+#include "specialize.h"
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
+| floating-point NaN, and returns the bit pattern of this value as an unsigned
+| integer.
+*----------------------------------------------------------------------------*/
+struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr )
+{
+ struct uint128 uiZ;
+
+ uiZ.v64 = (uint_fast16_t) aPtr->sign<<15 | 0x7FFF;
+ uiZ.v0 = UINT64_C( 0xC000000000000000 ) | aPtr->v64>>1;
+ return uiZ;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128M.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128M.c
new file mode 100644
index 0000000000..4e8ede07fd
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128M.c
@@ -0,0 +1,56 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "primitives.h"
+#include "specialize.h"
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
+| NaN, and stores this NaN at the location pointed to by 'zWPtr'. Argument
+| 'zWPtr' points to an array of four 32-bit elements that concatenate in the
+| platform's normal endian order to form a 128-bit floating-point value.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr )
+{
+
+ softfloat_shortShiftRight128M( (const uint32_t *) &aPtr->v0, 16, zWPtr );
+ zWPtr[indexWordHi( 4 )] |= (uint32_t) aPtr->sign<<31 | 0x7FFF8000;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128UI.c
new file mode 100644
index 0000000000..f938c3f2d3
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF128UI.c
@@ -0,0 +1,55 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "primitives.h"
+#include "specialize.h"
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
+| NaN, and returns the bit pattern of this value as an unsigned integer.
+*----------------------------------------------------------------------------*/
+struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN *aPtr )
+{
+ struct uint128 uiZ;
+
+ uiZ = softfloat_shortShiftRight128( aPtr->v64, aPtr->v0, 16 );
+ uiZ.v64 |= (uint_fast64_t) aPtr->sign<<63 | UINT64_C( 0x7FFF800000000000 );
+ return uiZ;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF16UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF16UI.c
new file mode 100644
index 0000000000..6cd4fc192c
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF16UI.c
@@ -0,0 +1,51 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "specialize.h"
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 16-bit floating-point
+| NaN, and returns the bit pattern of this value as an unsigned integer.
+*----------------------------------------------------------------------------*/
+uint_fast16_t softfloat_commonNaNToF16UI( const struct commonNaN *aPtr )
+{
+
+ return (uint_fast16_t) aPtr->sign<<15 | 0x7E00 | aPtr->v64>>54;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF32UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF32UI.c
new file mode 100644
index 0000000000..7b38167f00
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF32UI.c
@@ -0,0 +1,51 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "specialize.h"
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 32-bit floating-point
+| NaN, and returns the bit pattern of this value as an unsigned integer.
+*----------------------------------------------------------------------------*/
+uint_fast32_t softfloat_commonNaNToF32UI( const struct commonNaN *aPtr )
+{
+
+ return (uint_fast32_t) aPtr->sign<<31 | 0x7FC00000 | aPtr->v64>>41;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF64UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF64UI.c
new file mode 100644
index 0000000000..14847029d2
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_commonNaNToF64UI.c
@@ -0,0 +1,53 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "specialize.h"
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 64-bit floating-point
+| NaN, and returns the bit pattern of this value as an unsigned integer.
+*----------------------------------------------------------------------------*/
+uint_fast64_t softfloat_commonNaNToF64UI( const struct commonNaN *aPtr )
+{
+
+ return
+ (uint_fast64_t) aPtr->sign<<63 | UINT64_C( 0x7FF8000000000000 )
+ | aPtr->v64>>12;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_extF80MToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_extF80MToCommonNaN.c
new file mode 100644
index 0000000000..82216cf411
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_extF80MToCommonNaN.c
@@ -0,0 +1,62 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "internals.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Assuming the 80-bit extended floating-point value pointed to by 'aSPtr' is
+| a NaN, converts this NaN to the common NaN form, and stores the resulting
+| common NaN at the location pointed to by 'zPtr'. If the NaN is a signaling
+| NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_extF80MToCommonNaN(
+ const struct extFloat80M *aSPtr, struct commonNaN *zPtr )
+{
+
+ if ( extF80M_isSignalingNaN( (const extFloat80_t *) aSPtr ) ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ }
+ zPtr->sign = signExtF80UI64( aSPtr->signExp );
+ zPtr->v64 = aSPtr->signif<<1;
+ zPtr->v0 = 0;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_extF80UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_extF80UIToCommonNaN.c
new file mode 100644
index 0000000000..2559fb6d2c
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_extF80UIToCommonNaN.c
@@ -0,0 +1,62 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
+| has the bit pattern of an 80-bit extended floating-point NaN, converts
+| this NaN to the common NaN form, and stores the resulting common NaN at the
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
+| exception is raised.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_extF80UIToCommonNaN(
+ uint_fast16_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr )
+{
+
+ if ( softfloat_isSigNaNExtF80UI( uiA64, uiA0 ) ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ }
+ zPtr->sign = uiA64>>15;
+ zPtr->v64 = uiA0<<1;
+ zPtr->v0 = 0;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_f128MToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_f128MToCommonNaN.c
new file mode 100644
index 0000000000..322d25ab1e
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_f128MToCommonNaN.c
@@ -0,0 +1,62 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "primitives.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Assuming the 128-bit floating-point value pointed to by 'aWPtr' is a NaN,
+| converts this NaN to the common NaN form, and stores the resulting common
+| NaN at the location pointed to by 'zPtr'. If the NaN is a signaling NaN,
+| the invalid exception is raised. Argument 'aWPtr' points to an array of
+| four 32-bit elements that concatenate in the platform's normal endian order
+| to form a 128-bit floating-point value.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_f128MToCommonNaN( const uint32_t *aWPtr, struct commonNaN *zPtr )
+{
+
+ if ( f128M_isSignalingNaN( (const float128_t *) aWPtr ) ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ }
+ zPtr->sign = aWPtr[indexWordHi( 4 )]>>31;
+ softfloat_shortShiftLeft128M( aWPtr, 16, (uint32_t *) &zPtr->v0 );
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_f128UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_f128UIToCommonNaN.c
new file mode 100644
index 0000000000..843c187a7d
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_f128UIToCommonNaN.c
@@ -0,0 +1,65 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "primitives.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
+| has the bit pattern of a 128-bit floating-point NaN, converts this NaN to
+| the common NaN form, and stores the resulting common NaN at the location
+| pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid exception
+| is raised.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_f128UIToCommonNaN(
+ uint_fast64_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr )
+{
+ struct uint128 NaNSig;
+
+ if ( softfloat_isSigNaNF128UI( uiA64, uiA0 ) ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ }
+ NaNSig = softfloat_shortShiftLeft128( uiA64, uiA0, 16 );
+ zPtr->sign = uiA64>>63;
+ zPtr->v64 = NaNSig.v64;
+ zPtr->v0 = NaNSig.v0;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_f16UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_f16UIToCommonNaN.c
new file mode 100644
index 0000000000..f5fe58770d
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_f16UIToCommonNaN.c
@@ -0,0 +1,59 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Assuming 'uiA' has the bit pattern of a 16-bit floating-point NaN, converts
+| this NaN to the common NaN form, and stores the resulting common NaN at the
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
+| exception is raised.
+*----------------------------------------------------------------------------*/
+void softfloat_f16UIToCommonNaN( uint_fast16_t uiA, struct commonNaN *zPtr )
+{
+
+ if ( softfloat_isSigNaNF16UI( uiA ) ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ }
+ zPtr->sign = uiA>>15;
+ zPtr->v64 = (uint_fast64_t) uiA<<54;
+ zPtr->v0 = 0;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_f32UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_f32UIToCommonNaN.c
new file mode 100644
index 0000000000..58726a3571
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_f32UIToCommonNaN.c
@@ -0,0 +1,59 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Assuming 'uiA' has the bit pattern of a 32-bit floating-point NaN, converts
+| this NaN to the common NaN form, and stores the resulting common NaN at the
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
+| exception is raised.
+*----------------------------------------------------------------------------*/
+void softfloat_f32UIToCommonNaN( uint_fast32_t uiA, struct commonNaN *zPtr )
+{
+
+ if ( softfloat_isSigNaNF32UI( uiA ) ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ }
+ zPtr->sign = uiA>>31;
+ zPtr->v64 = (uint_fast64_t) uiA<<41;
+ zPtr->v0 = 0;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_f64UIToCommonNaN.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_f64UIToCommonNaN.c
new file mode 100644
index 0000000000..03761e4331
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_f64UIToCommonNaN.c
@@ -0,0 +1,59 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include "platform.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Assuming 'uiA' has the bit pattern of a 64-bit floating-point NaN, converts
+| this NaN to the common NaN form, and stores the resulting common NaN at the
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
+| exception is raised.
+*----------------------------------------------------------------------------*/
+void softfloat_f64UIToCommonNaN( uint_fast64_t uiA, struct commonNaN *zPtr )
+{
+
+ if ( softfloat_isSigNaNF64UI( uiA ) ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ }
+ zPtr->sign = uiA>>63;
+ zPtr->v64 = uiA<<12;
+ zPtr->v0 = 0;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80M.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80M.c
new file mode 100644
index 0000000000..f10ed0b62f
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80M.c
@@ -0,0 +1,86 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include
+#include "platform.h"
+#include "internals.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Assuming at least one of the two 80-bit extended floating-point values
+| pointed to by 'aSPtr' and 'bSPtr' is a NaN, stores the combined NaN result
+| at the location pointed to by 'zSPtr'. If either original floating-point
+| value is a signaling NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_propagateNaNExtF80M(
+ const struct extFloat80M *aSPtr,
+ const struct extFloat80M *bSPtr,
+ struct extFloat80M *zSPtr
+ )
+{
+ const struct extFloat80M *sPtr;
+ bool isSigNaNA;
+ uint_fast16_t uiZ64;
+ uint_fast64_t uiZ0;
+
+ sPtr = aSPtr;
+ isSigNaNA = extF80M_isSignalingNaN( (const extFloat80_t *) aSPtr );
+ if (
+ isSigNaNA
+ || (bSPtr
+ && extF80M_isSignalingNaN( (const extFloat80_t *) bSPtr ))
+ ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ if ( isSigNaNA ) goto copyNonsig;
+ goto copyNonsigB;
+ }
+ uiZ64 = sPtr->signExp;
+ uiZ0 = sPtr->signif;
+ if ( isNaNExtF80UI( uiZ64, uiZ0 ) ) goto returnNonsig;
+ copyNonsigB:
+ sPtr = bSPtr;
+ copyNonsig:
+ uiZ64 = sPtr->signExp;
+ uiZ0 = sPtr->signif;
+ returnNonsig:
+ zSPtr->signExp = uiZ64;
+ zSPtr->signif = uiZ0 | UINT64_C( 0xC000000000000000 );
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80UI.c
new file mode 100644
index 0000000000..bd23c24736
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNExtF80UI.c
@@ -0,0 +1,83 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include
+#include "platform.h"
+#include "internals.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Interpreting the unsigned integer formed from concatenating 'uiA64' and
+| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
+| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
+| 80-bit extended floating-point value, and assuming at least on of these
+| floating-point values is a NaN, returns the bit pattern of the combined NaN
+| result. If either original floating-point value is a signaling NaN, the
+| invalid exception is raised.
+*----------------------------------------------------------------------------*/
+struct uint128
+ softfloat_propagateNaNExtF80UI(
+ uint_fast16_t uiA64,
+ uint_fast64_t uiA0,
+ uint_fast16_t uiB64,
+ uint_fast64_t uiB0
+ )
+{
+ bool isSigNaNA;
+ struct uint128 uiZ;
+
+ isSigNaNA = softfloat_isSigNaNExtF80UI( uiA64, uiA0 );
+ if ( isSigNaNA || softfloat_isSigNaNExtF80UI( uiB64, uiB0 ) ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ if ( isSigNaNA ) goto returnNonsigA;
+ goto returnNonsigB;
+ }
+ if ( isNaNExtF80UI( uiA64, uiA0 ) ) {
+ returnNonsigA:
+ uiZ.v64 = uiA64;
+ uiZ.v0 = uiA0;
+ } else {
+ returnNonsigB:
+ uiZ.v64 = uiB64;
+ uiZ.v0 = uiB0;
+ }
+ uiZ.v0 | UINT64_C( 0xC000000000000000 );
+ return uiZ;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128M.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128M.c
new file mode 100644
index 0000000000..23e766a193
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128M.c
@@ -0,0 +1,77 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include
+#include "platform.h"
+#include "internals.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Assuming at least one of the two 128-bit floating-point values pointed to by
+| 'aWPtr' and 'bWPtr' is a NaN, stores the combined NaN result at the location
+| pointed to by 'zWPtr'. If either original floating-point value is a
+| signaling NaN, the invalid exception is raised. Each of 'aWPtr', 'bWPtr',
+| and 'zWPtr' points to an array of four 32-bit elements that concatenate in
+| the platform's normal endian order to form a 128-bit floating-point value.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_propagateNaNF128M(
+ const uint32_t *aWPtr, const uint32_t *bWPtr, uint32_t *zWPtr )
+{
+ const uint32_t *ptr;
+ bool isSigNaNA;
+
+ ptr = aWPtr;
+ isSigNaNA = f128M_isSignalingNaN( (const float128_t *) aWPtr );
+ if (
+ isSigNaNA
+ || (bWPtr && f128M_isSignalingNaN( (const float128_t *) bWPtr ))
+ ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ if ( ! isSigNaNA ) ptr = bWPtr;
+ goto copyNonsig;
+ }
+ if ( ! softfloat_isNaNF128M( aWPtr ) ) ptr = bWPtr;
+ copyNonsig:
+ zWPtr[indexWordHi( 4 )] = ptr[indexWordHi( 4 )] | 0x00008000;
+ zWPtr[indexWord( 4, 2 )] = ptr[indexWord( 4, 2 )];
+ zWPtr[indexWord( 4, 1 )] = ptr[indexWord( 4, 1 )];
+ zWPtr[indexWord( 4, 0 )] = ptr[indexWord( 4, 0 )];
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128UI.c
new file mode 100644
index 0000000000..b8882d77cf
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF128UI.c
@@ -0,0 +1,83 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include
+#include "platform.h"
+#include "internals.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Interpreting the unsigned integer formed from concatenating 'uiA64' and
+| 'uiA0' as a 128-bit floating-point value, and likewise interpreting the
+| unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
+| 128-bit floating-point value, and assuming at least on of these floating-
+| point values is a NaN, returns the bit pattern of the combined NaN result.
+| If either original floating-point value is a signaling NaN, the invalid
+| exception is raised.
+*----------------------------------------------------------------------------*/
+struct uint128
+ softfloat_propagateNaNF128UI(
+ uint_fast64_t uiA64,
+ uint_fast64_t uiA0,
+ uint_fast64_t uiB64,
+ uint_fast64_t uiB0
+ )
+{
+ bool isSigNaNA;
+ struct uint128 uiZ;
+
+ isSigNaNA = softfloat_isSigNaNF128UI( uiA64, uiA0 );
+ if ( isSigNaNA || softfloat_isSigNaNF128UI( uiB64, uiB0 ) ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ if ( isSigNaNA ) goto returnNonsigA;
+ goto returnNonsigB;
+ }
+ if ( isNaNF128UI( uiA64, uiA0 ) ) {
+ returnNonsigA:
+ uiZ.v64 = uiA64;
+ uiZ.v0 = uiA0;
+ } else {
+ returnNonsigB:
+ uiZ.v64 = uiB64;
+ uiZ.v0 = uiB0;
+ }
+ uiZ.v64 |= UINT64_C( 0x0000800000000000 );
+ return uiZ;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF16UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF16UI.c
new file mode 100644
index 0000000000..e333328746
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF16UI.c
@@ -0,0 +1,63 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include
+#include "platform.h"
+#include "internals.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 16-bit floating-
+| point values, at least one of which is a NaN, returns the bit pattern of
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
+| signaling NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+uint_fast16_t
+ softfloat_propagateNaNF16UI( uint_fast16_t uiA, uint_fast16_t uiB )
+{
+ bool isSigNaNA;
+
+ isSigNaNA = softfloat_isSigNaNF16UI( uiA );
+ if ( isSigNaNA || softfloat_isSigNaNF16UI( uiB ) ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ return (isSigNaNA ? uiA : uiB) | 0x0200;
+ }
+ return isNaNF16UI( uiA ) ? uiA : uiB;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF32UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF32UI.c
new file mode 100644
index 0000000000..c7508ae7cd
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF32UI.c
@@ -0,0 +1,63 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include
+#include "platform.h"
+#include "internals.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 32-bit floating-
+| point values, at least one of which is a NaN, returns the bit pattern of
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
+| signaling NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+uint_fast32_t
+ softfloat_propagateNaNF32UI( uint_fast32_t uiA, uint_fast32_t uiB )
+{
+ bool isSigNaNA;
+
+ isSigNaNA = softfloat_isSigNaNF32UI( uiA );
+ if ( isSigNaNA || softfloat_isSigNaNF32UI( uiB ) ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ return (isSigNaNA ? uiA : uiB) | 0x00400000;
+ }
+ return isNaNF32UI( uiA ) ? uiA : uiB;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c
new file mode 100644
index 0000000000..8c67763818
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/s_propagateNaNF64UI.c
@@ -0,0 +1,63 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include
+#include
+#include "platform.h"
+#include "internals.h"
+#include "specialize.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 64-bit floating-
+| point values, at least one of which is a NaN, returns the bit pattern of
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
+| signaling NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+uint_fast64_t
+ softfloat_propagateNaNF64UI( uint_fast64_t uiA, uint_fast64_t uiB )
+{
+ bool isSigNaNA;
+
+ isSigNaNA = softfloat_isSigNaNF64UI( uiA );
+ if ( isSigNaNA || softfloat_isSigNaNF64UI( uiB ) ) {
+ softfloat_raiseFlags( softfloat_flag_invalid );
+ return (isSigNaNA ? uiA : uiB) | UINT64_C( 0x0008000000000000 );
+ }
+ return isNaNF64UI( uiA ) ? uiA : uiB;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c b/deps/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c
new file mode 100644
index 0000000000..61046da3c0
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/softfloat_raiseFlags.c
@@ -0,0 +1,52 @@
+
+/*============================================================================
+
+This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#include "platform.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Raises the exceptions specified by 'flags'. Floating-point traps can be
+| defined here if desired. It is currently not possible for such a trap
+| to substitute a result value. If traps are not implemented, this routine
+| should be simply 'softfloat_exceptionFlags |= flags;'.
+*----------------------------------------------------------------------------*/
+void softfloat_raiseFlags( uint_fast8_t flags )
+{
+
+ softfloat_exceptionFlags |= flags;
+
+}
+
diff --git a/deps/SoftFloat-3e/source/ARM-VFPv2/specialize.h b/deps/SoftFloat-3e/source/ARM-VFPv2/specialize.h
new file mode 100644
index 0000000000..5321f33bca
--- /dev/null
+++ b/deps/SoftFloat-3e/source/ARM-VFPv2/specialize.h
@@ -0,0 +1,376 @@
+
+/*============================================================================
+
+This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
+University of California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#ifndef specialize_h
+#define specialize_h 1
+
+#include
+#include
+#include "primitiveTypes.h"
+#include "softfloat.h"
+
+/*----------------------------------------------------------------------------
+| Default value for 'softfloat_detectTininess'.
+*----------------------------------------------------------------------------*/
+#define init_detectTininess softfloat_tininess_beforeRounding
+
+/*----------------------------------------------------------------------------
+| The values to return on conversions to 32-bit integer formats that raise an
+| invalid exception.
+*----------------------------------------------------------------------------*/
+#define ui32_fromPosOverflow 0xFFFFFFFF
+#define ui32_fromNegOverflow 0
+#define ui32_fromNaN 0
+#define i32_fromPosOverflow 0x7FFFFFFF
+#define i32_fromNegOverflow (-0x7FFFFFFF - 1)
+#define i32_fromNaN 0
+
+/*----------------------------------------------------------------------------
+| The values to return on conversions to 64-bit integer formats that raise an
+| invalid exception.
+*----------------------------------------------------------------------------*/
+#define ui64_fromPosOverflow UINT64_C( 0xFFFFFFFFFFFFFFFF )
+#define ui64_fromNegOverflow 0
+#define ui64_fromNaN 0
+#define i64_fromPosOverflow INT64_C( 0x7FFFFFFFFFFFFFFF )
+#define i64_fromNegOverflow (-INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+#define i64_fromNaN 0
+
+/*----------------------------------------------------------------------------
+| "Common NaN" structure, used to transfer NaN representations from one format
+| to another.
+*----------------------------------------------------------------------------*/
+struct commonNaN {
+ bool sign;
+#ifdef LITTLEENDIAN
+ uint64_t v0, v64;
+#else
+ uint64_t v64, v0;
+#endif
+};
+
+/*----------------------------------------------------------------------------
+| The bit pattern for a default generated 16-bit floating-point NaN.
+*----------------------------------------------------------------------------*/
+#define defaultNaNF16UI 0x7E00
+
+/*----------------------------------------------------------------------------
+| Returns true when 16-bit unsigned integer 'uiA' has the bit pattern of a
+| 16-bit floating-point signaling NaN.
+| Note: This macro evaluates its argument more than once.
+*----------------------------------------------------------------------------*/
+#define softfloat_isSigNaNF16UI( uiA ) ((((uiA) & 0x7E00) == 0x7C00) && ((uiA) & 0x01FF))
+
+/*----------------------------------------------------------------------------
+| Assuming 'uiA' has the bit pattern of a 16-bit floating-point NaN, converts
+| this NaN to the common NaN form, and stores the resulting common NaN at the
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
+| exception is raised.
+*----------------------------------------------------------------------------*/
+void softfloat_f16UIToCommonNaN( uint_fast16_t uiA, struct commonNaN *zPtr );
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 16-bit floating-point
+| NaN, and returns the bit pattern of this value as an unsigned integer.
+*----------------------------------------------------------------------------*/
+uint_fast16_t softfloat_commonNaNToF16UI( const struct commonNaN *aPtr );
+
+/*----------------------------------------------------------------------------
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 16-bit floating-
+| point values, at least one of which is a NaN, returns the bit pattern of
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
+| signaling NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+uint_fast16_t
+ softfloat_propagateNaNF16UI( uint_fast16_t uiA, uint_fast16_t uiB );
+
+/*----------------------------------------------------------------------------
+| The bit pattern for a default generated 32-bit floating-point NaN.
+*----------------------------------------------------------------------------*/
+#define defaultNaNF32UI 0x7FC00000
+
+/*----------------------------------------------------------------------------
+| Returns true when 32-bit unsigned integer 'uiA' has the bit pattern of a
+| 32-bit floating-point signaling NaN.
+| Note: This macro evaluates its argument more than once.
+*----------------------------------------------------------------------------*/
+#define softfloat_isSigNaNF32UI( uiA ) ((((uiA) & 0x7FC00000) == 0x7F800000) && ((uiA) & 0x003FFFFF))
+
+/*----------------------------------------------------------------------------
+| Assuming 'uiA' has the bit pattern of a 32-bit floating-point NaN, converts
+| this NaN to the common NaN form, and stores the resulting common NaN at the
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
+| exception is raised.
+*----------------------------------------------------------------------------*/
+void softfloat_f32UIToCommonNaN( uint_fast32_t uiA, struct commonNaN *zPtr );
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 32-bit floating-point
+| NaN, and returns the bit pattern of this value as an unsigned integer.
+*----------------------------------------------------------------------------*/
+uint_fast32_t softfloat_commonNaNToF32UI( const struct commonNaN *aPtr );
+
+/*----------------------------------------------------------------------------
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 32-bit floating-
+| point values, at least one of which is a NaN, returns the bit pattern of
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
+| signaling NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+uint_fast32_t
+ softfloat_propagateNaNF32UI( uint_fast32_t uiA, uint_fast32_t uiB );
+
+/*----------------------------------------------------------------------------
+| The bit pattern for a default generated 64-bit floating-point NaN.
+*----------------------------------------------------------------------------*/
+#define defaultNaNF64UI UINT64_C( 0x7FF8000000000000 )
+
+/*----------------------------------------------------------------------------
+| Returns true when 64-bit unsigned integer 'uiA' has the bit pattern of a
+| 64-bit floating-point signaling NaN.
+| Note: This macro evaluates its argument more than once.
+*----------------------------------------------------------------------------*/
+#define softfloat_isSigNaNF64UI( uiA ) ((((uiA) & UINT64_C( 0x7FF8000000000000 )) == UINT64_C( 0x7FF0000000000000 )) && ((uiA) & UINT64_C( 0x0007FFFFFFFFFFFF )))
+
+/*----------------------------------------------------------------------------
+| Assuming 'uiA' has the bit pattern of a 64-bit floating-point NaN, converts
+| this NaN to the common NaN form, and stores the resulting common NaN at the
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
+| exception is raised.
+*----------------------------------------------------------------------------*/
+void softfloat_f64UIToCommonNaN( uint_fast64_t uiA, struct commonNaN *zPtr );
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 64-bit floating-point
+| NaN, and returns the bit pattern of this value as an unsigned integer.
+*----------------------------------------------------------------------------*/
+uint_fast64_t softfloat_commonNaNToF64UI( const struct commonNaN *aPtr );
+
+/*----------------------------------------------------------------------------
+| Interpreting 'uiA' and 'uiB' as the bit patterns of two 64-bit floating-
+| point values, at least one of which is a NaN, returns the bit pattern of
+| the combined NaN result. If either 'uiA' or 'uiB' has the pattern of a
+| signaling NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+uint_fast64_t
+ softfloat_propagateNaNF64UI( uint_fast64_t uiA, uint_fast64_t uiB );
+
+/*----------------------------------------------------------------------------
+| The bit pattern for a default generated 80-bit extended floating-point NaN.
+*----------------------------------------------------------------------------*/
+#define defaultNaNExtF80UI64 0x7FFF
+#define defaultNaNExtF80UI0 UINT64_C( 0xC000000000000000 )
+
+/*----------------------------------------------------------------------------
+| Returns true when the 80-bit unsigned integer formed from concatenating
+| 16-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of an 80-bit extended
+| floating-point signaling NaN.
+| Note: This macro evaluates its arguments more than once.
+*----------------------------------------------------------------------------*/
+#define softfloat_isSigNaNExtF80UI( uiA64, uiA0 ) ((((uiA64) & 0x7FFF) == 0x7FFF) && ! ((uiA0) & UINT64_C( 0x4000000000000000 )) && ((uiA0) & UINT64_C( 0x3FFFFFFFFFFFFFFF )))
+
+#ifdef SOFTFLOAT_FAST_INT64
+
+/*----------------------------------------------------------------------------
+| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is
+| defined.
+*----------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
+| has the bit pattern of an 80-bit extended floating-point NaN, converts
+| this NaN to the common NaN form, and stores the resulting common NaN at the
+| location pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid
+| exception is raised.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_extF80UIToCommonNaN(
+ uint_fast16_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr );
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
+| floating-point NaN, and returns the bit pattern of this value as an unsigned
+| integer.
+*----------------------------------------------------------------------------*/
+struct uint128 softfloat_commonNaNToExtF80UI( const struct commonNaN *aPtr );
+
+/*----------------------------------------------------------------------------
+| Interpreting the unsigned integer formed from concatenating 'uiA64' and
+| 'uiA0' as an 80-bit extended floating-point value, and likewise interpreting
+| the unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
+| 80-bit extended floating-point value, and assuming at least on of these
+| floating-point values is a NaN, returns the bit pattern of the combined NaN
+| result. If either original floating-point value is a signaling NaN, the
+| invalid exception is raised.
+*----------------------------------------------------------------------------*/
+struct uint128
+ softfloat_propagateNaNExtF80UI(
+ uint_fast16_t uiA64,
+ uint_fast64_t uiA0,
+ uint_fast16_t uiB64,
+ uint_fast64_t uiB0
+ );
+
+/*----------------------------------------------------------------------------
+| The bit pattern for a default generated 128-bit floating-point NaN.
+*----------------------------------------------------------------------------*/
+#define defaultNaNF128UI64 UINT64_C( 0x7FFF800000000000 )
+#define defaultNaNF128UI0 UINT64_C( 0 )
+
+/*----------------------------------------------------------------------------
+| Returns true when the 128-bit unsigned integer formed from concatenating
+| 64-bit 'uiA64' and 64-bit 'uiA0' has the bit pattern of a 128-bit floating-
+| point signaling NaN.
+| Note: This macro evaluates its arguments more than once.
+*----------------------------------------------------------------------------*/
+#define softfloat_isSigNaNF128UI( uiA64, uiA0 ) ((((uiA64) & UINT64_C( 0x7FFF800000000000 )) == UINT64_C( 0x7FFF000000000000 )) && ((uiA0) || ((uiA64) & UINT64_C( 0x00007FFFFFFFFFFF ))))
+
+/*----------------------------------------------------------------------------
+| Assuming the unsigned integer formed from concatenating 'uiA64' and 'uiA0'
+| has the bit pattern of a 128-bit floating-point NaN, converts this NaN to
+| the common NaN form, and stores the resulting common NaN at the location
+| pointed to by 'zPtr'. If the NaN is a signaling NaN, the invalid exception
+| is raised.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_f128UIToCommonNaN(
+ uint_fast64_t uiA64, uint_fast64_t uiA0, struct commonNaN *zPtr );
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
+| NaN, and returns the bit pattern of this value as an unsigned integer.
+*----------------------------------------------------------------------------*/
+struct uint128 softfloat_commonNaNToF128UI( const struct commonNaN * );
+
+/*----------------------------------------------------------------------------
+| Interpreting the unsigned integer formed from concatenating 'uiA64' and
+| 'uiA0' as a 128-bit floating-point value, and likewise interpreting the
+| unsigned integer formed from concatenating 'uiB64' and 'uiB0' as another
+| 128-bit floating-point value, and assuming at least on of these floating-
+| point values is a NaN, returns the bit pattern of the combined NaN result.
+| If either original floating-point value is a signaling NaN, the invalid
+| exception is raised.
+*----------------------------------------------------------------------------*/
+struct uint128
+ softfloat_propagateNaNF128UI(
+ uint_fast64_t uiA64,
+ uint_fast64_t uiA0,
+ uint_fast64_t uiB64,
+ uint_fast64_t uiB0
+ );
+
+#else
+
+/*----------------------------------------------------------------------------
+| The following functions are needed only when 'SOFTFLOAT_FAST_INT64' is not
+| defined.
+*----------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+| Assuming the 80-bit extended floating-point value pointed to by 'aSPtr' is
+| a NaN, converts this NaN to the common NaN form, and stores the resulting
+| common NaN at the location pointed to by 'zPtr'. If the NaN is a signaling
+| NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_extF80MToCommonNaN(
+ const struct extFloat80M *aSPtr, struct commonNaN *zPtr );
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into an 80-bit extended
+| floating-point NaN, and stores this NaN at the location pointed to by
+| 'zSPtr'.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_commonNaNToExtF80M(
+ const struct commonNaN *aPtr, struct extFloat80M *zSPtr );
+
+/*----------------------------------------------------------------------------
+| Assuming at least one of the two 80-bit extended floating-point values
+| pointed to by 'aSPtr' and 'bSPtr' is a NaN, stores the combined NaN result
+| at the location pointed to by 'zSPtr'. If either original floating-point
+| value is a signaling NaN, the invalid exception is raised.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_propagateNaNExtF80M(
+ const struct extFloat80M *aSPtr,
+ const struct extFloat80M *bSPtr,
+ struct extFloat80M *zSPtr
+ );
+
+/*----------------------------------------------------------------------------
+| The bit pattern for a default generated 128-bit floating-point NaN.
+*----------------------------------------------------------------------------*/
+#define defaultNaNF128UI96 0x7FFF8000
+#define defaultNaNF128UI64 0
+#define defaultNaNF128UI32 0
+#define defaultNaNF128UI0 0
+
+/*----------------------------------------------------------------------------
+| Assuming the 128-bit floating-point value pointed to by 'aWPtr' is a NaN,
+| converts this NaN to the common NaN form, and stores the resulting common
+| NaN at the location pointed to by 'zPtr'. If the NaN is a signaling NaN,
+| the invalid exception is raised. Argument 'aWPtr' points to an array of
+| four 32-bit elements that concatenate in the platform's normal endian order
+| to form a 128-bit floating-point value.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_f128MToCommonNaN( const uint32_t *aWPtr, struct commonNaN *zPtr );
+
+/*----------------------------------------------------------------------------
+| Converts the common NaN pointed to by 'aPtr' into a 128-bit floating-point
+| NaN, and stores this NaN at the location pointed to by 'zWPtr'. Argument
+| 'zWPtr' points to an array of four 32-bit elements that concatenate in the
+| platform's normal endian order to form a 128-bit floating-point value.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_commonNaNToF128M( const struct commonNaN *aPtr, uint32_t *zWPtr );
+
+/*----------------------------------------------------------------------------
+| Assuming at least one of the two 128-bit floating-point values pointed to by
+| 'aWPtr' and 'bWPtr' is a NaN, stores the combined NaN result at the location
+| pointed to by 'zWPtr'. If either original floating-point value is a
+| signaling NaN, the invalid exception is raised. Each of 'aWPtr', 'bWPtr',
+| and 'zWPtr' points to an array of four 32-bit elements that concatenate in
+| the platform's normal endian order to form a 128-bit floating-point value.
+*----------------------------------------------------------------------------*/
+void
+ softfloat_propagateNaNF128M(
+ const uint32_t *aWPtr, const uint32_t *bWPtr, uint32_t *zWPtr );
+
+#endif
+
+#endif
+
diff --git a/deps/SoftFloat-3d/source/extF80M_add.c b/deps/SoftFloat-3e/source/extF80M_add.c
similarity index 95%
rename from deps/SoftFloat-3d/source/extF80M_add.c
rename to deps/SoftFloat-3e/source/extF80M_add.c
index 96ced0947c..02e415fcc1 100644
--- a/deps/SoftFloat-3d/source/extF80M_add.c
+++ b/deps/SoftFloat-3e/source/extF80M_add.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_div.c b/deps/SoftFloat-3e/source/extF80M_div.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_div.c
rename to deps/SoftFloat-3e/source/extF80M_div.c
index 801d42c39e..4d543ce9e5 100644
--- a/deps/SoftFloat-3d/source/extF80M_div.c
+++ b/deps/SoftFloat-3e/source/extF80M_div.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_eq.c b/deps/SoftFloat-3e/source/extF80M_eq.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_eq.c
rename to deps/SoftFloat-3e/source/extF80M_eq.c
index 4a0c3114e0..e17aa24351 100644
--- a/deps/SoftFloat-3d/source/extF80M_eq.c
+++ b/deps/SoftFloat-3e/source/extF80M_eq.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_eq_signaling.c b/deps/SoftFloat-3e/source/extF80M_eq_signaling.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_eq_signaling.c
rename to deps/SoftFloat-3e/source/extF80M_eq_signaling.c
index 2cf70322de..c4a7322393 100644
--- a/deps/SoftFloat-3d/source/extF80M_eq_signaling.c
+++ b/deps/SoftFloat-3e/source/extF80M_eq_signaling.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_le.c b/deps/SoftFloat-3e/source/extF80M_le.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_le.c
rename to deps/SoftFloat-3e/source/extF80M_le.c
index 67d1662ba5..e54eb9eea0 100644
--- a/deps/SoftFloat-3d/source/extF80M_le.c
+++ b/deps/SoftFloat-3e/source/extF80M_le.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_le_quiet.c b/deps/SoftFloat-3e/source/extF80M_le_quiet.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_le_quiet.c
rename to deps/SoftFloat-3e/source/extF80M_le_quiet.c
index 9c2fa2eca4..943f262061 100644
--- a/deps/SoftFloat-3d/source/extF80M_le_quiet.c
+++ b/deps/SoftFloat-3e/source/extF80M_le_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_lt.c b/deps/SoftFloat-3e/source/extF80M_lt.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_lt.c
rename to deps/SoftFloat-3e/source/extF80M_lt.c
index c4e95ced26..cbc562f64d 100644
--- a/deps/SoftFloat-3d/source/extF80M_lt.c
+++ b/deps/SoftFloat-3e/source/extF80M_lt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_lt_quiet.c b/deps/SoftFloat-3e/source/extF80M_lt_quiet.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_lt_quiet.c
rename to deps/SoftFloat-3e/source/extF80M_lt_quiet.c
index bcbb22dba7..650586d025 100644
--- a/deps/SoftFloat-3d/source/extF80M_lt_quiet.c
+++ b/deps/SoftFloat-3e/source/extF80M_lt_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_mul.c b/deps/SoftFloat-3e/source/extF80M_mul.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_mul.c
rename to deps/SoftFloat-3e/source/extF80M_mul.c
index aaf4d0a133..281394f713 100644
--- a/deps/SoftFloat-3d/source/extF80M_mul.c
+++ b/deps/SoftFloat-3e/source/extF80M_mul.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_rem.c b/deps/SoftFloat-3e/source/extF80M_rem.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_rem.c
rename to deps/SoftFloat-3e/source/extF80M_rem.c
index c8e4e50b9f..4aff18ae97 100644
--- a/deps/SoftFloat-3d/source/extF80M_rem.c
+++ b/deps/SoftFloat-3e/source/extF80M_rem.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_roundToInt.c b/deps/SoftFloat-3e/source/extF80M_roundToInt.c
similarity index 87%
rename from deps/SoftFloat-3d/source/extF80M_roundToInt.c
rename to deps/SoftFloat-3e/source/extF80M_roundToInt.c
index 409600bcf3..2e85729571 100644
--- a/deps/SoftFloat-3d/source/extF80M_roundToInt.c
+++ b/deps/SoftFloat-3e/source/extF80M_roundToInt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
California. All rights reserved.
@@ -86,8 +86,8 @@ void
sigA = aSPtr->signif;
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
- if ( ! (sigA & UINT64_C( 0x8000000000000000 )) && (exp != 0x7FFF) ) {
- if ( ! sigA ) {
+ if ( !(sigA & UINT64_C( 0x8000000000000000 )) && (exp != 0x7FFF) ) {
+ if ( !sigA ) {
uiZ64 = signUI64;
sigZ = 0;
goto uiZ;
@@ -100,7 +100,7 @@ void
if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
switch ( roundingMode ) {
case softfloat_round_near_even:
- if ( ! (sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF )) ) break;
+ if ( !(sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF )) ) break;
case softfloat_round_near_maxMag:
if ( exp == 0x3FFE ) goto mag1;
break;
@@ -108,8 +108,12 @@ void
if ( signUI64 ) goto mag1;
break;
case softfloat_round_max:
- if ( ! signUI64 ) goto mag1;
+ if ( !signUI64 ) goto mag1;
break;
+#ifdef SOFTFLOAT_ROUND_ODD
+ case softfloat_round_odd:
+ goto mag1;
+#endif
}
uiZ64 = signUI64;
sigZ = 0;
@@ -144,19 +148,22 @@ void
sigZ += lastBitMask>>1;
} else if ( roundingMode == softfloat_round_near_even ) {
sigZ += lastBitMask>>1;
- if ( ! (sigZ & roundBitsMask) ) sigZ &= ~lastBitMask;
+ if ( !(sigZ & roundBitsMask) ) sigZ &= ~lastBitMask;
} else if (
roundingMode == (signUI64 ? softfloat_round_min : softfloat_round_max)
) {
sigZ += roundBitsMask;
}
sigZ &= ~roundBitsMask;
- if ( ! sigZ ) {
+ if ( !sigZ ) {
++uiZ64;
sigZ = UINT64_C( 0x8000000000000000 );
}
- if ( exact && (sigZ != sigA) ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
+ if ( sigZ != sigA ) {
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) sigZ |= lastBitMask;
+#endif
+ if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
}
uiZ:
zSPtr->signExp = uiZ64;
diff --git a/deps/SoftFloat-3d/source/extF80M_sqrt.c b/deps/SoftFloat-3e/source/extF80M_sqrt.c
similarity index 97%
rename from deps/SoftFloat-3d/source/extF80M_sqrt.c
rename to deps/SoftFloat-3e/source/extF80M_sqrt.c
index 66e90e087c..7ee91e0e57 100644
--- a/deps/SoftFloat-3d/source/extF80M_sqrt.c
+++ b/deps/SoftFloat-3e/source/extF80M_sqrt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_sub.c b/deps/SoftFloat-3e/source/extF80M_sub.c
similarity index 95%
rename from deps/SoftFloat-3d/source/extF80M_sub.c
rename to deps/SoftFloat-3e/source/extF80M_sub.c
index a3834d2e46..5d1895c7a0 100644
--- a/deps/SoftFloat-3d/source/extF80M_sub.c
+++ b/deps/SoftFloat-3e/source/extF80M_sub.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_to_f128M.c b/deps/SoftFloat-3e/source/extF80M_to_f128M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_to_f128M.c
rename to deps/SoftFloat-3e/source/extF80M_to_f128M.c
index 50b7245020..da81e8d6b3 100644
--- a/deps/SoftFloat-3d/source/extF80M_to_f128M.c
+++ b/deps/SoftFloat-3e/source/extF80M_to_f128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_to_f16.c b/deps/SoftFloat-3e/source/extF80M_to_f16.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_to_f16.c
rename to deps/SoftFloat-3e/source/extF80M_to_f16.c
index 34d1521e76..5ae38d0c4b 100644
--- a/deps/SoftFloat-3d/source/extF80M_to_f16.c
+++ b/deps/SoftFloat-3e/source/extF80M_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_to_f32.c b/deps/SoftFloat-3e/source/extF80M_to_f32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_to_f32.c
rename to deps/SoftFloat-3e/source/extF80M_to_f32.c
index a7c16fc2a7..47cf224dc1 100644
--- a/deps/SoftFloat-3d/source/extF80M_to_f32.c
+++ b/deps/SoftFloat-3e/source/extF80M_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_to_f64.c b/deps/SoftFloat-3e/source/extF80M_to_f64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_to_f64.c
rename to deps/SoftFloat-3e/source/extF80M_to_f64.c
index aa795e97c4..5f8f4aa299 100644
--- a/deps/SoftFloat-3d/source/extF80M_to_f64.c
+++ b/deps/SoftFloat-3e/source/extF80M_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_to_i32.c b/deps/SoftFloat-3e/source/extF80M_to_i32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_to_i32.c
rename to deps/SoftFloat-3e/source/extF80M_to_i32.c
index 2d4d866236..06394e3418 100644
--- a/deps/SoftFloat-3d/source/extF80M_to_i32.c
+++ b/deps/SoftFloat-3e/source/extF80M_to_i32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_to_i32_r_minMag.c b/deps/SoftFloat-3e/source/extF80M_to_i32_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_to_i32_r_minMag.c
rename to deps/SoftFloat-3e/source/extF80M_to_i32_r_minMag.c
index 607f23c016..5f5cf599df 100644
--- a/deps/SoftFloat-3d/source/extF80M_to_i32_r_minMag.c
+++ b/deps/SoftFloat-3e/source/extF80M_to_i32_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_to_i64.c b/deps/SoftFloat-3e/source/extF80M_to_i64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_to_i64.c
rename to deps/SoftFloat-3e/source/extF80M_to_i64.c
index 700bd5d2de..1b751dc8ec 100644
--- a/deps/SoftFloat-3d/source/extF80M_to_i64.c
+++ b/deps/SoftFloat-3e/source/extF80M_to_i64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_to_i64_r_minMag.c b/deps/SoftFloat-3e/source/extF80M_to_i64_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_to_i64_r_minMag.c
rename to deps/SoftFloat-3e/source/extF80M_to_i64_r_minMag.c
index 78258b7d57..ec9b92844c 100644
--- a/deps/SoftFloat-3d/source/extF80M_to_i64_r_minMag.c
+++ b/deps/SoftFloat-3e/source/extF80M_to_i64_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_to_ui32.c b/deps/SoftFloat-3e/source/extF80M_to_ui32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_to_ui32.c
rename to deps/SoftFloat-3e/source/extF80M_to_ui32.c
index 9e88d6c0a8..983a1ee341 100644
--- a/deps/SoftFloat-3d/source/extF80M_to_ui32.c
+++ b/deps/SoftFloat-3e/source/extF80M_to_ui32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_to_ui32_r_minMag.c b/deps/SoftFloat-3e/source/extF80M_to_ui32_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_to_ui32_r_minMag.c
rename to deps/SoftFloat-3e/source/extF80M_to_ui32_r_minMag.c
index e8be450e6b..e28b08d70d 100644
--- a/deps/SoftFloat-3d/source/extF80M_to_ui32_r_minMag.c
+++ b/deps/SoftFloat-3e/source/extF80M_to_ui32_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_to_ui64.c b/deps/SoftFloat-3e/source/extF80M_to_ui64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_to_ui64.c
rename to deps/SoftFloat-3e/source/extF80M_to_ui64.c
index 96a8b6ec7a..9d4ef4a52c 100644
--- a/deps/SoftFloat-3d/source/extF80M_to_ui64.c
+++ b/deps/SoftFloat-3e/source/extF80M_to_ui64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80M_to_ui64_r_minMag.c b/deps/SoftFloat-3e/source/extF80M_to_ui64_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80M_to_ui64_r_minMag.c
rename to deps/SoftFloat-3e/source/extF80M_to_ui64_r_minMag.c
index ea4724badf..87d80897b7 100644
--- a/deps/SoftFloat-3d/source/extF80M_to_ui64_r_minMag.c
+++ b/deps/SoftFloat-3e/source/extF80M_to_ui64_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_add.c b/deps/SoftFloat-3e/source/extF80_add.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_add.c
rename to deps/SoftFloat-3e/source/extF80_add.c
index ecfcb47d37..164cb05de0 100644
--- a/deps/SoftFloat-3d/source/extF80_add.c
+++ b/deps/SoftFloat-3e/source/extF80_add.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_div.c b/deps/SoftFloat-3e/source/extF80_div.c
similarity index 97%
rename from deps/SoftFloat-3d/source/extF80_div.c
rename to deps/SoftFloat-3e/source/extF80_div.c
index a784ac9229..28dfb13de8 100644
--- a/deps/SoftFloat-3d/source/extF80_div.c
+++ b/deps/SoftFloat-3e/source/extF80_div.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_eq.c b/deps/SoftFloat-3e/source/extF80_eq.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_eq.c
rename to deps/SoftFloat-3e/source/extF80_eq.c
index 89c9c3192b..efcbc37143 100644
--- a/deps/SoftFloat-3d/source/extF80_eq.c
+++ b/deps/SoftFloat-3e/source/extF80_eq.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_eq_signaling.c b/deps/SoftFloat-3e/source/extF80_eq_signaling.c
similarity index 95%
rename from deps/SoftFloat-3d/source/extF80_eq_signaling.c
rename to deps/SoftFloat-3e/source/extF80_eq_signaling.c
index 7041cc0d1b..193b191e6c 100644
--- a/deps/SoftFloat-3d/source/extF80_eq_signaling.c
+++ b/deps/SoftFloat-3e/source/extF80_eq_signaling.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_isSignalingNaN.c b/deps/SoftFloat-3e/source/extF80_isSignalingNaN.c
similarity index 95%
rename from deps/SoftFloat-3d/source/extF80_isSignalingNaN.c
rename to deps/SoftFloat-3e/source/extF80_isSignalingNaN.c
index d87f71a11f..33d2abd7e9 100644
--- a/deps/SoftFloat-3d/source/extF80_isSignalingNaN.c
+++ b/deps/SoftFloat-3e/source/extF80_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_le.c b/deps/SoftFloat-3e/source/extF80_le.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_le.c
rename to deps/SoftFloat-3e/source/extF80_le.c
index 07089d48de..4e23c51420 100644
--- a/deps/SoftFloat-3d/source/extF80_le.c
+++ b/deps/SoftFloat-3e/source/extF80_le.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_le_quiet.c b/deps/SoftFloat-3e/source/extF80_le_quiet.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_le_quiet.c
rename to deps/SoftFloat-3e/source/extF80_le_quiet.c
index dda1da96a4..9839e47f9e 100644
--- a/deps/SoftFloat-3d/source/extF80_le_quiet.c
+++ b/deps/SoftFloat-3e/source/extF80_le_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_lt.c b/deps/SoftFloat-3e/source/extF80_lt.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_lt.c
rename to deps/SoftFloat-3e/source/extF80_lt.c
index 41e4179fb7..a4ac69fa6c 100644
--- a/deps/SoftFloat-3d/source/extF80_lt.c
+++ b/deps/SoftFloat-3e/source/extF80_lt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_lt_quiet.c b/deps/SoftFloat-3e/source/extF80_lt_quiet.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_lt_quiet.c
rename to deps/SoftFloat-3e/source/extF80_lt_quiet.c
index ada79ecc7b..00f4d47687 100644
--- a/deps/SoftFloat-3d/source/extF80_lt_quiet.c
+++ b/deps/SoftFloat-3e/source/extF80_lt_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_mul.c b/deps/SoftFloat-3e/source/extF80_mul.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_mul.c
rename to deps/SoftFloat-3e/source/extF80_mul.c
index afe9ff7d81..39ce4012c4 100644
--- a/deps/SoftFloat-3d/source/extF80_mul.c
+++ b/deps/SoftFloat-3e/source/extF80_mul.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_rem.c b/deps/SoftFloat-3e/source/extF80_rem.c
similarity index 97%
rename from deps/SoftFloat-3d/source/extF80_rem.c
rename to deps/SoftFloat-3e/source/extF80_rem.c
index 7229c021fb..5ad9775262 100644
--- a/deps/SoftFloat-3d/source/extF80_rem.c
+++ b/deps/SoftFloat-3e/source/extF80_rem.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_roundToInt.c b/deps/SoftFloat-3e/source/extF80_roundToInt.c
similarity index 86%
rename from deps/SoftFloat-3d/source/extF80_roundToInt.c
rename to deps/SoftFloat-3e/source/extF80_roundToInt.c
index 9b424ed40e..6c12d84c9e 100644
--- a/deps/SoftFloat-3d/source/extF80_roundToInt.c
+++ b/deps/SoftFloat-3e/source/extF80_roundToInt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
California. All rights reserved.
@@ -64,8 +64,8 @@ extFloat80_t
sigA = uA.s.signif;
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
- if ( ! (sigA & UINT64_C( 0x8000000000000000 )) && (exp != 0x7FFF) ) {
- if ( ! sigA ) {
+ if ( !(sigA & UINT64_C( 0x8000000000000000 )) && (exp != 0x7FFF) ) {
+ if ( !sigA ) {
uiZ64 = signUI64;
sigZ = 0;
goto uiZ;
@@ -95,7 +95,7 @@ extFloat80_t
if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
switch ( roundingMode ) {
case softfloat_round_near_even:
- if ( ! (sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF )) ) break;
+ if ( !(sigA & UINT64_C( 0x7FFFFFFFFFFFFFFF )) ) break;
case softfloat_round_near_maxMag:
if ( exp == 0x3FFE ) goto mag1;
break;
@@ -103,8 +103,12 @@ extFloat80_t
if ( signUI64 ) goto mag1;
break;
case softfloat_round_max:
- if ( ! signUI64 ) goto mag1;
+ if ( !signUI64 ) goto mag1;
break;
+#ifdef SOFTFLOAT_ROUND_ODD
+ case softfloat_round_odd:
+ goto mag1;
+#endif
}
uiZ64 = signUI64;
sigZ = 0;
@@ -124,19 +128,22 @@ extFloat80_t
sigZ += lastBitMask>>1;
} else if ( roundingMode == softfloat_round_near_even ) {
sigZ += lastBitMask>>1;
- if ( ! (sigZ & roundBitsMask) ) sigZ &= ~lastBitMask;
+ if ( !(sigZ & roundBitsMask) ) sigZ &= ~lastBitMask;
} else if (
roundingMode == (signUI64 ? softfloat_round_min : softfloat_round_max)
) {
sigZ += roundBitsMask;
}
sigZ &= ~roundBitsMask;
- if ( ! sigZ ) {
+ if ( !sigZ ) {
++uiZ64;
sigZ = UINT64_C( 0x8000000000000000 );
}
- if ( exact && (sigZ != sigA) ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
+ if ( sigZ != sigA ) {
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) sigZ |= lastBitMask;
+#endif
+ if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
}
uiZ:
uZ.s.signExp = uiZ64;
diff --git a/deps/SoftFloat-3d/source/extF80_sqrt.c b/deps/SoftFloat-3e/source/extF80_sqrt.c
similarity index 97%
rename from deps/SoftFloat-3d/source/extF80_sqrt.c
rename to deps/SoftFloat-3e/source/extF80_sqrt.c
index 7596832e94..af8c496e14 100644
--- a/deps/SoftFloat-3d/source/extF80_sqrt.c
+++ b/deps/SoftFloat-3e/source/extF80_sqrt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_sub.c b/deps/SoftFloat-3e/source/extF80_sub.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_sub.c
rename to deps/SoftFloat-3e/source/extF80_sub.c
index 618b6a6d56..770c7563a2 100644
--- a/deps/SoftFloat-3d/source/extF80_sub.c
+++ b/deps/SoftFloat-3e/source/extF80_sub.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_to_f128.c b/deps/SoftFloat-3e/source/extF80_to_f128.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_to_f128.c
rename to deps/SoftFloat-3e/source/extF80_to_f128.c
index ea470004e7..4de90ae316 100644
--- a/deps/SoftFloat-3d/source/extF80_to_f128.c
+++ b/deps/SoftFloat-3e/source/extF80_to_f128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_to_f16.c b/deps/SoftFloat-3e/source/extF80_to_f16.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_to_f16.c
rename to deps/SoftFloat-3e/source/extF80_to_f16.c
index bec5ce92fe..5919403fb9 100644
--- a/deps/SoftFloat-3d/source/extF80_to_f16.c
+++ b/deps/SoftFloat-3e/source/extF80_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_to_f32.c b/deps/SoftFloat-3e/source/extF80_to_f32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_to_f32.c
rename to deps/SoftFloat-3e/source/extF80_to_f32.c
index d6364facc9..77fcfdc112 100644
--- a/deps/SoftFloat-3d/source/extF80_to_f32.c
+++ b/deps/SoftFloat-3e/source/extF80_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_to_f64.c b/deps/SoftFloat-3e/source/extF80_to_f64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_to_f64.c
rename to deps/SoftFloat-3e/source/extF80_to_f64.c
index ca8445d297..410d6622c4 100644
--- a/deps/SoftFloat-3d/source/extF80_to_f64.c
+++ b/deps/SoftFloat-3e/source/extF80_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_to_i32.c b/deps/SoftFloat-3e/source/extF80_to_i32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_to_i32.c
rename to deps/SoftFloat-3e/source/extF80_to_i32.c
index 3ee282d73e..9acdc3c9bc 100644
--- a/deps/SoftFloat-3d/source/extF80_to_i32.c
+++ b/deps/SoftFloat-3e/source/extF80_to_i32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_to_i32_r_minMag.c b/deps/SoftFloat-3e/source/extF80_to_i32_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_to_i32_r_minMag.c
rename to deps/SoftFloat-3e/source/extF80_to_i32_r_minMag.c
index ee6edbc6ef..03224678a1 100644
--- a/deps/SoftFloat-3d/source/extF80_to_i32_r_minMag.c
+++ b/deps/SoftFloat-3e/source/extF80_to_i32_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_to_i64.c b/deps/SoftFloat-3e/source/extF80_to_i64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_to_i64.c
rename to deps/SoftFloat-3e/source/extF80_to_i64.c
index 56c66a3a9c..ba307a61c6 100644
--- a/deps/SoftFloat-3d/source/extF80_to_i64.c
+++ b/deps/SoftFloat-3e/source/extF80_to_i64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_to_i64_r_minMag.c b/deps/SoftFloat-3e/source/extF80_to_i64_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_to_i64_r_minMag.c
rename to deps/SoftFloat-3e/source/extF80_to_i64_r_minMag.c
index d236f31f5a..8871d01d10 100644
--- a/deps/SoftFloat-3d/source/extF80_to_i64_r_minMag.c
+++ b/deps/SoftFloat-3e/source/extF80_to_i64_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_to_ui32.c b/deps/SoftFloat-3e/source/extF80_to_ui32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_to_ui32.c
rename to deps/SoftFloat-3e/source/extF80_to_ui32.c
index 09e0b32b7c..581297731d 100644
--- a/deps/SoftFloat-3d/source/extF80_to_ui32.c
+++ b/deps/SoftFloat-3e/source/extF80_to_ui32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_to_ui32_r_minMag.c b/deps/SoftFloat-3e/source/extF80_to_ui32_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_to_ui32_r_minMag.c
rename to deps/SoftFloat-3e/source/extF80_to_ui32_r_minMag.c
index 3ad924d572..be2c53b1d2 100644
--- a/deps/SoftFloat-3d/source/extF80_to_ui32_r_minMag.c
+++ b/deps/SoftFloat-3e/source/extF80_to_ui32_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_to_ui64.c b/deps/SoftFloat-3e/source/extF80_to_ui64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_to_ui64.c
rename to deps/SoftFloat-3e/source/extF80_to_ui64.c
index eee585da94..490b26aaf0 100644
--- a/deps/SoftFloat-3d/source/extF80_to_ui64.c
+++ b/deps/SoftFloat-3e/source/extF80_to_ui64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/extF80_to_ui64_r_minMag.c b/deps/SoftFloat-3e/source/extF80_to_ui64_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/extF80_to_ui64_r_minMag.c
rename to deps/SoftFloat-3e/source/extF80_to_ui64_r_minMag.c
index 344ff99c90..eca688c652 100644
--- a/deps/SoftFloat-3d/source/extF80_to_ui64_r_minMag.c
+++ b/deps/SoftFloat-3e/source/extF80_to_ui64_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_add.c b/deps/SoftFloat-3e/source/f128M_add.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f128M_add.c
rename to deps/SoftFloat-3e/source/f128M_add.c
index 10f73dcf8d..3062bee843 100644
--- a/deps/SoftFloat-3d/source/f128M_add.c
+++ b/deps/SoftFloat-3e/source/f128M_add.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_div.c b/deps/SoftFloat-3e/source/f128M_div.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_div.c
rename to deps/SoftFloat-3e/source/f128M_div.c
index 7380a20bcd..b443548f52 100644
--- a/deps/SoftFloat-3d/source/f128M_div.c
+++ b/deps/SoftFloat-3e/source/f128M_div.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_eq.c b/deps/SoftFloat-3e/source/f128M_eq.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_eq.c
rename to deps/SoftFloat-3e/source/f128M_eq.c
index 2af4c4b074..497fdbf6f0 100644
--- a/deps/SoftFloat-3d/source/f128M_eq.c
+++ b/deps/SoftFloat-3e/source/f128M_eq.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_eq_signaling.c b/deps/SoftFloat-3e/source/f128M_eq_signaling.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_eq_signaling.c
rename to deps/SoftFloat-3e/source/f128M_eq_signaling.c
index de698fce29..a9fa4d5101 100644
--- a/deps/SoftFloat-3d/source/f128M_eq_signaling.c
+++ b/deps/SoftFloat-3e/source/f128M_eq_signaling.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_le.c b/deps/SoftFloat-3e/source/f128M_le.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_le.c
rename to deps/SoftFloat-3e/source/f128M_le.c
index fb6a389d82..7306e45c36 100644
--- a/deps/SoftFloat-3d/source/f128M_le.c
+++ b/deps/SoftFloat-3e/source/f128M_le.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_le_quiet.c b/deps/SoftFloat-3e/source/f128M_le_quiet.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_le_quiet.c
rename to deps/SoftFloat-3e/source/f128M_le_quiet.c
index bbd978a54a..d9e442942d 100644
--- a/deps/SoftFloat-3d/source/f128M_le_quiet.c
+++ b/deps/SoftFloat-3e/source/f128M_le_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_lt.c b/deps/SoftFloat-3e/source/f128M_lt.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_lt.c
rename to deps/SoftFloat-3e/source/f128M_lt.c
index c1c4aa4046..d2f797feaf 100644
--- a/deps/SoftFloat-3d/source/f128M_lt.c
+++ b/deps/SoftFloat-3e/source/f128M_lt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_lt_quiet.c b/deps/SoftFloat-3e/source/f128M_lt_quiet.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_lt_quiet.c
rename to deps/SoftFloat-3e/source/f128M_lt_quiet.c
index 6ea3adac0f..adbddea71c 100644
--- a/deps/SoftFloat-3d/source/f128M_lt_quiet.c
+++ b/deps/SoftFloat-3e/source/f128M_lt_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_mul.c b/deps/SoftFloat-3e/source/f128M_mul.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_mul.c
rename to deps/SoftFloat-3e/source/f128M_mul.c
index f242551317..4b8292a27a 100644
--- a/deps/SoftFloat-3d/source/f128M_mul.c
+++ b/deps/SoftFloat-3e/source/f128M_mul.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_mulAdd.c b/deps/SoftFloat-3e/source/f128M_mulAdd.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f128M_mulAdd.c
rename to deps/SoftFloat-3e/source/f128M_mulAdd.c
index 0e19914c2c..2b0b7fe26e 100644
--- a/deps/SoftFloat-3d/source/f128M_mulAdd.c
+++ b/deps/SoftFloat-3e/source/f128M_mulAdd.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_rem.c b/deps/SoftFloat-3e/source/f128M_rem.c
similarity index 97%
rename from deps/SoftFloat-3d/source/f128M_rem.c
rename to deps/SoftFloat-3e/source/f128M_rem.c
index ba78f2a61f..39aafdd6ad 100644
--- a/deps/SoftFloat-3d/source/f128M_rem.c
+++ b/deps/SoftFloat-3e/source/f128M_rem.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_roundToInt.c b/deps/SoftFloat-3e/source/f128M_roundToInt.c
similarity index 83%
rename from deps/SoftFloat-3d/source/f128M_roundToInt.c
rename to deps/SoftFloat-3e/source/f128M_roundToInt.c
index 237c52cb47..b96d742b21 100644
--- a/deps/SoftFloat-3d/source/f128M_roundToInt.c
+++ b/deps/SoftFloat-3e/source/f128M_roundToInt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
California. All rights reserved.
@@ -95,15 +95,15 @@ void
zWPtr[indexWord( 4, 1 )] = 0;
zWPtr[indexWord( 4, 0 )] = 0;
sigExtra = aWPtr[indexWord( 4, 2 )];
- if ( ! sigExtra ) {
+ if ( !sigExtra ) {
sigExtra = aWPtr[indexWord( 4, 1 )] | aWPtr[indexWord( 4, 0 )];
}
- if ( ! sigExtra && ! (ui96 & 0x7FFFFFFF) ) goto ui96;
+ if ( !sigExtra && !(ui96 & 0x7FFFFFFF) ) goto ui96;
if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
sign = signF128UI96( ui96 );
switch ( roundingMode ) {
case softfloat_round_near_even:
- if ( ! fracF128UI96( ui96 ) && ! sigExtra ) break;
+ if ( !fracF128UI96( ui96 ) && !sigExtra ) break;
case softfloat_round_near_maxMag:
if ( exp == 0x3FFE ) goto mag1;
break;
@@ -111,8 +111,12 @@ void
if ( sign ) goto mag1;
break;
case softfloat_round_max:
- if ( ! sign ) goto mag1;
+ if ( !sign ) goto mag1;
break;
+#ifdef SOFTFLOAT_ROUND_ODD
+ case softfloat_round_odd:
+ goto mag1;
+#endif
}
ui96 = packToF128UI96( sign, 0, 0 );
goto ui96;
@@ -161,32 +165,40 @@ void
carry = (wordZ < wordA);
bit <<= 1;
extrasMask = bit - 1;
+ if ( exact && (extra || (wordA & extrasMask)) ) {
+ softfloat_exceptionFlags |= softfloat_flag_inexact;
+ }
if (
(roundingMode == softfloat_round_near_even)
- && ! extra && ! (wordZ & extrasMask)
+ && !extra && !(wordZ & extrasMask)
) {
- if ( ! bit ) {
+ if ( !bit ) {
zWPtr[index] = wordZ;
index += wordIncr;
wordZ = aWPtr[index] + carry;
- carry &= ! wordZ;
+ carry &= !wordZ;
zWPtr[index] = wordZ & ~1;
goto propagateCarry;
}
wordZ &= ~bit;
}
} else {
- extrasMask = bit - 1;
wordZ = wordA;
carry = 0;
- if (
- roundingMode
- == (signF128UI96( ui96 ) ? softfloat_round_min
- : softfloat_round_max)
- ) {
- if ( extra || (wordA & extrasMask) ) {
+ extrasMask = bit - 1;
+ if ( extra || (wordA & extrasMask) ) {
+ if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
+ if (
+ roundingMode
+ == (signF128UI96( ui96 ) ? softfloat_round_min
+ : softfloat_round_max)
+ ) {
wordZ += bit;
carry = (wordZ < wordA);
+#ifdef SOFTFLOAT_ROUND_ODD
+ } else if ( roundingMode == softfloat_round_odd ) {
+ wordZ |= bit;
+#endif
}
}
}
@@ -197,12 +209,7 @@ void
index += wordIncr;
wordZ = aWPtr[index] + carry;
zWPtr[index] = wordZ;
- carry &= ! wordZ;
- }
- /*------------------------------------------------------------------------
- *------------------------------------------------------------------------*/
- if ( exact && (softfloat_compare128M( aWPtr, zWPtr ) != 0) ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
+ carry &= !wordZ;
}
return;
/*------------------------------------------------------------------------
diff --git a/deps/SoftFloat-3d/source/f128M_sqrt.c b/deps/SoftFloat-3e/source/f128M_sqrt.c
similarity index 97%
rename from deps/SoftFloat-3d/source/f128M_sqrt.c
rename to deps/SoftFloat-3e/source/f128M_sqrt.c
index d697f9ae18..a984208037 100644
--- a/deps/SoftFloat-3d/source/f128M_sqrt.c
+++ b/deps/SoftFloat-3e/source/f128M_sqrt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_sub.c b/deps/SoftFloat-3e/source/f128M_sub.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f128M_sub.c
rename to deps/SoftFloat-3e/source/f128M_sub.c
index 78ed09eeae..5d65c799f3 100644
--- a/deps/SoftFloat-3d/source/f128M_sub.c
+++ b/deps/SoftFloat-3e/source/f128M_sub.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_to_extF80M.c b/deps/SoftFloat-3e/source/f128M_to_extF80M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_to_extF80M.c
rename to deps/SoftFloat-3e/source/f128M_to_extF80M.c
index 973988ddae..b0340c7948 100644
--- a/deps/SoftFloat-3d/source/f128M_to_extF80M.c
+++ b/deps/SoftFloat-3e/source/f128M_to_extF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_to_f16.c b/deps/SoftFloat-3e/source/f128M_to_f16.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_to_f16.c
rename to deps/SoftFloat-3e/source/f128M_to_f16.c
index 70f97134e1..95109a771d 100644
--- a/deps/SoftFloat-3d/source/f128M_to_f16.c
+++ b/deps/SoftFloat-3e/source/f128M_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_to_f32.c b/deps/SoftFloat-3e/source/f128M_to_f32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_to_f32.c
rename to deps/SoftFloat-3e/source/f128M_to_f32.c
index ba3122c2b3..4542deb0c3 100644
--- a/deps/SoftFloat-3d/source/f128M_to_f32.c
+++ b/deps/SoftFloat-3e/source/f128M_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_to_f64.c b/deps/SoftFloat-3e/source/f128M_to_f64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_to_f64.c
rename to deps/SoftFloat-3e/source/f128M_to_f64.c
index 7d7e7be660..6213bb7f50 100644
--- a/deps/SoftFloat-3d/source/f128M_to_f64.c
+++ b/deps/SoftFloat-3e/source/f128M_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_to_i32.c b/deps/SoftFloat-3e/source/f128M_to_i32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_to_i32.c
rename to deps/SoftFloat-3e/source/f128M_to_i32.c
index 24ea2e674a..54cc6f6037 100644
--- a/deps/SoftFloat-3d/source/f128M_to_i32.c
+++ b/deps/SoftFloat-3e/source/f128M_to_i32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_to_i32_r_minMag.c b/deps/SoftFloat-3e/source/f128M_to_i32_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_to_i32_r_minMag.c
rename to deps/SoftFloat-3e/source/f128M_to_i32_r_minMag.c
index 7a952edae2..1f22039ded 100644
--- a/deps/SoftFloat-3d/source/f128M_to_i32_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f128M_to_i32_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_to_i64.c b/deps/SoftFloat-3e/source/f128M_to_i64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_to_i64.c
rename to deps/SoftFloat-3e/source/f128M_to_i64.c
index 67ef7a2bc0..08844b6be6 100644
--- a/deps/SoftFloat-3d/source/f128M_to_i64.c
+++ b/deps/SoftFloat-3e/source/f128M_to_i64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_to_i64_r_minMag.c b/deps/SoftFloat-3e/source/f128M_to_i64_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_to_i64_r_minMag.c
rename to deps/SoftFloat-3e/source/f128M_to_i64_r_minMag.c
index ec27dc1f31..da3d28ad0b 100644
--- a/deps/SoftFloat-3d/source/f128M_to_i64_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f128M_to_i64_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_to_ui32.c b/deps/SoftFloat-3e/source/f128M_to_ui32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_to_ui32.c
rename to deps/SoftFloat-3e/source/f128M_to_ui32.c
index ff8d6c42b4..c1baa063a6 100644
--- a/deps/SoftFloat-3d/source/f128M_to_ui32.c
+++ b/deps/SoftFloat-3e/source/f128M_to_ui32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_to_ui32_r_minMag.c b/deps/SoftFloat-3e/source/f128M_to_ui32_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_to_ui32_r_minMag.c
rename to deps/SoftFloat-3e/source/f128M_to_ui32_r_minMag.c
index 950d838038..a1aca621ab 100644
--- a/deps/SoftFloat-3d/source/f128M_to_ui32_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f128M_to_ui32_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_to_ui64.c b/deps/SoftFloat-3e/source/f128M_to_ui64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_to_ui64.c
rename to deps/SoftFloat-3e/source/f128M_to_ui64.c
index 2b6858c455..abaa85543e 100644
--- a/deps/SoftFloat-3d/source/f128M_to_ui64.c
+++ b/deps/SoftFloat-3e/source/f128M_to_ui64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128M_to_ui64_r_minMag.c b/deps/SoftFloat-3e/source/f128M_to_ui64_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128M_to_ui64_r_minMag.c
rename to deps/SoftFloat-3e/source/f128M_to_ui64_r_minMag.c
index f4f99d90e4..7a1b602959 100644
--- a/deps/SoftFloat-3d/source/f128M_to_ui64_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f128M_to_ui64_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_add.c b/deps/SoftFloat-3e/source/f128_add.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_add.c
rename to deps/SoftFloat-3e/source/f128_add.c
index d04aee546b..e9caba6825 100644
--- a/deps/SoftFloat-3d/source/f128_add.c
+++ b/deps/SoftFloat-3e/source/f128_add.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_div.c b/deps/SoftFloat-3e/source/f128_div.c
similarity index 97%
rename from deps/SoftFloat-3d/source/f128_div.c
rename to deps/SoftFloat-3e/source/f128_div.c
index db7b6cd1d6..0693db754a 100644
--- a/deps/SoftFloat-3d/source/f128_div.c
+++ b/deps/SoftFloat-3e/source/f128_div.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_eq.c b/deps/SoftFloat-3e/source/f128_eq.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f128_eq.c
rename to deps/SoftFloat-3e/source/f128_eq.c
index b366b7d359..9462fc2abd 100644
--- a/deps/SoftFloat-3d/source/f128_eq.c
+++ b/deps/SoftFloat-3e/source/f128_eq.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_eq_signaling.c b/deps/SoftFloat-3e/source/f128_eq_signaling.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f128_eq_signaling.c
rename to deps/SoftFloat-3e/source/f128_eq_signaling.c
index af47f68398..5d0819d291 100644
--- a/deps/SoftFloat-3d/source/f128_eq_signaling.c
+++ b/deps/SoftFloat-3e/source/f128_eq_signaling.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_isSignalingNaN.c b/deps/SoftFloat-3e/source/f128_isSignalingNaN.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f128_isSignalingNaN.c
rename to deps/SoftFloat-3e/source/f128_isSignalingNaN.c
index d2d66baa5a..a764ff6bfe 100644
--- a/deps/SoftFloat-3d/source/f128_isSignalingNaN.c
+++ b/deps/SoftFloat-3e/source/f128_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_le.c b/deps/SoftFloat-3e/source/f128_le.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_le.c
rename to deps/SoftFloat-3e/source/f128_le.c
index c03c196135..521a1cb037 100644
--- a/deps/SoftFloat-3d/source/f128_le.c
+++ b/deps/SoftFloat-3e/source/f128_le.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_le_quiet.c b/deps/SoftFloat-3e/source/f128_le_quiet.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_le_quiet.c
rename to deps/SoftFloat-3e/source/f128_le_quiet.c
index eb02bc7fc2..820b28b810 100644
--- a/deps/SoftFloat-3d/source/f128_le_quiet.c
+++ b/deps/SoftFloat-3e/source/f128_le_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_lt.c b/deps/SoftFloat-3e/source/f128_lt.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_lt.c
rename to deps/SoftFloat-3e/source/f128_lt.c
index d6109df818..fa46ae2bce 100644
--- a/deps/SoftFloat-3d/source/f128_lt.c
+++ b/deps/SoftFloat-3e/source/f128_lt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_lt_quiet.c b/deps/SoftFloat-3e/source/f128_lt_quiet.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_lt_quiet.c
rename to deps/SoftFloat-3e/source/f128_lt_quiet.c
index bf6a7aaed9..d491de2f2d 100644
--- a/deps/SoftFloat-3d/source/f128_lt_quiet.c
+++ b/deps/SoftFloat-3e/source/f128_lt_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_mul.c b/deps/SoftFloat-3e/source/f128_mul.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_mul.c
rename to deps/SoftFloat-3e/source/f128_mul.c
index 495322b012..24af86a245 100644
--- a/deps/SoftFloat-3d/source/f128_mul.c
+++ b/deps/SoftFloat-3e/source/f128_mul.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_mulAdd.c b/deps/SoftFloat-3e/source/f128_mulAdd.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f128_mulAdd.c
rename to deps/SoftFloat-3e/source/f128_mulAdd.c
index 9486fe098e..c7272d4e0e 100644
--- a/deps/SoftFloat-3d/source/f128_mulAdd.c
+++ b/deps/SoftFloat-3e/source/f128_mulAdd.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_rem.c b/deps/SoftFloat-3e/source/f128_rem.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_rem.c
rename to deps/SoftFloat-3e/source/f128_rem.c
index 03350746b4..f525f697a5 100644
--- a/deps/SoftFloat-3d/source/f128_rem.c
+++ b/deps/SoftFloat-3e/source/f128_rem.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_roundToInt.c b/deps/SoftFloat-3e/source/f128_roundToInt.c
similarity index 78%
rename from deps/SoftFloat-3d/source/f128_roundToInt.c
rename to deps/SoftFloat-3e/source/f128_roundToInt.c
index fb305c28b9..69185d6efa 100644
--- a/deps/SoftFloat-3d/source/f128_roundToInt.c
+++ b/deps/SoftFloat-3e/source/f128_roundToInt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
California. All rights reserved.
@@ -48,8 +48,9 @@ float128_t
uint_fast64_t uiA64, uiA0;
int_fast32_t exp;
struct uint128 uiZ;
- uint_fast64_t lastBitMask, roundBitsMask;
+ uint_fast64_t lastBitMask0, roundBitsMask;
bool roundNearEven;
+ uint_fast64_t lastBitMask64;
union ui128_f128 uZ;
/*------------------------------------------------------------------------
@@ -72,8 +73,8 @@ float128_t
}
/*--------------------------------------------------------------------
*--------------------------------------------------------------------*/
- lastBitMask = (uint_fast64_t) 2<<(0x406E - exp);
- roundBitsMask = lastBitMask - 1;
+ lastBitMask0 = (uint_fast64_t) 2<<(0x406E - exp);
+ roundBitsMask = lastBitMask0 - 1;
uiZ.v64 = uiA64;
uiZ.v0 = uiA0;
roundNearEven = (roundingMode == softfloat_round_near_even);
@@ -89,9 +90,9 @@ float128_t
}
}
} else {
- uiZ = softfloat_add128( uiZ.v64, uiZ.v0, 0, lastBitMask>>1 );
- if ( roundNearEven && ! (uiZ.v0 & roundBitsMask) ) {
- uiZ.v0 &= ~lastBitMask;
+ uiZ = softfloat_add128( uiZ.v64, uiZ.v0, 0, lastBitMask0>>1 );
+ if ( roundNearEven && !(uiZ.v0 & roundBitsMask) ) {
+ uiZ.v0 &= ~lastBitMask0;
}
}
} else if (
@@ -102,19 +103,18 @@ float128_t
uiZ = softfloat_add128( uiZ.v64, uiZ.v0, 0, roundBitsMask );
}
uiZ.v0 &= ~roundBitsMask;
+ lastBitMask64 = !lastBitMask0;
} else {
/*--------------------------------------------------------------------
*--------------------------------------------------------------------*/
if ( exp < 0x3FFF ) {
- if ( ! ((uiA64 & UINT64_C( 0x7FFFFFFFFFFFFFFF )) | uiA0) ) {
- return a;
- }
+ if ( !((uiA64 & UINT64_C( 0x7FFFFFFFFFFFFFFF )) | uiA0) ) return a;
if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
uiZ.v64 = uiA64 & packToF128UI64( 1, 0, 0 );
uiZ.v0 = 0;
switch ( roundingMode ) {
case softfloat_round_near_even:
- if ( ! (fracF128UI64( uiA64 ) | uiA0) ) break;
+ if ( !(fracF128UI64( uiA64 ) | uiA0) ) break;
case softfloat_round_near_maxMag:
if ( exp == 0x3FFE ) uiZ.v64 |= packToF128UI64( 0, 0x3FFF, 0 );
break;
@@ -122,8 +122,13 @@ float128_t
if ( uiZ.v64 ) uiZ.v64 = packToF128UI64( 1, 0x3FFF, 0 );
break;
case softfloat_round_max:
- if ( ! uiZ.v64 ) uiZ.v64 = packToF128UI64( 0, 0x3FFF, 0 );
+ if ( !uiZ.v64 ) uiZ.v64 = packToF128UI64( 0, 0x3FFF, 0 );
break;
+#ifdef SOFTFLOAT_ROUND_ODD
+ case softfloat_round_odd:
+ uiZ.v64 |= packToF128UI64( 0, 0x3FFF, 0 );
+ break;
+#endif
}
goto uiZ;
}
@@ -131,14 +136,14 @@ float128_t
*--------------------------------------------------------------------*/
uiZ.v64 = uiA64;
uiZ.v0 = 0;
- lastBitMask = (uint_fast64_t) 1<<(0x402F - exp);
- roundBitsMask = lastBitMask - 1;
+ lastBitMask64 = (uint_fast64_t) 1<<(0x402F - exp);
+ roundBitsMask = lastBitMask64 - 1;
if ( roundingMode == softfloat_round_near_maxMag ) {
- uiZ.v64 += lastBitMask>>1;
+ uiZ.v64 += lastBitMask64>>1;
} else if ( roundingMode == softfloat_round_near_even ) {
- uiZ.v64 += lastBitMask>>1;
- if ( ! ((uiZ.v64 & roundBitsMask) | uiA0) ) {
- uiZ.v64 &= ~lastBitMask;
+ uiZ.v64 += lastBitMask64>>1;
+ if ( !((uiZ.v64 & roundBitsMask) | uiA0) ) {
+ uiZ.v64 &= ~lastBitMask64;
}
} else if (
roundingMode
@@ -148,9 +153,16 @@ float128_t
uiZ.v64 = (uiZ.v64 | (uiA0 != 0)) + roundBitsMask;
}
uiZ.v64 &= ~roundBitsMask;
+ lastBitMask0 = 0;
}
- if ( exact && ((uiZ.v64 != uiA64) || (uiZ.v0 != uiA0)) ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
+ if ( (uiZ.v64 != uiA64) || (uiZ.v0 != uiA0) ) {
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) {
+ uiZ.v64 |= lastBitMask64;
+ uiZ.v0 |= lastBitMask0;
+ }
+#endif
+ if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
}
uiZ:
uZ.ui = uiZ;
diff --git a/deps/SoftFloat-3d/source/f128_sqrt.c b/deps/SoftFloat-3e/source/f128_sqrt.c
similarity index 97%
rename from deps/SoftFloat-3d/source/f128_sqrt.c
rename to deps/SoftFloat-3e/source/f128_sqrt.c
index 19966866ae..f1d9bac792 100644
--- a/deps/SoftFloat-3d/source/f128_sqrt.c
+++ b/deps/SoftFloat-3e/source/f128_sqrt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_sub.c b/deps/SoftFloat-3e/source/f128_sub.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_sub.c
rename to deps/SoftFloat-3e/source/f128_sub.c
index 24b73e86b6..5181cc5ecd 100644
--- a/deps/SoftFloat-3d/source/f128_sub.c
+++ b/deps/SoftFloat-3e/source/f128_sub.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_to_extF80.c b/deps/SoftFloat-3e/source/f128_to_extF80.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_to_extF80.c
rename to deps/SoftFloat-3e/source/f128_to_extF80.c
index 7e7c42d0e3..ec169c0ffa 100644
--- a/deps/SoftFloat-3d/source/f128_to_extF80.c
+++ b/deps/SoftFloat-3e/source/f128_to_extF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_to_f16.c b/deps/SoftFloat-3e/source/f128_to_f16.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_to_f16.c
rename to deps/SoftFloat-3e/source/f128_to_f16.c
index 10a887f668..5a8ee72129 100644
--- a/deps/SoftFloat-3d/source/f128_to_f16.c
+++ b/deps/SoftFloat-3e/source/f128_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_to_f32.c b/deps/SoftFloat-3e/source/f128_to_f32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_to_f32.c
rename to deps/SoftFloat-3e/source/f128_to_f32.c
index 797dc338e9..07e4a80df6 100644
--- a/deps/SoftFloat-3d/source/f128_to_f32.c
+++ b/deps/SoftFloat-3e/source/f128_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_to_f64.c b/deps/SoftFloat-3e/source/f128_to_f64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_to_f64.c
rename to deps/SoftFloat-3e/source/f128_to_f64.c
index 302f193abf..f791938b41 100644
--- a/deps/SoftFloat-3d/source/f128_to_f64.c
+++ b/deps/SoftFloat-3e/source/f128_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_to_i32.c b/deps/SoftFloat-3e/source/f128_to_i32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_to_i32.c
rename to deps/SoftFloat-3e/source/f128_to_i32.c
index 87a7429417..16c4a3ccda 100644
--- a/deps/SoftFloat-3d/source/f128_to_i32.c
+++ b/deps/SoftFloat-3e/source/f128_to_i32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_to_i32_r_minMag.c b/deps/SoftFloat-3e/source/f128_to_i32_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_to_i32_r_minMag.c
rename to deps/SoftFloat-3e/source/f128_to_i32_r_minMag.c
index 5f5d53ee6c..18cfeaee54 100644
--- a/deps/SoftFloat-3d/source/f128_to_i32_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f128_to_i32_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_to_i64.c b/deps/SoftFloat-3e/source/f128_to_i64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_to_i64.c
rename to deps/SoftFloat-3e/source/f128_to_i64.c
index c6d87955b4..f5546604a2 100644
--- a/deps/SoftFloat-3d/source/f128_to_i64.c
+++ b/deps/SoftFloat-3e/source/f128_to_i64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_to_i64_r_minMag.c b/deps/SoftFloat-3e/source/f128_to_i64_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_to_i64_r_minMag.c
rename to deps/SoftFloat-3e/source/f128_to_i64_r_minMag.c
index 00df9b783a..e2cc62e27e 100644
--- a/deps/SoftFloat-3d/source/f128_to_i64_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f128_to_i64_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_to_ui32.c b/deps/SoftFloat-3e/source/f128_to_ui32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_to_ui32.c
rename to deps/SoftFloat-3e/source/f128_to_ui32.c
index 6802c0d754..7d8f3f8a11 100644
--- a/deps/SoftFloat-3d/source/f128_to_ui32.c
+++ b/deps/SoftFloat-3e/source/f128_to_ui32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_to_ui32_r_minMag.c b/deps/SoftFloat-3e/source/f128_to_ui32_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_to_ui32_r_minMag.c
rename to deps/SoftFloat-3e/source/f128_to_ui32_r_minMag.c
index f29ecc0df9..92facd5178 100644
--- a/deps/SoftFloat-3d/source/f128_to_ui32_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f128_to_ui32_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_to_ui64.c b/deps/SoftFloat-3e/source/f128_to_ui64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_to_ui64.c
rename to deps/SoftFloat-3e/source/f128_to_ui64.c
index 504b25c8f6..3c38882ab7 100644
--- a/deps/SoftFloat-3d/source/f128_to_ui64.c
+++ b/deps/SoftFloat-3e/source/f128_to_ui64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f128_to_ui64_r_minMag.c b/deps/SoftFloat-3e/source/f128_to_ui64_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f128_to_ui64_r_minMag.c
rename to deps/SoftFloat-3e/source/f128_to_ui64_r_minMag.c
index 13d7e11d91..edeafd3c81 100644
--- a/deps/SoftFloat-3d/source/f128_to_ui64_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f128_to_ui64_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_add.c b/deps/SoftFloat-3e/source/f16_add.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f16_add.c
rename to deps/SoftFloat-3e/source/f16_add.c
index 82397f6720..ff6ec258cb 100644
--- a/deps/SoftFloat-3d/source/f16_add.c
+++ b/deps/SoftFloat-3e/source/f16_add.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_div.c b/deps/SoftFloat-3e/source/f16_div.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_div.c
rename to deps/SoftFloat-3e/source/f16_div.c
index 20e2abebd9..77f9a2cd2b 100644
--- a/deps/SoftFloat-3d/source/f16_div.c
+++ b/deps/SoftFloat-3e/source/f16_div.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_eq.c b/deps/SoftFloat-3e/source/f16_eq.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f16_eq.c
rename to deps/SoftFloat-3e/source/f16_eq.c
index 5d5d8fe098..692fa035f9 100644
--- a/deps/SoftFloat-3d/source/f16_eq.c
+++ b/deps/SoftFloat-3e/source/f16_eq.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_eq_signaling.c b/deps/SoftFloat-3e/source/f16_eq_signaling.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f16_eq_signaling.c
rename to deps/SoftFloat-3e/source/f16_eq_signaling.c
index 6cb4f7e4f3..c1e7a509ca 100644
--- a/deps/SoftFloat-3d/source/f16_eq_signaling.c
+++ b/deps/SoftFloat-3e/source/f16_eq_signaling.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_isSignalingNaN.c b/deps/SoftFloat-3e/source/f16_isSignalingNaN.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f16_isSignalingNaN.c
rename to deps/SoftFloat-3e/source/f16_isSignalingNaN.c
index 9589fe8540..3eb3d4cc6b 100644
--- a/deps/SoftFloat-3d/source/f16_isSignalingNaN.c
+++ b/deps/SoftFloat-3e/source/f16_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_le.c b/deps/SoftFloat-3e/source/f16_le.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f16_le.c
rename to deps/SoftFloat-3e/source/f16_le.c
index 0b5706d843..d7313debd5 100644
--- a/deps/SoftFloat-3d/source/f16_le.c
+++ b/deps/SoftFloat-3e/source/f16_le.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_le_quiet.c b/deps/SoftFloat-3e/source/f16_le_quiet.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f16_le_quiet.c
rename to deps/SoftFloat-3e/source/f16_le_quiet.c
index b1f18a76d3..15181c2602 100644
--- a/deps/SoftFloat-3d/source/f16_le_quiet.c
+++ b/deps/SoftFloat-3e/source/f16_le_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_lt.c b/deps/SoftFloat-3e/source/f16_lt.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f16_lt.c
rename to deps/SoftFloat-3e/source/f16_lt.c
index 92c0f1a141..7745699a2c 100644
--- a/deps/SoftFloat-3d/source/f16_lt.c
+++ b/deps/SoftFloat-3e/source/f16_lt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_lt_quiet.c b/deps/SoftFloat-3e/source/f16_lt_quiet.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f16_lt_quiet.c
rename to deps/SoftFloat-3e/source/f16_lt_quiet.c
index a743a69ea5..a31e4a13f4 100644
--- a/deps/SoftFloat-3d/source/f16_lt_quiet.c
+++ b/deps/SoftFloat-3e/source/f16_lt_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_mul.c b/deps/SoftFloat-3e/source/f16_mul.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_mul.c
rename to deps/SoftFloat-3e/source/f16_mul.c
index 4bfc0c1ab1..a47cab8ce3 100644
--- a/deps/SoftFloat-3d/source/f16_mul.c
+++ b/deps/SoftFloat-3e/source/f16_mul.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_mulAdd.c b/deps/SoftFloat-3e/source/f16_mulAdd.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f16_mulAdd.c
rename to deps/SoftFloat-3e/source/f16_mulAdd.c
index a94762f45f..e97571ac50 100644
--- a/deps/SoftFloat-3d/source/f16_mulAdd.c
+++ b/deps/SoftFloat-3e/source/f16_mulAdd.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_rem.c b/deps/SoftFloat-3e/source/f16_rem.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_rem.c
rename to deps/SoftFloat-3e/source/f16_rem.c
index 6a72eea709..0ffa498a17 100644
--- a/deps/SoftFloat-3d/source/f16_rem.c
+++ b/deps/SoftFloat-3e/source/f16_rem.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_roundToInt.c b/deps/SoftFloat-3e/source/f16_roundToInt.c
similarity index 85%
rename from deps/SoftFloat-3d/source/f16_roundToInt.c
rename to deps/SoftFloat-3e/source/f16_roundToInt.c
index fabbb950bb..a567d51d9f 100644
--- a/deps/SoftFloat-3d/source/f16_roundToInt.c
+++ b/deps/SoftFloat-3e/source/f16_roundToInt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
California. All rights reserved.
@@ -57,12 +57,12 @@ float16_t f16_roundToInt( float16_t a, uint_fast8_t roundingMode, bool exact )
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( exp <= 0xE ) {
- if ( ! (uint16_t) (uiA<<1) ) return a;
+ if ( !(uint16_t) (uiA<<1) ) return a;
if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
uiZ = uiA & packToF16UI( 1, 0, 0 );
switch ( roundingMode ) {
case softfloat_round_near_even:
- if ( ! fracF16UI( uiA ) ) break;
+ if ( !fracF16UI( uiA ) ) break;
case softfloat_round_near_maxMag:
if ( exp == 0xE ) uiZ |= packToF16UI( 0, 0xF, 0 );
break;
@@ -70,8 +70,13 @@ float16_t f16_roundToInt( float16_t a, uint_fast8_t roundingMode, bool exact )
if ( uiZ ) uiZ = packToF16UI( 1, 0xF, 0 );
break;
case softfloat_round_max:
- if ( ! uiZ ) uiZ = packToF16UI( 0, 0xF, 0 );
+ if ( !uiZ ) uiZ = packToF16UI( 0, 0xF, 0 );
break;
+#ifdef SOFTFLOAT_ROUND_ODD
+ case softfloat_round_odd:
+ uiZ |= packToF16UI( 0, 0xF, 0 );
+ break;
+#endif
}
goto uiZ;
}
@@ -93,7 +98,7 @@ float16_t f16_roundToInt( float16_t a, uint_fast8_t roundingMode, bool exact )
uiZ += lastBitMask>>1;
} else if ( roundingMode == softfloat_round_near_even ) {
uiZ += lastBitMask>>1;
- if ( ! (uiZ & roundBitsMask) ) uiZ &= ~lastBitMask;
+ if ( !(uiZ & roundBitsMask) ) uiZ &= ~lastBitMask;
} else if (
roundingMode
== (signF16UI( uiZ ) ? softfloat_round_min : softfloat_round_max)
@@ -101,8 +106,11 @@ float16_t f16_roundToInt( float16_t a, uint_fast8_t roundingMode, bool exact )
uiZ += roundBitsMask;
}
uiZ &= ~roundBitsMask;
- if ( exact && (uiZ != uiA) ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
+ if ( uiZ != uiA ) {
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) uiZ |= lastBitMask;
+#endif
+ if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
}
uiZ:
uZ.ui = uiZ;
diff --git a/deps/SoftFloat-3d/source/f16_sqrt.c b/deps/SoftFloat-3e/source/f16_sqrt.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_sqrt.c
rename to deps/SoftFloat-3e/source/f16_sqrt.c
index f354b84474..47a3bbf148 100644
--- a/deps/SoftFloat-3d/source/f16_sqrt.c
+++ b/deps/SoftFloat-3e/source/f16_sqrt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_sub.c b/deps/SoftFloat-3e/source/f16_sub.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f16_sub.c
rename to deps/SoftFloat-3e/source/f16_sub.c
index 8b90eb72c2..03a87cf325 100644
--- a/deps/SoftFloat-3d/source/f16_sub.c
+++ b/deps/SoftFloat-3e/source/f16_sub.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_to_extF80.c b/deps/SoftFloat-3e/source/f16_to_extF80.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_to_extF80.c
rename to deps/SoftFloat-3e/source/f16_to_extF80.c
index 59ce968c01..99c2dfc746 100644
--- a/deps/SoftFloat-3d/source/f16_to_extF80.c
+++ b/deps/SoftFloat-3e/source/f16_to_extF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_to_extF80M.c b/deps/SoftFloat-3e/source/f16_to_extF80M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_to_extF80M.c
rename to deps/SoftFloat-3e/source/f16_to_extF80M.c
index f9b60c333c..7f2d53458d 100644
--- a/deps/SoftFloat-3d/source/f16_to_extF80M.c
+++ b/deps/SoftFloat-3e/source/f16_to_extF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_to_f128.c b/deps/SoftFloat-3e/source/f16_to_f128.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_to_f128.c
rename to deps/SoftFloat-3e/source/f16_to_f128.c
index 250fa37c5b..c4b81dc840 100644
--- a/deps/SoftFloat-3d/source/f16_to_f128.c
+++ b/deps/SoftFloat-3e/source/f16_to_f128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_to_f128M.c b/deps/SoftFloat-3e/source/f16_to_f128M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_to_f128M.c
rename to deps/SoftFloat-3e/source/f16_to_f128M.c
index de2592f60c..b4fc873b56 100644
--- a/deps/SoftFloat-3d/source/f16_to_f128M.c
+++ b/deps/SoftFloat-3e/source/f16_to_f128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_to_f32.c b/deps/SoftFloat-3e/source/f16_to_f32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_to_f32.c
rename to deps/SoftFloat-3e/source/f16_to_f32.c
index 4f0c5b48db..a219454bf2 100644
--- a/deps/SoftFloat-3d/source/f16_to_f32.c
+++ b/deps/SoftFloat-3e/source/f16_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_to_f64.c b/deps/SoftFloat-3e/source/f16_to_f64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_to_f64.c
rename to deps/SoftFloat-3e/source/f16_to_f64.c
index 5ec0c427c1..7e87c25f4f 100644
--- a/deps/SoftFloat-3d/source/f16_to_f64.c
+++ b/deps/SoftFloat-3e/source/f16_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_to_i32.c b/deps/SoftFloat-3e/source/f16_to_i32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_to_i32.c
rename to deps/SoftFloat-3e/source/f16_to_i32.c
index 092ecbd568..805c4e5503 100644
--- a/deps/SoftFloat-3d/source/f16_to_i32.c
+++ b/deps/SoftFloat-3e/source/f16_to_i32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_to_i32_r_minMag.c b/deps/SoftFloat-3e/source/f16_to_i32_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_to_i32_r_minMag.c
rename to deps/SoftFloat-3e/source/f16_to_i32_r_minMag.c
index 0c6cd7e7fc..b1f9963718 100644
--- a/deps/SoftFloat-3d/source/f16_to_i32_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f16_to_i32_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_to_i64.c b/deps/SoftFloat-3e/source/f16_to_i64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_to_i64.c
rename to deps/SoftFloat-3e/source/f16_to_i64.c
index cf205cc3db..e3c0065f61 100644
--- a/deps/SoftFloat-3d/source/f16_to_i64.c
+++ b/deps/SoftFloat-3e/source/f16_to_i64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_to_i64_r_minMag.c b/deps/SoftFloat-3e/source/f16_to_i64_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_to_i64_r_minMag.c
rename to deps/SoftFloat-3e/source/f16_to_i64_r_minMag.c
index b1b9d18762..a5a6a077e6 100644
--- a/deps/SoftFloat-3d/source/f16_to_i64_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f16_to_i64_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_to_ui32.c b/deps/SoftFloat-3e/source/f16_to_ui32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_to_ui32.c
rename to deps/SoftFloat-3e/source/f16_to_ui32.c
index 7de931d774..5371ca3395 100644
--- a/deps/SoftFloat-3d/source/f16_to_ui32.c
+++ b/deps/SoftFloat-3e/source/f16_to_ui32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_to_ui32_r_minMag.c b/deps/SoftFloat-3e/source/f16_to_ui32_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_to_ui32_r_minMag.c
rename to deps/SoftFloat-3e/source/f16_to_ui32_r_minMag.c
index 10b6caad40..5d51df5ec1 100644
--- a/deps/SoftFloat-3d/source/f16_to_ui32_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f16_to_ui32_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f16_to_ui64.c b/deps/SoftFloat-3e/source/f16_to_ui64.c
similarity index 83%
rename from deps/SoftFloat-3d/source/f16_to_ui64.c
rename to deps/SoftFloat-3e/source/f16_to_ui64.c
index 449c6d4809..e6cb000f1e 100644
--- a/deps/SoftFloat-3d/source/f16_to_ui64.c
+++ b/deps/SoftFloat-3e/source/f16_to_ui64.c
@@ -2,9 +2,9 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
University of California. All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -50,6 +50,9 @@ uint_fast64_t f16_to_ui64( float16_t a, uint_fast8_t roundingMode, bool exact )
uint_fast16_t frac;
uint_fast32_t sig32;
int_fast8_t shiftDist;
+#ifndef SOFTFLOAT_FAST_INT64
+ uint32_t extSig[3];
+#endif
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
@@ -78,7 +81,16 @@ uint_fast64_t f16_to_ui64( float16_t a, uint_fast8_t roundingMode, bool exact )
shiftDist = exp - 0x0D;
if ( 0 < shiftDist ) sig32 <<= shiftDist;
}
- return softfloat_roundToUI32( sign, sig32, roundingMode, exact );
+#ifdef SOFTFLOAT_FAST_INT64
+ return
+ softfloat_roundToUI64(
+ sign, sig32>>12, (uint_fast64_t) sig32<<52, roundingMode, exact );
+#else
+ extSig[indexWord( 3, 2 )] = 0;
+ extSig[indexWord( 3, 1 )] = sig32>>12;
+ extSig[indexWord( 3, 0 )] = sig32<<20;
+ return softfloat_roundMToUI64( sign, extSig, roundingMode, exact );
+#endif
}
diff --git a/deps/SoftFloat-3d/source/f16_to_ui64_r_minMag.c b/deps/SoftFloat-3e/source/f16_to_ui64_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f16_to_ui64_r_minMag.c
rename to deps/SoftFloat-3e/source/f16_to_ui64_r_minMag.c
index 53e6ae73e3..b4f975f833 100644
--- a/deps/SoftFloat-3d/source/f16_to_ui64_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f16_to_ui64_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_add.c b/deps/SoftFloat-3e/source/f32_add.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f32_add.c
rename to deps/SoftFloat-3e/source/f32_add.c
index dba6857f08..70e03e7f94 100644
--- a/deps/SoftFloat-3d/source/f32_add.c
+++ b/deps/SoftFloat-3e/source/f32_add.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_div.c b/deps/SoftFloat-3e/source/f32_div.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_div.c
rename to deps/SoftFloat-3e/source/f32_div.c
index bed54b24ed..05ec701f76 100644
--- a/deps/SoftFloat-3d/source/f32_div.c
+++ b/deps/SoftFloat-3e/source/f32_div.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_eq.c b/deps/SoftFloat-3e/source/f32_eq.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f32_eq.c
rename to deps/SoftFloat-3e/source/f32_eq.c
index 6fc2a653af..801bbfd734 100644
--- a/deps/SoftFloat-3d/source/f32_eq.c
+++ b/deps/SoftFloat-3e/source/f32_eq.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_eq_signaling.c b/deps/SoftFloat-3e/source/f32_eq_signaling.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f32_eq_signaling.c
rename to deps/SoftFloat-3e/source/f32_eq_signaling.c
index b79aa59d70..4c610ffae8 100644
--- a/deps/SoftFloat-3d/source/f32_eq_signaling.c
+++ b/deps/SoftFloat-3e/source/f32_eq_signaling.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_isSignalingNaN.c b/deps/SoftFloat-3e/source/f32_isSignalingNaN.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f32_isSignalingNaN.c
rename to deps/SoftFloat-3e/source/f32_isSignalingNaN.c
index 76f23ff7d3..f5954cbbc4 100644
--- a/deps/SoftFloat-3d/source/f32_isSignalingNaN.c
+++ b/deps/SoftFloat-3e/source/f32_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_le.c b/deps/SoftFloat-3e/source/f32_le.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f32_le.c
rename to deps/SoftFloat-3e/source/f32_le.c
index e7de0dd8b6..d89d1e88df 100644
--- a/deps/SoftFloat-3d/source/f32_le.c
+++ b/deps/SoftFloat-3e/source/f32_le.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_le_quiet.c b/deps/SoftFloat-3e/source/f32_le_quiet.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f32_le_quiet.c
rename to deps/SoftFloat-3e/source/f32_le_quiet.c
index 2b9d49761a..c2d4297a29 100644
--- a/deps/SoftFloat-3d/source/f32_le_quiet.c
+++ b/deps/SoftFloat-3e/source/f32_le_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_lt.c b/deps/SoftFloat-3e/source/f32_lt.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f32_lt.c
rename to deps/SoftFloat-3e/source/f32_lt.c
index 3281fd10b1..5b5fd22821 100644
--- a/deps/SoftFloat-3d/source/f32_lt.c
+++ b/deps/SoftFloat-3e/source/f32_lt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_lt_quiet.c b/deps/SoftFloat-3e/source/f32_lt_quiet.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f32_lt_quiet.c
rename to deps/SoftFloat-3e/source/f32_lt_quiet.c
index 4cf972a31e..0153881437 100644
--- a/deps/SoftFloat-3d/source/f32_lt_quiet.c
+++ b/deps/SoftFloat-3e/source/f32_lt_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_mul.c b/deps/SoftFloat-3e/source/f32_mul.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_mul.c
rename to deps/SoftFloat-3e/source/f32_mul.c
index 2b05f8c3b3..f5c856002f 100644
--- a/deps/SoftFloat-3d/source/f32_mul.c
+++ b/deps/SoftFloat-3e/source/f32_mul.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_mulAdd.c b/deps/SoftFloat-3e/source/f32_mulAdd.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f32_mulAdd.c
rename to deps/SoftFloat-3e/source/f32_mulAdd.c
index 6f1e03f89e..9a28e212ce 100644
--- a/deps/SoftFloat-3d/source/f32_mulAdd.c
+++ b/deps/SoftFloat-3e/source/f32_mulAdd.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_rem.c b/deps/SoftFloat-3e/source/f32_rem.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_rem.c
rename to deps/SoftFloat-3e/source/f32_rem.c
index bc1c075080..b29bf416e4 100644
--- a/deps/SoftFloat-3d/source/f32_rem.c
+++ b/deps/SoftFloat-3e/source/f32_rem.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_roundToInt.c b/deps/SoftFloat-3e/source/f32_roundToInt.c
similarity index 85%
rename from deps/SoftFloat-3d/source/f32_roundToInt.c
rename to deps/SoftFloat-3e/source/f32_roundToInt.c
index bac1cae6ff..305af79dde 100644
--- a/deps/SoftFloat-3d/source/f32_roundToInt.c
+++ b/deps/SoftFloat-3e/source/f32_roundToInt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
California. All rights reserved.
@@ -57,12 +57,12 @@ float32_t f32_roundToInt( float32_t a, uint_fast8_t roundingMode, bool exact )
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( exp <= 0x7E ) {
- if ( ! (uint32_t) (uiA<<1) ) return a;
+ if ( !(uint32_t) (uiA<<1) ) return a;
if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
uiZ = uiA & packToF32UI( 1, 0, 0 );
switch ( roundingMode ) {
case softfloat_round_near_even:
- if ( ! fracF32UI( uiA ) ) break;
+ if ( !fracF32UI( uiA ) ) break;
case softfloat_round_near_maxMag:
if ( exp == 0x7E ) uiZ |= packToF32UI( 0, 0x7F, 0 );
break;
@@ -70,8 +70,13 @@ float32_t f32_roundToInt( float32_t a, uint_fast8_t roundingMode, bool exact )
if ( uiZ ) uiZ = packToF32UI( 1, 0x7F, 0 );
break;
case softfloat_round_max:
- if ( ! uiZ ) uiZ = packToF32UI( 0, 0x7F, 0 );
+ if ( !uiZ ) uiZ = packToF32UI( 0, 0x7F, 0 );
break;
+#ifdef SOFTFLOAT_ROUND_ODD
+ case softfloat_round_odd:
+ uiZ |= packToF32UI( 0, 0x7F, 0 );
+ break;
+#endif
}
goto uiZ;
}
@@ -93,7 +98,7 @@ float32_t f32_roundToInt( float32_t a, uint_fast8_t roundingMode, bool exact )
uiZ += lastBitMask>>1;
} else if ( roundingMode == softfloat_round_near_even ) {
uiZ += lastBitMask>>1;
- if ( ! (uiZ & roundBitsMask) ) uiZ &= ~lastBitMask;
+ if ( !(uiZ & roundBitsMask) ) uiZ &= ~lastBitMask;
} else if (
roundingMode
== (signF32UI( uiZ ) ? softfloat_round_min : softfloat_round_max)
@@ -101,8 +106,11 @@ float32_t f32_roundToInt( float32_t a, uint_fast8_t roundingMode, bool exact )
uiZ += roundBitsMask;
}
uiZ &= ~roundBitsMask;
- if ( exact && (uiZ != uiA) ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
+ if ( uiZ != uiA ) {
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) uiZ |= lastBitMask;
+#endif
+ if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
}
uiZ:
uZ.ui = uiZ;
diff --git a/deps/SoftFloat-3d/source/f32_sqrt.c b/deps/SoftFloat-3e/source/f32_sqrt.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_sqrt.c
rename to deps/SoftFloat-3e/source/f32_sqrt.c
index 19cb2037ba..9263bde595 100644
--- a/deps/SoftFloat-3d/source/f32_sqrt.c
+++ b/deps/SoftFloat-3e/source/f32_sqrt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_sub.c b/deps/SoftFloat-3e/source/f32_sub.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f32_sub.c
rename to deps/SoftFloat-3e/source/f32_sub.c
index 88955e31ff..383484dae1 100644
--- a/deps/SoftFloat-3d/source/f32_sub.c
+++ b/deps/SoftFloat-3e/source/f32_sub.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_to_extF80.c b/deps/SoftFloat-3e/source/f32_to_extF80.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_to_extF80.c
rename to deps/SoftFloat-3e/source/f32_to_extF80.c
index a00a485d58..742ed649c5 100644
--- a/deps/SoftFloat-3d/source/f32_to_extF80.c
+++ b/deps/SoftFloat-3e/source/f32_to_extF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_to_extF80M.c b/deps/SoftFloat-3e/source/f32_to_extF80M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_to_extF80M.c
rename to deps/SoftFloat-3e/source/f32_to_extF80M.c
index eeebbeac4e..af7e32a76e 100644
--- a/deps/SoftFloat-3d/source/f32_to_extF80M.c
+++ b/deps/SoftFloat-3e/source/f32_to_extF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_to_f128.c b/deps/SoftFloat-3e/source/f32_to_f128.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_to_f128.c
rename to deps/SoftFloat-3e/source/f32_to_f128.c
index ad8e80ea42..6a765a44e4 100644
--- a/deps/SoftFloat-3d/source/f32_to_f128.c
+++ b/deps/SoftFloat-3e/source/f32_to_f128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_to_f128M.c b/deps/SoftFloat-3e/source/f32_to_f128M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_to_f128M.c
rename to deps/SoftFloat-3e/source/f32_to_f128M.c
index d60a9aa9e8..ee7e6b367c 100644
--- a/deps/SoftFloat-3d/source/f32_to_f128M.c
+++ b/deps/SoftFloat-3e/source/f32_to_f128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_to_f16.c b/deps/SoftFloat-3e/source/f32_to_f16.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_to_f16.c
rename to deps/SoftFloat-3e/source/f32_to_f16.c
index 1c59cf6641..a9e77b775a 100644
--- a/deps/SoftFloat-3d/source/f32_to_f16.c
+++ b/deps/SoftFloat-3e/source/f32_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_to_f64.c b/deps/SoftFloat-3e/source/f32_to_f64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_to_f64.c
rename to deps/SoftFloat-3e/source/f32_to_f64.c
index 0b1103963f..4f97519e86 100644
--- a/deps/SoftFloat-3d/source/f32_to_f64.c
+++ b/deps/SoftFloat-3e/source/f32_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_to_i32.c b/deps/SoftFloat-3e/source/f32_to_i32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_to_i32.c
rename to deps/SoftFloat-3e/source/f32_to_i32.c
index b3e96121df..7d0356fbe3 100644
--- a/deps/SoftFloat-3d/source/f32_to_i32.c
+++ b/deps/SoftFloat-3e/source/f32_to_i32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_to_i32_r_minMag.c b/deps/SoftFloat-3e/source/f32_to_i32_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_to_i32_r_minMag.c
rename to deps/SoftFloat-3e/source/f32_to_i32_r_minMag.c
index 720b77b3bb..7652f2ebb0 100644
--- a/deps/SoftFloat-3d/source/f32_to_i32_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f32_to_i32_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_to_i64.c b/deps/SoftFloat-3e/source/f32_to_i64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_to_i64.c
rename to deps/SoftFloat-3e/source/f32_to_i64.c
index 1ae1907f25..4b125441f5 100644
--- a/deps/SoftFloat-3d/source/f32_to_i64.c
+++ b/deps/SoftFloat-3e/source/f32_to_i64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_to_i64_r_minMag.c b/deps/SoftFloat-3e/source/f32_to_i64_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_to_i64_r_minMag.c
rename to deps/SoftFloat-3e/source/f32_to_i64_r_minMag.c
index 8fc67f3054..397ddf6d0d 100644
--- a/deps/SoftFloat-3d/source/f32_to_i64_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f32_to_i64_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_to_ui32.c b/deps/SoftFloat-3e/source/f32_to_ui32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_to_ui32.c
rename to deps/SoftFloat-3e/source/f32_to_ui32.c
index e7a42a8960..cb47d9458f 100644
--- a/deps/SoftFloat-3d/source/f32_to_ui32.c
+++ b/deps/SoftFloat-3e/source/f32_to_ui32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_to_ui32_r_minMag.c b/deps/SoftFloat-3e/source/f32_to_ui32_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_to_ui32_r_minMag.c
rename to deps/SoftFloat-3e/source/f32_to_ui32_r_minMag.c
index 8fd3d2f6b0..cdeb75f9f2 100644
--- a/deps/SoftFloat-3d/source/f32_to_ui32_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f32_to_ui32_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_to_ui64.c b/deps/SoftFloat-3e/source/f32_to_ui64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_to_ui64.c
rename to deps/SoftFloat-3e/source/f32_to_ui64.c
index e10bc7ffbb..61f204af72 100644
--- a/deps/SoftFloat-3d/source/f32_to_ui64.c
+++ b/deps/SoftFloat-3e/source/f32_to_ui64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f32_to_ui64_r_minMag.c b/deps/SoftFloat-3e/source/f32_to_ui64_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f32_to_ui64_r_minMag.c
rename to deps/SoftFloat-3e/source/f32_to_ui64_r_minMag.c
index 50f6b0175f..c0fe54f6e1 100644
--- a/deps/SoftFloat-3d/source/f32_to_ui64_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f32_to_ui64_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_add.c b/deps/SoftFloat-3e/source/f64_add.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f64_add.c
rename to deps/SoftFloat-3e/source/f64_add.c
index 10ae93cc18..42f840dc59 100644
--- a/deps/SoftFloat-3d/source/f64_add.c
+++ b/deps/SoftFloat-3e/source/f64_add.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_div.c b/deps/SoftFloat-3e/source/f64_div.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_div.c
rename to deps/SoftFloat-3e/source/f64_div.c
index f3766cdeac..9c967bb740 100644
--- a/deps/SoftFloat-3d/source/f64_div.c
+++ b/deps/SoftFloat-3e/source/f64_div.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_eq.c b/deps/SoftFloat-3e/source/f64_eq.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f64_eq.c
rename to deps/SoftFloat-3e/source/f64_eq.c
index a8494aa0ca..3602003795 100644
--- a/deps/SoftFloat-3d/source/f64_eq.c
+++ b/deps/SoftFloat-3e/source/f64_eq.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_eq_signaling.c b/deps/SoftFloat-3e/source/f64_eq_signaling.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f64_eq_signaling.c
rename to deps/SoftFloat-3e/source/f64_eq_signaling.c
index dd13da269d..5daa179373 100644
--- a/deps/SoftFloat-3d/source/f64_eq_signaling.c
+++ b/deps/SoftFloat-3e/source/f64_eq_signaling.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_isSignalingNaN.c b/deps/SoftFloat-3e/source/f64_isSignalingNaN.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f64_isSignalingNaN.c
rename to deps/SoftFloat-3e/source/f64_isSignalingNaN.c
index 7729cb1629..e5d38321ec 100644
--- a/deps/SoftFloat-3d/source/f64_isSignalingNaN.c
+++ b/deps/SoftFloat-3e/source/f64_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_le.c b/deps/SoftFloat-3e/source/f64_le.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f64_le.c
rename to deps/SoftFloat-3e/source/f64_le.c
index 0648d56af3..0b43d04677 100644
--- a/deps/SoftFloat-3d/source/f64_le.c
+++ b/deps/SoftFloat-3e/source/f64_le.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_le_quiet.c b/deps/SoftFloat-3e/source/f64_le_quiet.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f64_le_quiet.c
rename to deps/SoftFloat-3e/source/f64_le_quiet.c
index a3350c1ea3..832eee7a76 100644
--- a/deps/SoftFloat-3d/source/f64_le_quiet.c
+++ b/deps/SoftFloat-3e/source/f64_le_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_lt.c b/deps/SoftFloat-3e/source/f64_lt.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f64_lt.c
rename to deps/SoftFloat-3e/source/f64_lt.c
index 9686da31bb..49ee05be03 100644
--- a/deps/SoftFloat-3d/source/f64_lt.c
+++ b/deps/SoftFloat-3e/source/f64_lt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_lt_quiet.c b/deps/SoftFloat-3e/source/f64_lt_quiet.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f64_lt_quiet.c
rename to deps/SoftFloat-3e/source/f64_lt_quiet.c
index 7f27bd1310..d640880549 100644
--- a/deps/SoftFloat-3d/source/f64_lt_quiet.c
+++ b/deps/SoftFloat-3e/source/f64_lt_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_mul.c b/deps/SoftFloat-3e/source/f64_mul.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_mul.c
rename to deps/SoftFloat-3e/source/f64_mul.c
index 561505e2e9..222e91dce4 100644
--- a/deps/SoftFloat-3d/source/f64_mul.c
+++ b/deps/SoftFloat-3e/source/f64_mul.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_mulAdd.c b/deps/SoftFloat-3e/source/f64_mulAdd.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f64_mulAdd.c
rename to deps/SoftFloat-3e/source/f64_mulAdd.c
index 3c152b8a38..fea3d968bf 100644
--- a/deps/SoftFloat-3d/source/f64_mulAdd.c
+++ b/deps/SoftFloat-3e/source/f64_mulAdd.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_rem.c b/deps/SoftFloat-3e/source/f64_rem.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_rem.c
rename to deps/SoftFloat-3e/source/f64_rem.c
index adb152726e..ffce679aa3 100644
--- a/deps/SoftFloat-3d/source/f64_rem.c
+++ b/deps/SoftFloat-3e/source/f64_rem.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_roundToInt.c b/deps/SoftFloat-3e/source/f64_roundToInt.c
similarity index 84%
rename from deps/SoftFloat-3d/source/f64_roundToInt.c
rename to deps/SoftFloat-3e/source/f64_roundToInt.c
index d544f6547d..54e7b05427 100644
--- a/deps/SoftFloat-3d/source/f64_roundToInt.c
+++ b/deps/SoftFloat-3e/source/f64_roundToInt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
California. All rights reserved.
@@ -57,12 +57,12 @@ float64_t f64_roundToInt( float64_t a, uint_fast8_t roundingMode, bool exact )
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( exp <= 0x3FE ) {
- if ( ! (uiA & UINT64_C( 0x7FFFFFFFFFFFFFFF )) ) return a;
+ if ( !(uiA & UINT64_C( 0x7FFFFFFFFFFFFFFF )) ) return a;
if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
uiZ = uiA & packToF64UI( 1, 0, 0 );
switch ( roundingMode ) {
case softfloat_round_near_even:
- if ( ! fracF64UI( uiA ) ) break;
+ if ( !fracF64UI( uiA ) ) break;
case softfloat_round_near_maxMag:
if ( exp == 0x3FE ) uiZ |= packToF64UI( 0, 0x3FF, 0 );
break;
@@ -70,8 +70,13 @@ float64_t f64_roundToInt( float64_t a, uint_fast8_t roundingMode, bool exact )
if ( uiZ ) uiZ = packToF64UI( 1, 0x3FF, 0 );
break;
case softfloat_round_max:
- if ( ! uiZ ) uiZ = packToF64UI( 0, 0x3FF, 0 );
+ if ( !uiZ ) uiZ = packToF64UI( 0, 0x3FF, 0 );
break;
+#ifdef SOFTFLOAT_ROUND_ODD
+ case softfloat_round_odd:
+ uiZ |= packToF64UI( 0, 0x3FF, 0 );
+ break;
+#endif
}
goto uiZ;
}
@@ -93,7 +98,7 @@ float64_t f64_roundToInt( float64_t a, uint_fast8_t roundingMode, bool exact )
uiZ += lastBitMask>>1;
} else if ( roundingMode == softfloat_round_near_even ) {
uiZ += lastBitMask>>1;
- if ( ! (uiZ & roundBitsMask) ) uiZ &= ~lastBitMask;
+ if ( !(uiZ & roundBitsMask) ) uiZ &= ~lastBitMask;
} else if (
roundingMode
== (signF64UI( uiZ ) ? softfloat_round_min : softfloat_round_max)
@@ -101,8 +106,11 @@ float64_t f64_roundToInt( float64_t a, uint_fast8_t roundingMode, bool exact )
uiZ += roundBitsMask;
}
uiZ &= ~roundBitsMask;
- if ( exact && (uiZ != uiA) ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
+ if ( uiZ != uiA ) {
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) uiZ |= lastBitMask;
+#endif
+ if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
}
uiZ:
uZ.ui = uiZ;
diff --git a/deps/SoftFloat-3d/source/f64_sqrt.c b/deps/SoftFloat-3e/source/f64_sqrt.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_sqrt.c
rename to deps/SoftFloat-3e/source/f64_sqrt.c
index 076411659f..f9f226b697 100644
--- a/deps/SoftFloat-3d/source/f64_sqrt.c
+++ b/deps/SoftFloat-3e/source/f64_sqrt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_sub.c b/deps/SoftFloat-3e/source/f64_sub.c
similarity index 95%
rename from deps/SoftFloat-3d/source/f64_sub.c
rename to deps/SoftFloat-3e/source/f64_sub.c
index bc544b2ef5..b5ccb882bb 100644
--- a/deps/SoftFloat-3d/source/f64_sub.c
+++ b/deps/SoftFloat-3e/source/f64_sub.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_to_extF80.c b/deps/SoftFloat-3e/source/f64_to_extF80.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_to_extF80.c
rename to deps/SoftFloat-3e/source/f64_to_extF80.c
index d5b0ff3e20..2799d9b070 100644
--- a/deps/SoftFloat-3d/source/f64_to_extF80.c
+++ b/deps/SoftFloat-3e/source/f64_to_extF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_to_extF80M.c b/deps/SoftFloat-3e/source/f64_to_extF80M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_to_extF80M.c
rename to deps/SoftFloat-3e/source/f64_to_extF80M.c
index 90a46f3cea..a2e67e46fc 100644
--- a/deps/SoftFloat-3d/source/f64_to_extF80M.c
+++ b/deps/SoftFloat-3e/source/f64_to_extF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_to_f128.c b/deps/SoftFloat-3e/source/f64_to_f128.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_to_f128.c
rename to deps/SoftFloat-3e/source/f64_to_f128.c
index 79c4f75167..60af3b0be1 100644
--- a/deps/SoftFloat-3d/source/f64_to_f128.c
+++ b/deps/SoftFloat-3e/source/f64_to_f128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_to_f128M.c b/deps/SoftFloat-3e/source/f64_to_f128M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_to_f128M.c
rename to deps/SoftFloat-3e/source/f64_to_f128M.c
index 51718e76a0..fbc4515373 100644
--- a/deps/SoftFloat-3d/source/f64_to_f128M.c
+++ b/deps/SoftFloat-3e/source/f64_to_f128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_to_f16.c b/deps/SoftFloat-3e/source/f64_to_f16.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_to_f16.c
rename to deps/SoftFloat-3e/source/f64_to_f16.c
index 8a68789454..121e3062a0 100644
--- a/deps/SoftFloat-3d/source/f64_to_f16.c
+++ b/deps/SoftFloat-3e/source/f64_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_to_f32.c b/deps/SoftFloat-3e/source/f64_to_f32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_to_f32.c
rename to deps/SoftFloat-3e/source/f64_to_f32.c
index f5dba28534..a18106556d 100644
--- a/deps/SoftFloat-3d/source/f64_to_f32.c
+++ b/deps/SoftFloat-3e/source/f64_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_to_i32.c b/deps/SoftFloat-3e/source/f64_to_i32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_to_i32.c
rename to deps/SoftFloat-3e/source/f64_to_i32.c
index 0d579b53c8..8d9785b0bc 100644
--- a/deps/SoftFloat-3d/source/f64_to_i32.c
+++ b/deps/SoftFloat-3e/source/f64_to_i32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_to_i32_r_minMag.c b/deps/SoftFloat-3e/source/f64_to_i32_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_to_i32_r_minMag.c
rename to deps/SoftFloat-3e/source/f64_to_i32_r_minMag.c
index fcf93768fc..8b7a91f1c0 100644
--- a/deps/SoftFloat-3d/source/f64_to_i32_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f64_to_i32_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_to_i64.c b/deps/SoftFloat-3e/source/f64_to_i64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_to_i64.c
rename to deps/SoftFloat-3e/source/f64_to_i64.c
index 3957269fb2..7199643ac8 100644
--- a/deps/SoftFloat-3d/source/f64_to_i64.c
+++ b/deps/SoftFloat-3e/source/f64_to_i64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_to_i64_r_minMag.c b/deps/SoftFloat-3e/source/f64_to_i64_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_to_i64_r_minMag.c
rename to deps/SoftFloat-3e/source/f64_to_i64_r_minMag.c
index b8de0b504c..56c6a10101 100644
--- a/deps/SoftFloat-3d/source/f64_to_i64_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f64_to_i64_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_to_ui32.c b/deps/SoftFloat-3e/source/f64_to_ui32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_to_ui32.c
rename to deps/SoftFloat-3e/source/f64_to_ui32.c
index c6e52755db..9d2114633b 100644
--- a/deps/SoftFloat-3d/source/f64_to_ui32.c
+++ b/deps/SoftFloat-3e/source/f64_to_ui32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_to_ui32_r_minMag.c b/deps/SoftFloat-3e/source/f64_to_ui32_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_to_ui32_r_minMag.c
rename to deps/SoftFloat-3e/source/f64_to_ui32_r_minMag.c
index 8876e13b9b..6e3d14e8f3 100644
--- a/deps/SoftFloat-3d/source/f64_to_ui32_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f64_to_ui32_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_to_ui64.c b/deps/SoftFloat-3e/source/f64_to_ui64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_to_ui64.c
rename to deps/SoftFloat-3e/source/f64_to_ui64.c
index 95b94c8ca3..292e47a44c 100644
--- a/deps/SoftFloat-3d/source/f64_to_ui64.c
+++ b/deps/SoftFloat-3e/source/f64_to_ui64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/f64_to_ui64_r_minMag.c b/deps/SoftFloat-3e/source/f64_to_ui64_r_minMag.c
similarity index 96%
rename from deps/SoftFloat-3d/source/f64_to_ui64_r_minMag.c
rename to deps/SoftFloat-3e/source/f64_to_ui64_r_minMag.c
index ddbfa9b888..87eb0d05cb 100644
--- a/deps/SoftFloat-3d/source/f64_to_ui64_r_minMag.c
+++ b/deps/SoftFloat-3e/source/f64_to_ui64_r_minMag.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/i32_to_extF80.c b/deps/SoftFloat-3e/source/i32_to_extF80.c
similarity index 95%
rename from deps/SoftFloat-3d/source/i32_to_extF80.c
rename to deps/SoftFloat-3e/source/i32_to_extF80.c
index 43b394848a..8036fa9f11 100644
--- a/deps/SoftFloat-3d/source/i32_to_extF80.c
+++ b/deps/SoftFloat-3e/source/i32_to_extF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/i32_to_extF80M.c b/deps/SoftFloat-3e/source/i32_to_extF80M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/i32_to_extF80M.c
rename to deps/SoftFloat-3e/source/i32_to_extF80M.c
index 236b04353d..6d5431c1c1 100644
--- a/deps/SoftFloat-3d/source/i32_to_extF80M.c
+++ b/deps/SoftFloat-3e/source/i32_to_extF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/i32_to_f128.c b/deps/SoftFloat-3e/source/i32_to_f128.c
similarity index 95%
rename from deps/SoftFloat-3d/source/i32_to_f128.c
rename to deps/SoftFloat-3e/source/i32_to_f128.c
index 76894a18b7..a7d55cba42 100644
--- a/deps/SoftFloat-3d/source/i32_to_f128.c
+++ b/deps/SoftFloat-3e/source/i32_to_f128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/i32_to_f128M.c b/deps/SoftFloat-3e/source/i32_to_f128M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/i32_to_f128M.c
rename to deps/SoftFloat-3e/source/i32_to_f128M.c
index 82c6f06bb2..beb3c10126 100644
--- a/deps/SoftFloat-3d/source/i32_to_f128M.c
+++ b/deps/SoftFloat-3e/source/i32_to_f128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/i32_to_f16.c b/deps/SoftFloat-3e/source/i32_to_f16.c
similarity index 96%
rename from deps/SoftFloat-3d/source/i32_to_f16.c
rename to deps/SoftFloat-3e/source/i32_to_f16.c
index d75601cb51..d3117248a2 100644
--- a/deps/SoftFloat-3d/source/i32_to_f16.c
+++ b/deps/SoftFloat-3e/source/i32_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/i32_to_f32.c b/deps/SoftFloat-3e/source/i32_to_f32.c
similarity index 95%
rename from deps/SoftFloat-3d/source/i32_to_f32.c
rename to deps/SoftFloat-3e/source/i32_to_f32.c
index 3ba93b1069..e6de3e837a 100644
--- a/deps/SoftFloat-3d/source/i32_to_f32.c
+++ b/deps/SoftFloat-3e/source/i32_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/i32_to_f64.c b/deps/SoftFloat-3e/source/i32_to_f64.c
similarity index 95%
rename from deps/SoftFloat-3d/source/i32_to_f64.c
rename to deps/SoftFloat-3e/source/i32_to_f64.c
index 9d52031269..24feda542d 100644
--- a/deps/SoftFloat-3d/source/i32_to_f64.c
+++ b/deps/SoftFloat-3e/source/i32_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/i64_to_extF80.c b/deps/SoftFloat-3e/source/i64_to_extF80.c
similarity index 95%
rename from deps/SoftFloat-3d/source/i64_to_extF80.c
rename to deps/SoftFloat-3e/source/i64_to_extF80.c
index e180004ea8..a1000be777 100644
--- a/deps/SoftFloat-3d/source/i64_to_extF80.c
+++ b/deps/SoftFloat-3e/source/i64_to_extF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/i64_to_extF80M.c b/deps/SoftFloat-3e/source/i64_to_extF80M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/i64_to_extF80M.c
rename to deps/SoftFloat-3e/source/i64_to_extF80M.c
index 37a3da9843..4838dde6db 100644
--- a/deps/SoftFloat-3d/source/i64_to_extF80M.c
+++ b/deps/SoftFloat-3e/source/i64_to_extF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/i64_to_f128.c b/deps/SoftFloat-3e/source/i64_to_f128.c
similarity index 95%
rename from deps/SoftFloat-3d/source/i64_to_f128.c
rename to deps/SoftFloat-3e/source/i64_to_f128.c
index 51c8097341..fcb0179392 100644
--- a/deps/SoftFloat-3d/source/i64_to_f128.c
+++ b/deps/SoftFloat-3e/source/i64_to_f128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/i64_to_f128M.c b/deps/SoftFloat-3e/source/i64_to_f128M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/i64_to_f128M.c
rename to deps/SoftFloat-3e/source/i64_to_f128M.c
index 6d0caf6339..0a04eb8d07 100644
--- a/deps/SoftFloat-3d/source/i64_to_f128M.c
+++ b/deps/SoftFloat-3e/source/i64_to_f128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/i64_to_f16.c b/deps/SoftFloat-3e/source/i64_to_f16.c
similarity index 96%
rename from deps/SoftFloat-3d/source/i64_to_f16.c
rename to deps/SoftFloat-3e/source/i64_to_f16.c
index 002161f1a2..cef7b6133a 100644
--- a/deps/SoftFloat-3d/source/i64_to_f16.c
+++ b/deps/SoftFloat-3e/source/i64_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/i64_to_f32.c b/deps/SoftFloat-3e/source/i64_to_f32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/i64_to_f32.c
rename to deps/SoftFloat-3e/source/i64_to_f32.c
index 0184caade2..ca1dc7452b 100644
--- a/deps/SoftFloat-3d/source/i64_to_f32.c
+++ b/deps/SoftFloat-3e/source/i64_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/i64_to_f64.c b/deps/SoftFloat-3e/source/i64_to_f64.c
similarity index 95%
rename from deps/SoftFloat-3d/source/i64_to_f64.c
rename to deps/SoftFloat-3e/source/i64_to_f64.c
index f85283d3d0..ea9e821adf 100644
--- a/deps/SoftFloat-3d/source/i64_to_f64.c
+++ b/deps/SoftFloat-3e/source/i64_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/include/internals.h b/deps/SoftFloat-3e/source/include/internals.h
similarity index 97%
rename from deps/SoftFloat-3d/source/include/internals.h
rename to deps/SoftFloat-3e/source/include/internals.h
index c3cd38d4bd..020b3402f5 100644
--- a/deps/SoftFloat-3d/source/include/internals.h
+++ b/deps/SoftFloat-3e/source/include/internals.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3e/source/include/opts-GCC.h b/deps/SoftFloat-3e/source/include/opts-GCC.h
new file mode 100644
index 0000000000..18c1523e92
--- /dev/null
+++ b/deps/SoftFloat-3e/source/include/opts-GCC.h
@@ -0,0 +1,114 @@
+
+/*============================================================================
+
+This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
+Package, Release 3e, by John R. Hauser.
+
+Copyright 2017 The Regents of the University of California. All rights
+reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+#ifndef opts_GCC_h
+#define opts_GCC_h 1
+
+#ifdef INLINE
+
+#include
+#include "primitiveTypes.h"
+
+#ifdef SOFTFLOAT_BUILTIN_CLZ
+
+INLINE uint_fast8_t softfloat_countLeadingZeros16( uint16_t a )
+ { return a ? __builtin_clz( a ) - 16 : 16; }
+#define softfloat_countLeadingZeros16 softfloat_countLeadingZeros16
+
+INLINE uint_fast8_t softfloat_countLeadingZeros32( uint32_t a )
+ { return a ? __builtin_clz( a ) : 32; }
+#define softfloat_countLeadingZeros32 softfloat_countLeadingZeros32
+
+INLINE uint_fast8_t softfloat_countLeadingZeros64( uint64_t a )
+ { return a ? __builtin_clzll( a ) : 64; }
+#define softfloat_countLeadingZeros64 softfloat_countLeadingZeros64
+
+#endif
+
+#ifdef SOFTFLOAT_INTRINSIC_INT128
+
+INLINE struct uint128 softfloat_mul64ByShifted32To128( uint64_t a, uint32_t b )
+{
+ union { unsigned __int128 ui; struct uint128 s; } uZ;
+ uZ.ui = (unsigned __int128) a * ((uint_fast64_t) b<<32);
+ return uZ.s;
+}
+#define softfloat_mul64ByShifted32To128 softfloat_mul64ByShifted32To128
+
+INLINE struct uint128 softfloat_mul64To128( uint64_t a, uint64_t b )
+{
+ union { unsigned __int128 ui; struct uint128 s; } uZ;
+ uZ.ui = (unsigned __int128) a * b;
+ return uZ.s;
+}
+#define softfloat_mul64To128 softfloat_mul64To128
+
+INLINE
+struct uint128 softfloat_mul128By32( uint64_t a64, uint64_t a0, uint32_t b )
+{
+ union { unsigned __int128 ui; struct uint128 s; } uZ;
+ uZ.ui = ((unsigned __int128) a64<<64 | a0) * b;
+ return uZ.s;
+}
+#define softfloat_mul128By32 softfloat_mul128By32
+
+INLINE
+void
+ softfloat_mul128To256M(
+ uint64_t a64, uint64_t a0, uint64_t b64, uint64_t b0, uint64_t *zPtr )
+{
+ unsigned __int128 z0, mid1, mid, z128;
+ z0 = (unsigned __int128) a0 * b0;
+ mid1 = (unsigned __int128) a64 * b0;
+ mid = mid1 + (unsigned __int128) a0 * b64;
+ z128 = (unsigned __int128) a64 * b64;
+ z128 += (unsigned __int128) (mid < mid1)<<64 | mid>>64;
+ mid <<= 64;
+ z0 += mid;
+ z128 += (z0 < mid);
+ zPtr[indexWord( 4, 0 )] = z0;
+ zPtr[indexWord( 4, 1 )] = z0>>64;
+ zPtr[indexWord( 4, 2 )] = z128;
+ zPtr[indexWord( 4, 3 )] = z128>>64;
+}
+#define softfloat_mul128To256M softfloat_mul128To256M
+
+#endif
+
+#endif
+
+#endif
+
diff --git a/deps/SoftFloat-3d/source/include/primitiveTypes.h b/deps/SoftFloat-3e/source/include/primitiveTypes.h
similarity index 96%
rename from deps/SoftFloat-3d/source/include/primitiveTypes.h
rename to deps/SoftFloat-3e/source/include/primitiveTypes.h
index 845113a0c6..a4a6dd11c6 100644
--- a/deps/SoftFloat-3d/source/include/primitiveTypes.h
+++ b/deps/SoftFloat-3e/source/include/primitiveTypes.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/include/primitives.h b/deps/SoftFloat-3e/source/include/primitives.h
similarity index 97%
rename from deps/SoftFloat-3d/source/include/primitives.h
rename to deps/SoftFloat-3e/source/include/primitives.h
index 68d280172c..863ab45b57 100644
--- a/deps/SoftFloat-3d/source/include/primitives.h
+++ b/deps/SoftFloat-3e/source/include/primitives.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/include/softfloat.h b/deps/SoftFloat-3e/source/include/softfloat.h
similarity index 97%
rename from deps/SoftFloat-3d/source/include/softfloat.h
rename to deps/SoftFloat-3e/source/include/softfloat.h
index bfabcacf64..b33374cd6c 100644
--- a/deps/SoftFloat-3d/source/include/softfloat.h
+++ b/deps/SoftFloat-3e/source/include/softfloat.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
@@ -74,7 +74,7 @@ enum {
softfloat_round_min = 2,
softfloat_round_max = 3,
softfloat_round_near_maxMag = 4,
- softfloat_round_odd = 5
+ softfloat_round_odd = 6
};
/*----------------------------------------------------------------------------
diff --git a/deps/SoftFloat-3d/source/include/softfloat_types.h b/deps/SoftFloat-3e/source/include/softfloat_types.h
similarity index 97%
rename from deps/SoftFloat-3d/source/include/softfloat_types.h
rename to deps/SoftFloat-3e/source/include/softfloat_types.h
index c646fc0677..bc30e31440 100644
--- a/deps/SoftFloat-3d/source/include/softfloat_types.h
+++ b/deps/SoftFloat-3e/source/include/softfloat_types.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_add128.c b/deps/SoftFloat-3e/source/s_add128.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_add128.c
rename to deps/SoftFloat-3e/source/s_add128.c
index 584cabc7df..5a9d5082a0 100644
--- a/deps/SoftFloat-3d/source/s_add128.c
+++ b/deps/SoftFloat-3e/source/s_add128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_add256M.c b/deps/SoftFloat-3e/source/s_add256M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_add256M.c
rename to deps/SoftFloat-3e/source/s_add256M.c
index 44175ddfdd..4fb46a1742 100644
--- a/deps/SoftFloat-3d/source/s_add256M.c
+++ b/deps/SoftFloat-3e/source/s_add256M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_addCarryM.c b/deps/SoftFloat-3e/source/s_addCarryM.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_addCarryM.c
rename to deps/SoftFloat-3e/source/s_addCarryM.c
index d626b5d88d..f0ccf67247 100644
--- a/deps/SoftFloat-3d/source/s_addCarryM.c
+++ b/deps/SoftFloat-3e/source/s_addCarryM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_addComplCarryM.c b/deps/SoftFloat-3e/source/s_addComplCarryM.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_addComplCarryM.c
rename to deps/SoftFloat-3e/source/s_addComplCarryM.c
index f6781c25ca..e1584c669a 100644
--- a/deps/SoftFloat-3d/source/s_addComplCarryM.c
+++ b/deps/SoftFloat-3e/source/s_addComplCarryM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_addExtF80M.c b/deps/SoftFloat-3e/source/s_addExtF80M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_addExtF80M.c
rename to deps/SoftFloat-3e/source/s_addExtF80M.c
index 551e45d37a..febfb65773 100644
--- a/deps/SoftFloat-3d/source/s_addExtF80M.c
+++ b/deps/SoftFloat-3e/source/s_addExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_addF128M.c b/deps/SoftFloat-3e/source/s_addF128M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_addF128M.c
rename to deps/SoftFloat-3e/source/s_addF128M.c
index 8bdaa14d2c..8ed9d271fa 100644
--- a/deps/SoftFloat-3d/source/s_addF128M.c
+++ b/deps/SoftFloat-3e/source/s_addF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_addM.c b/deps/SoftFloat-3e/source/s_addM.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_addM.c
rename to deps/SoftFloat-3e/source/s_addM.c
index 797a133b84..c935baaf7c 100644
--- a/deps/SoftFloat-3d/source/s_addM.c
+++ b/deps/SoftFloat-3e/source/s_addM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_addMagsExtF80.c b/deps/SoftFloat-3e/source/s_addMagsExtF80.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_addMagsExtF80.c
rename to deps/SoftFloat-3e/source/s_addMagsExtF80.c
index f053fd4c9a..b1bb5dbe64 100644
--- a/deps/SoftFloat-3d/source/s_addMagsExtF80.c
+++ b/deps/SoftFloat-3e/source/s_addMagsExtF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_addMagsF128.c b/deps/SoftFloat-3e/source/s_addMagsF128.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_addMagsF128.c
rename to deps/SoftFloat-3e/source/s_addMagsF128.c
index 63d5236c82..8e5ce5b34e 100644
--- a/deps/SoftFloat-3d/source/s_addMagsF128.c
+++ b/deps/SoftFloat-3e/source/s_addMagsF128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_addMagsF16.c b/deps/SoftFloat-3e/source/s_addMagsF16.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_addMagsF16.c
rename to deps/SoftFloat-3e/source/s_addMagsF16.c
index 1bacd90e87..b7fba09283 100644
--- a/deps/SoftFloat-3d/source/s_addMagsF16.c
+++ b/deps/SoftFloat-3e/source/s_addMagsF16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_addMagsF32.c b/deps/SoftFloat-3e/source/s_addMagsF32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_addMagsF32.c
rename to deps/SoftFloat-3e/source/s_addMagsF32.c
index 4e16047304..b74489dece 100644
--- a/deps/SoftFloat-3d/source/s_addMagsF32.c
+++ b/deps/SoftFloat-3e/source/s_addMagsF32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_addMagsF64.c b/deps/SoftFloat-3e/source/s_addMagsF64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_addMagsF64.c
rename to deps/SoftFloat-3e/source/s_addMagsF64.c
index 7890d15a35..e8a4898745 100644
--- a/deps/SoftFloat-3d/source/s_addMagsF64.c
+++ b/deps/SoftFloat-3e/source/s_addMagsF64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_approxRecip32_1.c b/deps/SoftFloat-3e/source/s_approxRecip32_1.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_approxRecip32_1.c
rename to deps/SoftFloat-3e/source/s_approxRecip32_1.c
index 332fc53e72..4a326a438f 100644
--- a/deps/SoftFloat-3d/source/s_approxRecip32_1.c
+++ b/deps/SoftFloat-3e/source/s_approxRecip32_1.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_approxRecipSqrt32_1.c b/deps/SoftFloat-3e/source/s_approxRecipSqrt32_1.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_approxRecipSqrt32_1.c
rename to deps/SoftFloat-3e/source/s_approxRecipSqrt32_1.c
index 606c010a63..b3fdeba68b 100644
--- a/deps/SoftFloat-3d/source/s_approxRecipSqrt32_1.c
+++ b/deps/SoftFloat-3e/source/s_approxRecipSqrt32_1.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_approxRecipSqrt_1Ks.c b/deps/SoftFloat-3e/source/s_approxRecipSqrt_1Ks.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_approxRecipSqrt_1Ks.c
rename to deps/SoftFloat-3e/source/s_approxRecipSqrt_1Ks.c
index 76d34fb533..38a27985c0 100644
--- a/deps/SoftFloat-3d/source/s_approxRecipSqrt_1Ks.c
+++ b/deps/SoftFloat-3e/source/s_approxRecipSqrt_1Ks.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_approxRecip_1Ks.c b/deps/SoftFloat-3e/source/s_approxRecip_1Ks.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_approxRecip_1Ks.c
rename to deps/SoftFloat-3e/source/s_approxRecip_1Ks.c
index 2c373065a2..f1fca74e73 100644
--- a/deps/SoftFloat-3d/source/s_approxRecip_1Ks.c
+++ b/deps/SoftFloat-3e/source/s_approxRecip_1Ks.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_compare128M.c b/deps/SoftFloat-3e/source/s_compare128M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_compare128M.c
rename to deps/SoftFloat-3e/source/s_compare128M.c
index c215195776..dc97ce9e50 100644
--- a/deps/SoftFloat-3d/source/s_compare128M.c
+++ b/deps/SoftFloat-3e/source/s_compare128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_compare96M.c b/deps/SoftFloat-3e/source/s_compare96M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_compare96M.c
rename to deps/SoftFloat-3e/source/s_compare96M.c
index eda3b46139..2681c46274 100644
--- a/deps/SoftFloat-3d/source/s_compare96M.c
+++ b/deps/SoftFloat-3e/source/s_compare96M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_compareNonnormExtF80M.c b/deps/SoftFloat-3e/source/s_compareNonnormExtF80M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_compareNonnormExtF80M.c
rename to deps/SoftFloat-3e/source/s_compareNonnormExtF80M.c
index 9723d6e2e7..2673153048 100644
--- a/deps/SoftFloat-3d/source/s_compareNonnormExtF80M.c
+++ b/deps/SoftFloat-3e/source/s_compareNonnormExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_countLeadingZeros16.c b/deps/SoftFloat-3e/source/s_countLeadingZeros16.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_countLeadingZeros16.c
rename to deps/SoftFloat-3e/source/s_countLeadingZeros16.c
index e5bd10e4e0..7a68da52f3 100644
--- a/deps/SoftFloat-3d/source/s_countLeadingZeros16.c
+++ b/deps/SoftFloat-3e/source/s_countLeadingZeros16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_countLeadingZeros32.c b/deps/SoftFloat-3e/source/s_countLeadingZeros32.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_countLeadingZeros32.c
rename to deps/SoftFloat-3e/source/s_countLeadingZeros32.c
index c35c014ce1..53ab22824f 100644
--- a/deps/SoftFloat-3d/source/s_countLeadingZeros32.c
+++ b/deps/SoftFloat-3e/source/s_countLeadingZeros32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_countLeadingZeros64.c b/deps/SoftFloat-3e/source/s_countLeadingZeros64.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_countLeadingZeros64.c
rename to deps/SoftFloat-3e/source/s_countLeadingZeros64.c
index d9b2641e7f..13a2224636 100644
--- a/deps/SoftFloat-3d/source/s_countLeadingZeros64.c
+++ b/deps/SoftFloat-3e/source/s_countLeadingZeros64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_countLeadingZeros8.c b/deps/SoftFloat-3e/source/s_countLeadingZeros8.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_countLeadingZeros8.c
rename to deps/SoftFloat-3e/source/s_countLeadingZeros8.c
index a84beb8366..a56f5a40c5 100644
--- a/deps/SoftFloat-3d/source/s_countLeadingZeros8.c
+++ b/deps/SoftFloat-3e/source/s_countLeadingZeros8.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_eq128.c b/deps/SoftFloat-3e/source/s_eq128.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_eq128.c
rename to deps/SoftFloat-3e/source/s_eq128.c
index 9fdb92fc0c..275b8ae299 100644
--- a/deps/SoftFloat-3d/source/s_eq128.c
+++ b/deps/SoftFloat-3e/source/s_eq128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_invalidExtF80M.c b/deps/SoftFloat-3e/source/s_invalidExtF80M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_invalidExtF80M.c
rename to deps/SoftFloat-3e/source/s_invalidExtF80M.c
index f2ac22f33b..237d217212 100644
--- a/deps/SoftFloat-3d/source/s_invalidExtF80M.c
+++ b/deps/SoftFloat-3e/source/s_invalidExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_invalidF128M.c b/deps/SoftFloat-3e/source/s_invalidF128M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_invalidF128M.c
rename to deps/SoftFloat-3e/source/s_invalidF128M.c
index 41f669a831..a20840e5f5 100644
--- a/deps/SoftFloat-3d/source/s_invalidF128M.c
+++ b/deps/SoftFloat-3e/source/s_invalidF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_isNaNF128M.c b/deps/SoftFloat-3e/source/s_isNaNF128M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_isNaNF128M.c
rename to deps/SoftFloat-3e/source/s_isNaNF128M.c
index 84ebd33c92..6008cf3ebc 100644
--- a/deps/SoftFloat-3d/source/s_isNaNF128M.c
+++ b/deps/SoftFloat-3e/source/s_isNaNF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_le128.c b/deps/SoftFloat-3e/source/s_le128.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_le128.c
rename to deps/SoftFloat-3e/source/s_le128.c
index 5e493d0f9b..1fce7af98e 100644
--- a/deps/SoftFloat-3d/source/s_le128.c
+++ b/deps/SoftFloat-3e/source/s_le128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_lt128.c b/deps/SoftFloat-3e/source/s_lt128.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_lt128.c
rename to deps/SoftFloat-3e/source/s_lt128.c
index 763fa94780..d7ce3b9971 100644
--- a/deps/SoftFloat-3d/source/s_lt128.c
+++ b/deps/SoftFloat-3e/source/s_lt128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_mul128By32.c b/deps/SoftFloat-3e/source/s_mul128By32.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_mul128By32.c
rename to deps/SoftFloat-3e/source/s_mul128By32.c
index 8f1d1cd9d8..7c0fdc8679 100644
--- a/deps/SoftFloat-3d/source/s_mul128By32.c
+++ b/deps/SoftFloat-3e/source/s_mul128By32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_mul128MTo256M.c b/deps/SoftFloat-3e/source/s_mul128MTo256M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_mul128MTo256M.c
rename to deps/SoftFloat-3e/source/s_mul128MTo256M.c
index cc07d9661d..ea8865ea35 100644
--- a/deps/SoftFloat-3d/source/s_mul128MTo256M.c
+++ b/deps/SoftFloat-3e/source/s_mul128MTo256M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_mul128To256M.c b/deps/SoftFloat-3e/source/s_mul128To256M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_mul128To256M.c
rename to deps/SoftFloat-3e/source/s_mul128To256M.c
index 07bd0051ad..7c9d9b5841 100644
--- a/deps/SoftFloat-3d/source/s_mul128To256M.c
+++ b/deps/SoftFloat-3e/source/s_mul128To256M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_mul64ByShifted32To128.c b/deps/SoftFloat-3e/source/s_mul64ByShifted32To128.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_mul64ByShifted32To128.c
rename to deps/SoftFloat-3e/source/s_mul64ByShifted32To128.c
index b9a3c2a237..57e528888b 100644
--- a/deps/SoftFloat-3d/source/s_mul64ByShifted32To128.c
+++ b/deps/SoftFloat-3e/source/s_mul64ByShifted32To128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_mul64To128.c b/deps/SoftFloat-3e/source/s_mul64To128.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_mul64To128.c
rename to deps/SoftFloat-3e/source/s_mul64To128.c
index 6101b95170..5d360aa4b8 100644
--- a/deps/SoftFloat-3d/source/s_mul64To128.c
+++ b/deps/SoftFloat-3e/source/s_mul64To128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_mul64To128M.c b/deps/SoftFloat-3e/source/s_mul64To128M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_mul64To128M.c
rename to deps/SoftFloat-3e/source/s_mul64To128M.c
index 89883c5249..ed10be3243 100644
--- a/deps/SoftFloat-3d/source/s_mul64To128M.c
+++ b/deps/SoftFloat-3e/source/s_mul64To128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_mulAddF128.c b/deps/SoftFloat-3e/source/s_mulAddF128.c
similarity index 97%
rename from deps/SoftFloat-3d/source/s_mulAddF128.c
rename to deps/SoftFloat-3e/source/s_mulAddF128.c
index 1fa3db1d0e..f6b2b45df0 100644
--- a/deps/SoftFloat-3d/source/s_mulAddF128.c
+++ b/deps/SoftFloat-3e/source/s_mulAddF128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_mulAddF128M.c b/deps/SoftFloat-3e/source/s_mulAddF128M.c
similarity index 97%
rename from deps/SoftFloat-3d/source/s_mulAddF128M.c
rename to deps/SoftFloat-3e/source/s_mulAddF128M.c
index ac33bb5dfd..f51fc71d28 100644
--- a/deps/SoftFloat-3d/source/s_mulAddF128M.c
+++ b/deps/SoftFloat-3e/source/s_mulAddF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_mulAddF16.c b/deps/SoftFloat-3e/source/s_mulAddF16.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_mulAddF16.c
rename to deps/SoftFloat-3e/source/s_mulAddF16.c
index aaee78c3a6..3a684ac32c 100644
--- a/deps/SoftFloat-3d/source/s_mulAddF16.c
+++ b/deps/SoftFloat-3e/source/s_mulAddF16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_mulAddF32.c b/deps/SoftFloat-3e/source/s_mulAddF32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_mulAddF32.c
rename to deps/SoftFloat-3e/source/s_mulAddF32.c
index b709c8c61f..6cdd9fdc07 100644
--- a/deps/SoftFloat-3d/source/s_mulAddF32.c
+++ b/deps/SoftFloat-3e/source/s_mulAddF32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_mulAddF64.c b/deps/SoftFloat-3e/source/s_mulAddF64.c
similarity index 97%
rename from deps/SoftFloat-3d/source/s_mulAddF64.c
rename to deps/SoftFloat-3e/source/s_mulAddF64.c
index 76cf30e89c..b8bb4c430a 100644
--- a/deps/SoftFloat-3d/source/s_mulAddF64.c
+++ b/deps/SoftFloat-3e/source/s_mulAddF64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_negXM.c b/deps/SoftFloat-3e/source/s_negXM.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_negXM.c
rename to deps/SoftFloat-3e/source/s_negXM.c
index cf52c616a4..ec8c928861 100644
--- a/deps/SoftFloat-3d/source/s_negXM.c
+++ b/deps/SoftFloat-3e/source/s_negXM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_normExtF80SigM.c b/deps/SoftFloat-3e/source/s_normExtF80SigM.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_normExtF80SigM.c
rename to deps/SoftFloat-3e/source/s_normExtF80SigM.c
index 3b7b44dbdb..acc54dc63c 100644
--- a/deps/SoftFloat-3d/source/s_normExtF80SigM.c
+++ b/deps/SoftFloat-3e/source/s_normExtF80SigM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_normRoundPackMToExtF80M.c b/deps/SoftFloat-3e/source/s_normRoundPackMToExtF80M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_normRoundPackMToExtF80M.c
rename to deps/SoftFloat-3e/source/s_normRoundPackMToExtF80M.c
index a0764e4e55..88b69cd4c2 100644
--- a/deps/SoftFloat-3d/source/s_normRoundPackMToExtF80M.c
+++ b/deps/SoftFloat-3e/source/s_normRoundPackMToExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_normRoundPackMToF128M.c b/deps/SoftFloat-3e/source/s_normRoundPackMToF128M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_normRoundPackMToF128M.c
rename to deps/SoftFloat-3e/source/s_normRoundPackMToF128M.c
index dd1b177778..309455998c 100644
--- a/deps/SoftFloat-3d/source/s_normRoundPackMToF128M.c
+++ b/deps/SoftFloat-3e/source/s_normRoundPackMToF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_normRoundPackToExtF80.c b/deps/SoftFloat-3e/source/s_normRoundPackToExtF80.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_normRoundPackToExtF80.c
rename to deps/SoftFloat-3e/source/s_normRoundPackToExtF80.c
index 10e2d56f2d..76e791d911 100644
--- a/deps/SoftFloat-3d/source/s_normRoundPackToExtF80.c
+++ b/deps/SoftFloat-3e/source/s_normRoundPackToExtF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_normRoundPackToF128.c b/deps/SoftFloat-3e/source/s_normRoundPackToF128.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_normRoundPackToF128.c
rename to deps/SoftFloat-3e/source/s_normRoundPackToF128.c
index 060a49d27f..67f5b43490 100644
--- a/deps/SoftFloat-3d/source/s_normRoundPackToF128.c
+++ b/deps/SoftFloat-3e/source/s_normRoundPackToF128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_normRoundPackToF16.c b/deps/SoftFloat-3e/source/s_normRoundPackToF16.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_normRoundPackToF16.c
rename to deps/SoftFloat-3e/source/s_normRoundPackToF16.c
index 4b1ca5866d..1d184d58ba 100644
--- a/deps/SoftFloat-3d/source/s_normRoundPackToF16.c
+++ b/deps/SoftFloat-3e/source/s_normRoundPackToF16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_normRoundPackToF32.c b/deps/SoftFloat-3e/source/s_normRoundPackToF32.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_normRoundPackToF32.c
rename to deps/SoftFloat-3e/source/s_normRoundPackToF32.c
index 95eaeed52e..9fae916315 100644
--- a/deps/SoftFloat-3d/source/s_normRoundPackToF32.c
+++ b/deps/SoftFloat-3e/source/s_normRoundPackToF32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_normRoundPackToF64.c b/deps/SoftFloat-3e/source/s_normRoundPackToF64.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_normRoundPackToF64.c
rename to deps/SoftFloat-3e/source/s_normRoundPackToF64.c
index 629e536d51..109141fad0 100644
--- a/deps/SoftFloat-3d/source/s_normRoundPackToF64.c
+++ b/deps/SoftFloat-3e/source/s_normRoundPackToF64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_normSubnormalExtF80Sig.c b/deps/SoftFloat-3e/source/s_normSubnormalExtF80Sig.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_normSubnormalExtF80Sig.c
rename to deps/SoftFloat-3e/source/s_normSubnormalExtF80Sig.c
index c0d9f9c1f4..c1d7788b1c 100644
--- a/deps/SoftFloat-3d/source/s_normSubnormalExtF80Sig.c
+++ b/deps/SoftFloat-3e/source/s_normSubnormalExtF80Sig.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_normSubnormalF128Sig.c b/deps/SoftFloat-3e/source/s_normSubnormalF128Sig.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_normSubnormalF128Sig.c
rename to deps/SoftFloat-3e/source/s_normSubnormalF128Sig.c
index b5df05b44e..597d558cc3 100644
--- a/deps/SoftFloat-3d/source/s_normSubnormalF128Sig.c
+++ b/deps/SoftFloat-3e/source/s_normSubnormalF128Sig.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_normSubnormalF128SigM.c b/deps/SoftFloat-3e/source/s_normSubnormalF128SigM.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_normSubnormalF128SigM.c
rename to deps/SoftFloat-3e/source/s_normSubnormalF128SigM.c
index f67d3484c1..7b8ced1d45 100644
--- a/deps/SoftFloat-3d/source/s_normSubnormalF128SigM.c
+++ b/deps/SoftFloat-3e/source/s_normSubnormalF128SigM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_normSubnormalF16Sig.c b/deps/SoftFloat-3e/source/s_normSubnormalF16Sig.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_normSubnormalF16Sig.c
rename to deps/SoftFloat-3e/source/s_normSubnormalF16Sig.c
index c7641dd70b..bb92adfea5 100644
--- a/deps/SoftFloat-3d/source/s_normSubnormalF16Sig.c
+++ b/deps/SoftFloat-3e/source/s_normSubnormalF16Sig.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_normSubnormalF32Sig.c b/deps/SoftFloat-3e/source/s_normSubnormalF32Sig.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_normSubnormalF32Sig.c
rename to deps/SoftFloat-3e/source/s_normSubnormalF32Sig.c
index 6fef3d49b5..d4bff9b419 100644
--- a/deps/SoftFloat-3d/source/s_normSubnormalF32Sig.c
+++ b/deps/SoftFloat-3e/source/s_normSubnormalF32Sig.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_normSubnormalF64Sig.c b/deps/SoftFloat-3e/source/s_normSubnormalF64Sig.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_normSubnormalF64Sig.c
rename to deps/SoftFloat-3e/source/s_normSubnormalF64Sig.c
index 20fb9b4e73..0c63b97d5b 100644
--- a/deps/SoftFloat-3d/source/s_normSubnormalF64Sig.c
+++ b/deps/SoftFloat-3e/source/s_normSubnormalF64Sig.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_remStepMBy32.c b/deps/SoftFloat-3e/source/s_remStepMBy32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_remStepMBy32.c
rename to deps/SoftFloat-3e/source/s_remStepMBy32.c
index 9b5de167e6..dd7d78d46e 100644
--- a/deps/SoftFloat-3d/source/s_remStepMBy32.c
+++ b/deps/SoftFloat-3e/source/s_remStepMBy32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_roundMToI64.c b/deps/SoftFloat-3e/source/s_roundMToI64.c
similarity index 72%
rename from deps/SoftFloat-3d/source/s_roundMToI64.c
rename to deps/SoftFloat-3e/source/s_roundMToI64.c
index d89e86f4bc..66f43b24de 100644
--- a/deps/SoftFloat-3d/source/s_roundMToI64.c
+++ b/deps/SoftFloat-3e/source/s_roundMToI64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
@@ -45,37 +45,51 @@ int_fast64_t
softfloat_roundMToI64(
bool sign, uint32_t *extSigPtr, uint_fast8_t roundingMode, bool exact )
{
- bool roundNearEven;
- uint32_t sigExtra;
- bool doIncrement;
uint64_t sig;
+ uint32_t sigExtra;
union { uint64_t ui; int64_t i; } uZ;
int64_t z;
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
- roundNearEven = (roundingMode == softfloat_round_near_even);
- sigExtra = extSigPtr[indexWordLo( 3 )];
- doIncrement = (0x80000000 <= sigExtra);
- if ( ! roundNearEven && (roundingMode != softfloat_round_near_maxMag) ) {
- doIncrement =
- (roundingMode
- == (sign ? softfloat_round_min : softfloat_round_max))
- && sigExtra;
- }
sig =
(uint64_t) extSigPtr[indexWord( 3, 2 )]<<32
| extSigPtr[indexWord( 3, 1 )];
- if ( doIncrement ) {
- ++sig;
- if ( ! sig ) goto invalid;
- if ( ! (sigExtra & 0x7FFFFFFF) && roundNearEven ) sig &= ~1;
+ sigExtra = extSigPtr[indexWordLo( 3 )];
+ if (
+ (roundingMode == softfloat_round_near_maxMag)
+ || (roundingMode == softfloat_round_near_even)
+ ) {
+ if ( 0x80000000 <= sigExtra ) goto increment;
+ } else {
+ if (
+ sigExtra
+ && (sign
+ ? (roundingMode == softfloat_round_min)
+#ifdef SOFTFLOAT_ROUND_ODD
+ || (roundingMode == softfloat_round_odd)
+#endif
+ : (roundingMode == softfloat_round_max))
+ ) {
+ increment:
+ ++sig;
+ if ( !sig ) goto invalid;
+ if (
+ (sigExtra == 0x80000000)
+ && (roundingMode == softfloat_round_near_even)
+ ) {
+ sig &= ~(uint_fast64_t) 1;
+ }
+ }
}
uZ.ui = sign ? -sig : sig;
z = uZ.i;
if ( z && ((z < 0) ^ sign) ) goto invalid;
- if ( exact && sigExtra ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
+ if ( sigExtra ) {
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) z |= 1;
+#endif
+ if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
}
return z;
/*------------------------------------------------------------------------
diff --git a/deps/SoftFloat-3d/source/s_roundMToUI64.c b/deps/SoftFloat-3e/source/s_roundMToUI64.c
similarity index 69%
rename from deps/SoftFloat-3d/source/s_roundMToUI64.c
rename to deps/SoftFloat-3e/source/s_roundMToUI64.c
index bcd923f956..196f53735f 100644
--- a/deps/SoftFloat-3d/source/s_roundMToUI64.c
+++ b/deps/SoftFloat-3e/source/s_roundMToUI64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
@@ -45,33 +45,47 @@ uint_fast64_t
softfloat_roundMToUI64(
bool sign, uint32_t *extSigPtr, uint_fast8_t roundingMode, bool exact )
{
- bool roundNearEven;
- uint32_t sigExtra;
- bool doIncrement;
uint64_t sig;
+ uint32_t sigExtra;
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
- roundNearEven = (roundingMode == softfloat_round_near_even);
- sigExtra = extSigPtr[indexWordLo( 3 )];
- doIncrement = (0x80000000 <= sigExtra);
- if ( ! roundNearEven && (roundingMode != softfloat_round_near_maxMag) ) {
- doIncrement =
- (roundingMode
- == (sign ? softfloat_round_min : softfloat_round_max))
- && sigExtra;
- }
sig =
(uint64_t) extSigPtr[indexWord( 3, 2 )]<<32
| extSigPtr[indexWord( 3, 1 )];
- if ( doIncrement ) {
- ++sig;
- if ( ! sig ) goto invalid;
- if ( ! (sigExtra & 0x7FFFFFFF) && roundNearEven ) sig &= ~1;
+ sigExtra = extSigPtr[indexWordLo( 3 )];
+ if (
+ (roundingMode == softfloat_round_near_maxMag)
+ || (roundingMode == softfloat_round_near_even)
+ ) {
+ if ( 0x80000000 <= sigExtra ) goto increment;
+ } else {
+ if ( sign ) {
+ if ( !(sig | sigExtra) ) return 0;
+ if ( roundingMode == softfloat_round_min ) goto invalid;
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) goto invalid;
+#endif
+ } else {
+ if ( (roundingMode == softfloat_round_max) && sigExtra ) {
+ increment:
+ ++sig;
+ if ( !sig ) goto invalid;
+ if (
+ (sigExtra == 0x80000000)
+ && (roundingMode == softfloat_round_near_even)
+ ) {
+ sig &= ~(uint_fast64_t) 1;
+ }
+ }
+ }
}
if ( sign && sig ) goto invalid;
- if ( exact && sigExtra ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
+ if ( sigExtra ) {
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) sig |= 1;
+#endif
+ if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
}
return sig;
/*------------------------------------------------------------------------
diff --git a/deps/SoftFloat-3d/source/s_roundPackMToExtF80M.c b/deps/SoftFloat-3e/source/s_roundPackMToExtF80M.c
similarity index 97%
rename from deps/SoftFloat-3d/source/s_roundPackMToExtF80M.c
rename to deps/SoftFloat-3e/source/s_roundPackMToExtF80M.c
index 9c56519362..08620159f0 100644
--- a/deps/SoftFloat-3d/source/s_roundPackMToExtF80M.c
+++ b/deps/SoftFloat-3e/source/s_roundPackMToExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_roundPackMToF128M.c b/deps/SoftFloat-3e/source/s_roundPackMToF128M.c
similarity index 97%
rename from deps/SoftFloat-3d/source/s_roundPackMToF128M.c
rename to deps/SoftFloat-3e/source/s_roundPackMToF128M.c
index 3ad4a87085..22591b8356 100644
--- a/deps/SoftFloat-3d/source/s_roundPackMToF128M.c
+++ b/deps/SoftFloat-3e/source/s_roundPackMToF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_roundPackToExtF80.c b/deps/SoftFloat-3e/source/s_roundPackToExtF80.c
similarity index 97%
rename from deps/SoftFloat-3d/source/s_roundPackToExtF80.c
rename to deps/SoftFloat-3e/source/s_roundPackToExtF80.c
index 76eaa9d3b2..0cc7af9851 100644
--- a/deps/SoftFloat-3d/source/s_roundPackToExtF80.c
+++ b/deps/SoftFloat-3e/source/s_roundPackToExtF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_roundPackToF128.c b/deps/SoftFloat-3e/source/s_roundPackToF128.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_roundPackToF128.c
rename to deps/SoftFloat-3e/source/s_roundPackToF128.c
index b3ba6125d9..41584316a4 100644
--- a/deps/SoftFloat-3d/source/s_roundPackToF128.c
+++ b/deps/SoftFloat-3e/source/s_roundPackToF128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_roundPackToF16.c b/deps/SoftFloat-3e/source/s_roundPackToF16.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_roundPackToF16.c
rename to deps/SoftFloat-3e/source/s_roundPackToF16.c
index db7a9b7f06..2dde55bb40 100644
--- a/deps/SoftFloat-3d/source/s_roundPackToF16.c
+++ b/deps/SoftFloat-3e/source/s_roundPackToF16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_roundPackToF32.c b/deps/SoftFloat-3e/source/s_roundPackToF32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_roundPackToF32.c
rename to deps/SoftFloat-3e/source/s_roundPackToF32.c
index ceb6ccd9cf..a69b8d4d70 100644
--- a/deps/SoftFloat-3d/source/s_roundPackToF32.c
+++ b/deps/SoftFloat-3e/source/s_roundPackToF32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_roundPackToF64.c b/deps/SoftFloat-3e/source/s_roundPackToF64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_roundPackToF64.c
rename to deps/SoftFloat-3e/source/s_roundPackToF64.c
index efd3142143..f7f3abff52 100644
--- a/deps/SoftFloat-3d/source/s_roundPackToF64.c
+++ b/deps/SoftFloat-3e/source/s_roundPackToF64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2017 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_roundToI32.c b/deps/SoftFloat-3e/source/s_roundToI32.c
similarity index 75%
rename from deps/SoftFloat-3d/source/s_roundToI32.c
rename to deps/SoftFloat-3e/source/s_roundToI32.c
index 11b16a3432..a3e727dc70 100644
--- a/deps/SoftFloat-3d/source/s_roundToI32.c
+++ b/deps/SoftFloat-3e/source/s_roundToI32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
@@ -45,7 +45,6 @@ int_fast32_t
softfloat_roundToI32(
bool sign, uint_fast64_t sig, uint_fast8_t roundingMode, bool exact )
{
- bool roundNearEven;
uint_fast16_t roundIncrement, roundBits;
uint_fast32_t sig32;
union { uint32_t ui; int32_t i; } uZ;
@@ -53,25 +52,40 @@ int_fast32_t
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
- roundNearEven = (roundingMode == softfloat_round_near_even);
roundIncrement = 0x800;
- if ( ! roundNearEven && (roundingMode != softfloat_round_near_maxMag) ) {
- roundIncrement =
- (roundingMode
- == (sign ? softfloat_round_min : softfloat_round_max))
- ? 0xFFF
- : 0;
+ if (
+ (roundingMode != softfloat_round_near_maxMag)
+ && (roundingMode != softfloat_round_near_even)
+ ) {
+ roundIncrement = 0;
+ if (
+ sign
+ ? (roundingMode == softfloat_round_min)
+#ifdef SOFTFLOAT_ROUND_ODD
+ || (roundingMode == softfloat_round_odd)
+#endif
+ : (roundingMode == softfloat_round_max)
+ ) {
+ roundIncrement = 0xFFF;
+ }
}
roundBits = sig & 0xFFF;
sig += roundIncrement;
if ( sig & UINT64_C( 0xFFFFF00000000000 ) ) goto invalid;
sig32 = sig>>12;
- sig32 &= ~(uint_fast32_t) (! (roundBits ^ 0x800) & roundNearEven);
+ if (
+ (roundBits == 0x800) && (roundingMode == softfloat_round_near_even)
+ ) {
+ sig32 &= ~(uint_fast32_t) 1;
+ }
uZ.ui = sign ? -sig32 : sig32;
z = uZ.i;
if ( z && ((z < 0) ^ sign) ) goto invalid;
- if ( exact && roundBits ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
+ if ( roundBits ) {
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) z |= 1;
+#endif
+ if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
}
return z;
/*------------------------------------------------------------------------
diff --git a/deps/SoftFloat-3d/source/s_roundToI64.c b/deps/SoftFloat-3e/source/s_roundToI64.c
similarity index 70%
rename from deps/SoftFloat-3d/source/s_roundToI64.c
rename to deps/SoftFloat-3e/source/s_roundToI64.c
index 2280bdc8ad..773c82cfc2 100644
--- a/deps/SoftFloat-3d/source/s_roundToI64.c
+++ b/deps/SoftFloat-3e/source/s_roundToI64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
@@ -50,33 +50,45 @@ int_fast64_t
bool exact
)
{
- bool roundNearEven, doIncrement;
union { uint64_t ui; int64_t i; } uZ;
int_fast64_t z;
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
- roundNearEven = (roundingMode == softfloat_round_near_even);
- doIncrement = (UINT64_C( 0x8000000000000000 ) <= sigExtra);
- if ( ! roundNearEven && (roundingMode != softfloat_round_near_maxMag) ) {
- doIncrement =
- (roundingMode
- == (sign ? softfloat_round_min : softfloat_round_max))
- && sigExtra;
- }
- if ( doIncrement ) {
- ++sig;
- if ( ! sig ) goto invalid;
- sig &=
- ~(uint_fast64_t)
- (! (sigExtra & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
- & roundNearEven);
+ if (
+ (roundingMode == softfloat_round_near_maxMag)
+ || (roundingMode == softfloat_round_near_even)
+ ) {
+ if ( UINT64_C( 0x8000000000000000 ) <= sigExtra ) goto increment;
+ } else {
+ if (
+ sigExtra
+ && (sign
+ ? (roundingMode == softfloat_round_min)
+#ifdef SOFTFLOAT_ROUND_ODD
+ || (roundingMode == softfloat_round_odd)
+#endif
+ : (roundingMode == softfloat_round_max))
+ ) {
+ increment:
+ ++sig;
+ if ( !sig ) goto invalid;
+ if (
+ (sigExtra == UINT64_C( 0x8000000000000000 ))
+ && (roundingMode == softfloat_round_near_even)
+ ) {
+ sig &= ~(uint_fast64_t) 1;
+ }
+ }
}
uZ.ui = sign ? -sig : sig;
z = uZ.i;
if ( z && ((z < 0) ^ sign) ) goto invalid;
- if ( exact && sigExtra ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
+ if ( sigExtra ) {
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) z |= 1;
+#endif
+ if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
}
return z;
/*------------------------------------------------------------------------
diff --git a/deps/SoftFloat-3d/source/s_roundToUI32.c b/deps/SoftFloat-3e/source/s_roundToUI32.c
similarity index 74%
rename from deps/SoftFloat-3d/source/s_roundToUI32.c
rename to deps/SoftFloat-3e/source/s_roundToUI32.c
index 5c086a3d58..059e231e2e 100644
--- a/deps/SoftFloat-3d/source/s_roundToUI32.c
+++ b/deps/SoftFloat-3e/source/s_roundToUI32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
@@ -45,29 +45,42 @@ uint_fast32_t
softfloat_roundToUI32(
bool sign, uint_fast64_t sig, uint_fast8_t roundingMode, bool exact )
{
- bool roundNearEven;
uint_fast16_t roundIncrement, roundBits;
uint_fast32_t z;
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
- roundNearEven = (roundingMode == softfloat_round_near_even);
roundIncrement = 0x800;
- if ( ! roundNearEven && (roundingMode != softfloat_round_near_maxMag) ) {
- roundIncrement =
- (roundingMode
- == (sign ? softfloat_round_min : softfloat_round_max))
- ? 0xFFF
- : 0;
+ if (
+ (roundingMode != softfloat_round_near_maxMag)
+ && (roundingMode != softfloat_round_near_even)
+ ) {
+ roundIncrement = 0;
+ if ( sign ) {
+ if ( !sig ) return 0;
+ if ( roundingMode == softfloat_round_min ) goto invalid;
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) goto invalid;
+#endif
+ } else {
+ if ( roundingMode == softfloat_round_max ) roundIncrement = 0xFFF;
+ }
}
roundBits = sig & 0xFFF;
sig += roundIncrement;
if ( sig & UINT64_C( 0xFFFFF00000000000 ) ) goto invalid;
z = sig>>12;
- z &= ~(uint_fast32_t) (! (roundBits ^ 0x800) & roundNearEven);
+ if (
+ (roundBits == 0x800) && (roundingMode == softfloat_round_near_even)
+ ) {
+ z &= ~(uint_fast32_t) 1;
+ }
if ( sign && z ) goto invalid;
- if ( exact && roundBits ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
+ if ( roundBits ) {
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) z |= 1;
+#endif
+ if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
}
return z;
/*------------------------------------------------------------------------
diff --git a/deps/SoftFloat-3d/source/s_roundToUI64.c b/deps/SoftFloat-3e/source/s_roundToUI64.c
similarity index 68%
rename from deps/SoftFloat-3d/source/s_roundToUI64.c
rename to deps/SoftFloat-3e/source/s_roundToUI64.c
index 968eaebbee..856ad97929 100644
--- a/deps/SoftFloat-3d/source/s_roundToUI64.c
+++ b/deps/SoftFloat-3e/source/s_roundToUI64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
@@ -50,29 +50,41 @@ uint_fast64_t
bool exact
)
{
- bool roundNearEven, doIncrement;
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
- roundNearEven = (roundingMode == softfloat_round_near_even);
- doIncrement = (UINT64_C( 0x8000000000000000 ) <= sigExtra);
- if ( ! roundNearEven && (roundingMode != softfloat_round_near_maxMag) ) {
- doIncrement =
- (roundingMode
- == (sign ? softfloat_round_min : softfloat_round_max))
- && sigExtra;
- }
- if ( doIncrement ) {
- ++sig;
- if ( ! sig ) goto invalid;
- sig &=
- ~(uint_fast64_t)
- (! (sigExtra & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
- & roundNearEven);
+ if (
+ (roundingMode == softfloat_round_near_maxMag)
+ || (roundingMode == softfloat_round_near_even)
+ ) {
+ if ( UINT64_C( 0x8000000000000000 ) <= sigExtra ) goto increment;
+ } else {
+ if ( sign ) {
+ if ( !(sig | sigExtra) ) return 0;
+ if ( roundingMode == softfloat_round_min ) goto invalid;
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) goto invalid;
+#endif
+ } else {
+ if ( (roundingMode == softfloat_round_max) && sigExtra ) {
+ increment:
+ ++sig;
+ if ( !sig ) goto invalid;
+ if (
+ (sigExtra == UINT64_C( 0x8000000000000000 ))
+ && (roundingMode == softfloat_round_near_even)
+ ) {
+ sig &= ~(uint_fast64_t) 1;
+ }
+ }
+ }
}
if ( sign && sig ) goto invalid;
- if ( exact && sigExtra ) {
- softfloat_exceptionFlags |= softfloat_flag_inexact;
+ if ( sigExtra ) {
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) sig |= 1;
+#endif
+ if ( exact ) softfloat_exceptionFlags |= softfloat_flag_inexact;
}
return sig;
/*------------------------------------------------------------------------
diff --git a/deps/SoftFloat-3d/source/s_shiftLeftM.c b/deps/SoftFloat-3e/source/s_shiftLeftM.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shiftLeftM.c
rename to deps/SoftFloat-3e/source/s_shiftLeftM.c
index 4095e228af..71a3099199 100644
--- a/deps/SoftFloat-3d/source/s_shiftLeftM.c
+++ b/deps/SoftFloat-3e/source/s_shiftLeftM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shiftNormSigF128M.c b/deps/SoftFloat-3e/source/s_shiftNormSigF128M.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_shiftNormSigF128M.c
rename to deps/SoftFloat-3e/source/s_shiftNormSigF128M.c
index 561bf5c6f5..fa4976c8e7 100644
--- a/deps/SoftFloat-3d/source/s_shiftNormSigF128M.c
+++ b/deps/SoftFloat-3e/source/s_shiftNormSigF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shiftRightJam128.c b/deps/SoftFloat-3e/source/s_shiftRightJam128.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shiftRightJam128.c
rename to deps/SoftFloat-3e/source/s_shiftRightJam128.c
index e320bc994e..aac5f6db0c 100644
--- a/deps/SoftFloat-3d/source/s_shiftRightJam128.c
+++ b/deps/SoftFloat-3e/source/s_shiftRightJam128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shiftRightJam128Extra.c b/deps/SoftFloat-3e/source/s_shiftRightJam128Extra.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shiftRightJam128Extra.c
rename to deps/SoftFloat-3e/source/s_shiftRightJam128Extra.c
index 4f672491ab..75722887bd 100644
--- a/deps/SoftFloat-3d/source/s_shiftRightJam128Extra.c
+++ b/deps/SoftFloat-3e/source/s_shiftRightJam128Extra.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shiftRightJam256M.c b/deps/SoftFloat-3e/source/s_shiftRightJam256M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shiftRightJam256M.c
rename to deps/SoftFloat-3e/source/s_shiftRightJam256M.c
index 68dbf59bd0..433870a817 100644
--- a/deps/SoftFloat-3d/source/s_shiftRightJam256M.c
+++ b/deps/SoftFloat-3e/source/s_shiftRightJam256M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shiftRightJam32.c b/deps/SoftFloat-3e/source/s_shiftRightJam32.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shiftRightJam32.c
rename to deps/SoftFloat-3e/source/s_shiftRightJam32.c
index 9d79f225ae..2533fcd956 100644
--- a/deps/SoftFloat-3d/source/s_shiftRightJam32.c
+++ b/deps/SoftFloat-3e/source/s_shiftRightJam32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shiftRightJam64.c b/deps/SoftFloat-3e/source/s_shiftRightJam64.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shiftRightJam64.c
rename to deps/SoftFloat-3e/source/s_shiftRightJam64.c
index ad30f64f91..4b40e3de68 100644
--- a/deps/SoftFloat-3d/source/s_shiftRightJam64.c
+++ b/deps/SoftFloat-3e/source/s_shiftRightJam64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shiftRightJam64Extra.c b/deps/SoftFloat-3e/source/s_shiftRightJam64Extra.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shiftRightJam64Extra.c
rename to deps/SoftFloat-3e/source/s_shiftRightJam64Extra.c
index 85f8926b03..b93fad39c9 100644
--- a/deps/SoftFloat-3d/source/s_shiftRightJam64Extra.c
+++ b/deps/SoftFloat-3e/source/s_shiftRightJam64Extra.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shiftRightJamM.c b/deps/SoftFloat-3e/source/s_shiftRightJamM.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_shiftRightJamM.c
rename to deps/SoftFloat-3e/source/s_shiftRightJamM.c
index 00aeaded3c..edf5f956b9 100644
--- a/deps/SoftFloat-3d/source/s_shiftRightJamM.c
+++ b/deps/SoftFloat-3e/source/s_shiftRightJamM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shiftRightM.c b/deps/SoftFloat-3e/source/s_shiftRightM.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shiftRightM.c
rename to deps/SoftFloat-3e/source/s_shiftRightM.c
index 4dd8d27871..00265ea238 100644
--- a/deps/SoftFloat-3d/source/s_shiftRightM.c
+++ b/deps/SoftFloat-3e/source/s_shiftRightM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shortShiftLeft128.c b/deps/SoftFloat-3e/source/s_shortShiftLeft128.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shortShiftLeft128.c
rename to deps/SoftFloat-3e/source/s_shortShiftLeft128.c
index 0ae75c1419..7513bc6272 100644
--- a/deps/SoftFloat-3d/source/s_shortShiftLeft128.c
+++ b/deps/SoftFloat-3e/source/s_shortShiftLeft128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shortShiftLeft64To96M.c b/deps/SoftFloat-3e/source/s_shortShiftLeft64To96M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shortShiftLeft64To96M.c
rename to deps/SoftFloat-3e/source/s_shortShiftLeft64To96M.c
index 0c4289da4b..ce1f09b23f 100644
--- a/deps/SoftFloat-3d/source/s_shortShiftLeft64To96M.c
+++ b/deps/SoftFloat-3e/source/s_shortShiftLeft64To96M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shortShiftLeftM.c b/deps/SoftFloat-3e/source/s_shortShiftLeftM.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shortShiftLeftM.c
rename to deps/SoftFloat-3e/source/s_shortShiftLeftM.c
index 5a5c5224cb..48e6e03b54 100644
--- a/deps/SoftFloat-3d/source/s_shortShiftLeftM.c
+++ b/deps/SoftFloat-3e/source/s_shortShiftLeftM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shortShiftRight128.c b/deps/SoftFloat-3e/source/s_shortShiftRight128.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shortShiftRight128.c
rename to deps/SoftFloat-3e/source/s_shortShiftRight128.c
index 787759bec8..8f5c650b23 100644
--- a/deps/SoftFloat-3d/source/s_shortShiftRight128.c
+++ b/deps/SoftFloat-3e/source/s_shortShiftRight128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shortShiftRightExtendM.c b/deps/SoftFloat-3e/source/s_shortShiftRightExtendM.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shortShiftRightExtendM.c
rename to deps/SoftFloat-3e/source/s_shortShiftRightExtendM.c
index 94deedaa74..bc441c731a 100644
--- a/deps/SoftFloat-3d/source/s_shortShiftRightExtendM.c
+++ b/deps/SoftFloat-3e/source/s_shortShiftRightExtendM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shortShiftRightJam128.c b/deps/SoftFloat-3e/source/s_shortShiftRightJam128.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shortShiftRightJam128.c
rename to deps/SoftFloat-3e/source/s_shortShiftRightJam128.c
index b3ab65c9b0..76008722bf 100644
--- a/deps/SoftFloat-3d/source/s_shortShiftRightJam128.c
+++ b/deps/SoftFloat-3e/source/s_shortShiftRightJam128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shortShiftRightJam128Extra.c b/deps/SoftFloat-3e/source/s_shortShiftRightJam128Extra.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shortShiftRightJam128Extra.c
rename to deps/SoftFloat-3e/source/s_shortShiftRightJam128Extra.c
index 83463a7af8..b0774401d6 100644
--- a/deps/SoftFloat-3d/source/s_shortShiftRightJam128Extra.c
+++ b/deps/SoftFloat-3e/source/s_shortShiftRightJam128Extra.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shortShiftRightJam64.c b/deps/SoftFloat-3e/source/s_shortShiftRightJam64.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shortShiftRightJam64.c
rename to deps/SoftFloat-3e/source/s_shortShiftRightJam64.c
index c13d860d65..d3044c8537 100644
--- a/deps/SoftFloat-3d/source/s_shortShiftRightJam64.c
+++ b/deps/SoftFloat-3e/source/s_shortShiftRightJam64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shortShiftRightJam64Extra.c b/deps/SoftFloat-3e/source/s_shortShiftRightJam64Extra.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shortShiftRightJam64Extra.c
rename to deps/SoftFloat-3e/source/s_shortShiftRightJam64Extra.c
index 9a5006d811..f2af92bc0a 100644
--- a/deps/SoftFloat-3d/source/s_shortShiftRightJam64Extra.c
+++ b/deps/SoftFloat-3e/source/s_shortShiftRightJam64Extra.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shortShiftRightJamM.c b/deps/SoftFloat-3e/source/s_shortShiftRightJamM.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shortShiftRightJamM.c
rename to deps/SoftFloat-3e/source/s_shortShiftRightJamM.c
index 24155ca5e7..b567e482a8 100644
--- a/deps/SoftFloat-3d/source/s_shortShiftRightJamM.c
+++ b/deps/SoftFloat-3e/source/s_shortShiftRightJamM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_shortShiftRightM.c b/deps/SoftFloat-3e/source/s_shortShiftRightM.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_shortShiftRightM.c
rename to deps/SoftFloat-3e/source/s_shortShiftRightM.c
index 6527e03ca0..54e0071c7b 100644
--- a/deps/SoftFloat-3d/source/s_shortShiftRightM.c
+++ b/deps/SoftFloat-3e/source/s_shortShiftRightM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_sub128.c b/deps/SoftFloat-3e/source/s_sub128.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_sub128.c
rename to deps/SoftFloat-3e/source/s_sub128.c
index cbb1216ebe..9bf3463910 100644
--- a/deps/SoftFloat-3d/source/s_sub128.c
+++ b/deps/SoftFloat-3e/source/s_sub128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_sub1XM.c b/deps/SoftFloat-3e/source/s_sub1XM.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_sub1XM.c
rename to deps/SoftFloat-3e/source/s_sub1XM.c
index 18019aab39..30c5d36eea 100644
--- a/deps/SoftFloat-3d/source/s_sub1XM.c
+++ b/deps/SoftFloat-3e/source/s_sub1XM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_sub256M.c b/deps/SoftFloat-3e/source/s_sub256M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_sub256M.c
rename to deps/SoftFloat-3e/source/s_sub256M.c
index 4690ac5685..a4af5a1c95 100644
--- a/deps/SoftFloat-3d/source/s_sub256M.c
+++ b/deps/SoftFloat-3e/source/s_sub256M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_subM.c b/deps/SoftFloat-3e/source/s_subM.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_subM.c
rename to deps/SoftFloat-3e/source/s_subM.c
index c72bbc5d8f..fcccc744cf 100644
--- a/deps/SoftFloat-3d/source/s_subM.c
+++ b/deps/SoftFloat-3e/source/s_subM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_subMagsExtF80.c b/deps/SoftFloat-3e/source/s_subMagsExtF80.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_subMagsExtF80.c
rename to deps/SoftFloat-3e/source/s_subMagsExtF80.c
index 016e4c455c..0c46c61a2b 100644
--- a/deps/SoftFloat-3d/source/s_subMagsExtF80.c
+++ b/deps/SoftFloat-3e/source/s_subMagsExtF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_subMagsF128.c b/deps/SoftFloat-3e/source/s_subMagsF128.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_subMagsF128.c
rename to deps/SoftFloat-3e/source/s_subMagsF128.c
index 2bf8f4d851..e93543f096 100644
--- a/deps/SoftFloat-3d/source/s_subMagsF128.c
+++ b/deps/SoftFloat-3e/source/s_subMagsF128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_subMagsF16.c b/deps/SoftFloat-3e/source/s_subMagsF16.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_subMagsF16.c
rename to deps/SoftFloat-3e/source/s_subMagsF16.c
index e192553f30..ae1417ea94 100644
--- a/deps/SoftFloat-3d/source/s_subMagsF16.c
+++ b/deps/SoftFloat-3e/source/s_subMagsF16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
University of California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_subMagsF32.c b/deps/SoftFloat-3e/source/s_subMagsF32.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_subMagsF32.c
rename to deps/SoftFloat-3e/source/s_subMagsF32.c
index 625cbef162..0c1f32ed6f 100644
--- a/deps/SoftFloat-3d/source/s_subMagsF32.c
+++ b/deps/SoftFloat-3e/source/s_subMagsF32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_subMagsF64.c b/deps/SoftFloat-3e/source/s_subMagsF64.c
similarity index 96%
rename from deps/SoftFloat-3d/source/s_subMagsF64.c
rename to deps/SoftFloat-3e/source/s_subMagsF64.c
index 6636af25a6..a4a0ebc44f 100644
--- a/deps/SoftFloat-3d/source/s_subMagsF64.c
+++ b/deps/SoftFloat-3e/source/s_subMagsF64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_tryPropagateNaNExtF80M.c b/deps/SoftFloat-3e/source/s_tryPropagateNaNExtF80M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_tryPropagateNaNExtF80M.c
rename to deps/SoftFloat-3e/source/s_tryPropagateNaNExtF80M.c
index 2a81689cf6..70092fe6a3 100644
--- a/deps/SoftFloat-3d/source/s_tryPropagateNaNExtF80M.c
+++ b/deps/SoftFloat-3e/source/s_tryPropagateNaNExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/s_tryPropagateNaNF128M.c b/deps/SoftFloat-3e/source/s_tryPropagateNaNF128M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/s_tryPropagateNaNF128M.c
rename to deps/SoftFloat-3e/source/s_tryPropagateNaNF128M.c
index 9301b0faea..bab04a7c08 100644
--- a/deps/SoftFloat-3d/source/s_tryPropagateNaNF128M.c
+++ b/deps/SoftFloat-3e/source/s_tryPropagateNaNF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/deps/SoftFloat-3d/source/softfloat_state.c b/deps/SoftFloat-3e/source/softfloat_state.c
similarity index 96%
rename from deps/SoftFloat-3d/source/softfloat_state.c
rename to deps/SoftFloat-3e/source/softfloat_state.c
index d54dd1e43c..0f296654fd 100644
--- a/deps/SoftFloat-3d/source/softfloat_state.c
+++ b/deps/SoftFloat-3e/source/softfloat_state.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/deps/SoftFloat-3d/source/ui32_to_extF80.c b/deps/SoftFloat-3e/source/ui32_to_extF80.c
similarity index 95%
rename from deps/SoftFloat-3d/source/ui32_to_extF80.c
rename to deps/SoftFloat-3e/source/ui32_to_extF80.c
index f75fb76256..34f79368f2 100644
--- a/deps/SoftFloat-3d/source/ui32_to_extF80.c
+++ b/deps/SoftFloat-3e/source/ui32_to_extF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/deps/SoftFloat-3d/source/ui32_to_extF80M.c b/deps/SoftFloat-3e/source/ui32_to_extF80M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/ui32_to_extF80M.c
rename to deps/SoftFloat-3e/source/ui32_to_extF80M.c
index 3b8662a8fb..0a0c098c00 100644
--- a/deps/SoftFloat-3d/source/ui32_to_extF80M.c
+++ b/deps/SoftFloat-3e/source/ui32_to_extF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/deps/SoftFloat-3d/source/ui32_to_f128.c b/deps/SoftFloat-3e/source/ui32_to_f128.c
similarity index 95%
rename from deps/SoftFloat-3d/source/ui32_to_f128.c
rename to deps/SoftFloat-3e/source/ui32_to_f128.c
index bbb6fa0f90..c3ab53daf7 100644
--- a/deps/SoftFloat-3d/source/ui32_to_f128.c
+++ b/deps/SoftFloat-3e/source/ui32_to_f128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/deps/SoftFloat-3d/source/ui32_to_f128M.c b/deps/SoftFloat-3e/source/ui32_to_f128M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/ui32_to_f128M.c
rename to deps/SoftFloat-3e/source/ui32_to_f128M.c
index 57df69fdd0..02b0434cad 100644
--- a/deps/SoftFloat-3d/source/ui32_to_f128M.c
+++ b/deps/SoftFloat-3e/source/ui32_to_f128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/deps/SoftFloat-3d/source/ui32_to_f16.c b/deps/SoftFloat-3e/source/ui32_to_f16.c
similarity index 95%
rename from deps/SoftFloat-3d/source/ui32_to_f16.c
rename to deps/SoftFloat-3e/source/ui32_to_f16.c
index 643a3aeb7f..6fc377bca1 100644
--- a/deps/SoftFloat-3d/source/ui32_to_f16.c
+++ b/deps/SoftFloat-3e/source/ui32_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/deps/SoftFloat-3d/source/ui32_to_f32.c b/deps/SoftFloat-3e/source/ui32_to_f32.c
similarity index 95%
rename from deps/SoftFloat-3d/source/ui32_to_f32.c
rename to deps/SoftFloat-3e/source/ui32_to_f32.c
index 65a2789e2a..d75911f2d3 100644
--- a/deps/SoftFloat-3d/source/ui32_to_f32.c
+++ b/deps/SoftFloat-3e/source/ui32_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All Rights Reserved.
diff --git a/deps/SoftFloat-3d/source/ui32_to_f64.c b/deps/SoftFloat-3e/source/ui32_to_f64.c
similarity index 95%
rename from deps/SoftFloat-3d/source/ui32_to_f64.c
rename to deps/SoftFloat-3e/source/ui32_to_f64.c
index cd0961a02f..504f96e6e2 100644
--- a/deps/SoftFloat-3d/source/ui32_to_f64.c
+++ b/deps/SoftFloat-3e/source/ui32_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/deps/SoftFloat-3d/source/ui64_to_extF80.c b/deps/SoftFloat-3e/source/ui64_to_extF80.c
similarity index 95%
rename from deps/SoftFloat-3d/source/ui64_to_extF80.c
rename to deps/SoftFloat-3e/source/ui64_to_extF80.c
index 85de5b94ef..b0e932fed3 100644
--- a/deps/SoftFloat-3d/source/ui64_to_extF80.c
+++ b/deps/SoftFloat-3e/source/ui64_to_extF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/deps/SoftFloat-3d/source/ui64_to_extF80M.c b/deps/SoftFloat-3e/source/ui64_to_extF80M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/ui64_to_extF80M.c
rename to deps/SoftFloat-3e/source/ui64_to_extF80M.c
index c117544065..e676d904a4 100644
--- a/deps/SoftFloat-3d/source/ui64_to_extF80M.c
+++ b/deps/SoftFloat-3e/source/ui64_to_extF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/deps/SoftFloat-3d/source/ui64_to_f128.c b/deps/SoftFloat-3e/source/ui64_to_f128.c
similarity index 95%
rename from deps/SoftFloat-3d/source/ui64_to_f128.c
rename to deps/SoftFloat-3e/source/ui64_to_f128.c
index b0f311d30b..6ff6a6fcfa 100644
--- a/deps/SoftFloat-3d/source/ui64_to_f128.c
+++ b/deps/SoftFloat-3e/source/ui64_to_f128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/deps/SoftFloat-3d/source/ui64_to_f128M.c b/deps/SoftFloat-3e/source/ui64_to_f128M.c
similarity index 95%
rename from deps/SoftFloat-3d/source/ui64_to_f128M.c
rename to deps/SoftFloat-3e/source/ui64_to_f128M.c
index a0e8a5761c..043406cc4f 100644
--- a/deps/SoftFloat-3d/source/ui64_to_f128M.c
+++ b/deps/SoftFloat-3e/source/ui64_to_f128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/deps/SoftFloat-3d/source/ui64_to_f16.c b/deps/SoftFloat-3e/source/ui64_to_f16.c
similarity index 95%
rename from deps/SoftFloat-3d/source/ui64_to_f16.c
rename to deps/SoftFloat-3e/source/ui64_to_f16.c
index dcea896471..3d58e85cf6 100644
--- a/deps/SoftFloat-3d/source/ui64_to_f16.c
+++ b/deps/SoftFloat-3e/source/ui64_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/deps/SoftFloat-3d/source/ui64_to_f32.c b/deps/SoftFloat-3e/source/ui64_to_f32.c
similarity index 95%
rename from deps/SoftFloat-3d/source/ui64_to_f32.c
rename to deps/SoftFloat-3e/source/ui64_to_f32.c
index d299fb4e50..cbe3a9db2a 100644
--- a/deps/SoftFloat-3d/source/ui64_to_f32.c
+++ b/deps/SoftFloat-3e/source/ui64_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/deps/SoftFloat-3d/source/ui64_to_f64.c b/deps/SoftFloat-3e/source/ui64_to_f64.c
similarity index 95%
rename from deps/SoftFloat-3d/source/ui64_to_f64.c
rename to deps/SoftFloat-3e/source/ui64_to_f64.c
index ffbc2ce232..0328943785 100644
--- a/deps/SoftFloat-3d/source/ui64_to_f64.c
+++ b/deps/SoftFloat-3e/source/ui64_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3d, by John R. Hauser.
+Package, Release 3e, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All Rights Reserved.