diff options
Diffstat (limited to 'src/lib/softfloat/softfloat-macros')
-rw-r--r-- | src/lib/softfloat/softfloat-macros | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/lib/softfloat/softfloat-macros b/src/lib/softfloat/softfloat-macros index 2c8f18b1cec..e4a059f3df8 100644 --- a/src/lib/softfloat/softfloat-macros +++ b/src/lib/softfloat/softfloat-macros @@ -543,7 +543,7 @@ INLINE void | unsigned integer is returned. *----------------------------------------------------------------------------*/ -static bits64 estimateDiv128To64( bits64 a0, bits64 a1, bits64 b ) +INLINE bits64 estimateDiv128To64( bits64 a0, bits64 a1, bits64 b ) { bits64 b0, b1; bits64 rem0, rem1, term0, term1; @@ -575,7 +575,7 @@ static bits64 estimateDiv128To64( bits64 a0, bits64 a1, bits64 b ) | value. *----------------------------------------------------------------------------*/ -static bits32 estimateSqrt32( int16 aExp, bits32 a ) +INLINE bits32 estimateSqrt32( int16 aExp, bits32 a ) { static const bits16 sqrtOddAdjustments[] = { 0x0004, 0x0022, 0x005D, 0x00B1, 0x011D, 0x019F, 0x0236, 0x02E0, @@ -718,3 +718,15 @@ INLINE flag ne128( bits64 a0, bits64 a1, bits64 b0, bits64 b1 ) } +/*----------------------------------------------------------------------------- +| Changes the sign of the extended double-precision floating-point value 'a'. +| The operation is performed according to the IEC/IEEE Standard for Binary +| Floating-Point Arithmetic. +*----------------------------------------------------------------------------*/ + +INLINE floatx80 floatx80_chs(floatx80 reg) +{ + reg.high ^= 0x8000; + return reg; +} + |