aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hauser <jhauser@eecs.berkeley.edu>2017-02-10 12:35:21 -0800
committerJohn Hauser <jhauser@eecs.berkeley.edu>2017-02-10 12:35:21 -0800
commit9d731d45e86ae28cf13b0094979577061e0e811c (patch)
tree0fb71733a01f5b8975ae1bf77b09a1c9edaac407
parentcb5087cd7403acf31ac24ac4be8e019a51904895 (diff)
downloadberkeley-softfloat-3-9d731d45e86ae28cf13b0094979577061e0e811c.zip
berkeley-softfloat-3-9d731d45e86ae28cf13b0094979577061e0e811c.tar.gz
berkeley-softfloat-3-9d731d45e86ae28cf13b0094979577061e0e811c.tar.bz2
Release 3c. See "doc/SoftFloat-history.html".
-rw-r--r--COPYING.txt10
-rw-r--r--README.html4
-rw-r--r--README.md10
-rw-r--r--README.txt4
-rw-r--r--build/Linux-386-GCC/Makefile17
-rw-r--r--build/Linux-386-GCC/platform.h2
-rw-r--r--build/Linux-386-SSE2-GCC/Makefile17
-rw-r--r--build/Linux-386-SSE2-GCC/platform.h2
-rw-r--r--build/Linux-x86_64-GCC/Makefile17
-rw-r--r--build/Linux-x86_64-GCC/platform.h2
-rw-r--r--build/Win32-MinGW/Makefile17
-rw-r--r--build/Win32-MinGW/platform.h2
-rw-r--r--build/Win32-SSE2-MinGW/Makefile17
-rw-r--r--build/Win32-SSE2-MinGW/platform.h2
-rw-r--r--build/Win64-MinGW-w64/Makefile17
-rw-r--r--build/Win64-MinGW-w64/platform.h2
-rw-r--r--build/template-FAST_INT64/Makefile17
-rw-r--r--build/template-FAST_INT64/platform.h2
-rw-r--r--build/template-not-FAST_INT64/Makefile17
-rw-r--r--build/template-not-FAST_INT64/platform.h2
-rw-r--r--doc/SoftFloat-history.html19
-rw-r--r--doc/SoftFloat-source.html129
-rw-r--r--doc/SoftFloat.html142
-rw-r--r--source/8086-SSE/extF80M_isSignalingNaN.c2
-rw-r--r--source/8086-SSE/f128M_isSignalingNaN.c2
-rw-r--r--source/8086-SSE/s_commonNaNToExtF80M.c2
-rw-r--r--source/8086-SSE/s_commonNaNToExtF80UI.c2
-rw-r--r--source/8086-SSE/s_commonNaNToF128M.c2
-rw-r--r--source/8086-SSE/s_commonNaNToF128UI.c2
-rw-r--r--source/8086-SSE/s_commonNaNToF16UI.c2
-rw-r--r--source/8086-SSE/s_commonNaNToF32UI.c2
-rw-r--r--source/8086-SSE/s_commonNaNToF64UI.c2
-rw-r--r--source/8086-SSE/s_extF80MToCommonNaN.c2
-rw-r--r--source/8086-SSE/s_extF80UIToCommonNaN.c2
-rw-r--r--source/8086-SSE/s_f128MToCommonNaN.c2
-rw-r--r--source/8086-SSE/s_f128UIToCommonNaN.c2
-rw-r--r--source/8086-SSE/s_f16UIToCommonNaN.c2
-rw-r--r--source/8086-SSE/s_f32UIToCommonNaN.c2
-rw-r--r--source/8086-SSE/s_f64UIToCommonNaN.c2
-rw-r--r--source/8086-SSE/s_propagateNaNExtF80M.c2
-rw-r--r--source/8086-SSE/s_propagateNaNExtF80UI.c2
-rw-r--r--source/8086-SSE/s_propagateNaNF128M.c2
-rw-r--r--source/8086-SSE/s_propagateNaNF128UI.c2
-rw-r--r--source/8086-SSE/s_propagateNaNF16UI.c2
-rw-r--r--source/8086-SSE/s_propagateNaNF32UI.c2
-rw-r--r--source/8086-SSE/s_propagateNaNF64UI.c2
-rw-r--r--source/8086-SSE/softfloat_raiseFlags.c2
-rw-r--r--source/8086-SSE/specialize.h2
-rw-r--r--source/8086/extF80M_isSignalingNaN.c2
-rw-r--r--source/8086/f128M_isSignalingNaN.c2
-rw-r--r--source/8086/s_commonNaNToExtF80M.c2
-rw-r--r--source/8086/s_commonNaNToExtF80UI.c2
-rw-r--r--source/8086/s_commonNaNToF128M.c2
-rw-r--r--source/8086/s_commonNaNToF128UI.c2
-rw-r--r--source/8086/s_commonNaNToF16UI.c2
-rw-r--r--source/8086/s_commonNaNToF32UI.c2
-rw-r--r--source/8086/s_commonNaNToF64UI.c2
-rw-r--r--source/8086/s_extF80MToCommonNaN.c2
-rw-r--r--source/8086/s_extF80UIToCommonNaN.c2
-rw-r--r--source/8086/s_f128MToCommonNaN.c2
-rw-r--r--source/8086/s_f128UIToCommonNaN.c2
-rw-r--r--source/8086/s_f16UIToCommonNaN.c2
-rw-r--r--source/8086/s_f32UIToCommonNaN.c2
-rw-r--r--source/8086/s_f64UIToCommonNaN.c2
-rw-r--r--source/8086/s_propagateNaNExtF80M.c2
-rw-r--r--source/8086/s_propagateNaNExtF80UI.c2
-rw-r--r--source/8086/s_propagateNaNF128M.c2
-rw-r--r--source/8086/s_propagateNaNF128UI.c2
-rw-r--r--source/8086/s_propagateNaNF16UI.c2
-rw-r--r--source/8086/s_propagateNaNF32UI.c2
-rw-r--r--source/8086/s_propagateNaNF64UI.c2
-rw-r--r--source/8086/softfloat_raiseFlags.c2
-rw-r--r--source/8086/specialize.h2
-rw-r--r--source/RISCV/extF80M_isSignalingNaN.c2
-rw-r--r--source/RISCV/f128M_isSignalingNaN.c2
-rw-r--r--source/RISCV/s_commonNaNToExtF80M.c2
-rw-r--r--source/RISCV/s_commonNaNToExtF80UI.c2
-rw-r--r--source/RISCV/s_commonNaNToF128M.c2
-rw-r--r--source/RISCV/s_commonNaNToF128UI.c2
-rw-r--r--source/RISCV/s_commonNaNToF16UI.c4
-rw-r--r--source/RISCV/s_commonNaNToF32UI.c4
-rw-r--r--source/RISCV/s_commonNaNToF64UI.c4
-rw-r--r--source/RISCV/s_extF80MToCommonNaN.c4
-rw-r--r--source/RISCV/s_extF80UIToCommonNaN.c4
-rw-r--r--source/RISCV/s_f128MToCommonNaN.c4
-rw-r--r--source/RISCV/s_f128UIToCommonNaN.c4
-rw-r--r--source/RISCV/s_f16UIToCommonNaN.c4
-rw-r--r--source/RISCV/s_f32UIToCommonNaN.c4
-rw-r--r--source/RISCV/s_f64UIToCommonNaN.c4
-rw-r--r--source/RISCV/s_propagateNaNExtF80M.c2
-rw-r--r--source/RISCV/s_propagateNaNExtF80UI.c2
-rw-r--r--source/RISCV/s_propagateNaNF128M.c2
-rw-r--r--source/RISCV/s_propagateNaNF128UI.c2
-rw-r--r--source/RISCV/s_propagateNaNF16UI.c2
-rw-r--r--source/RISCV/s_propagateNaNF32UI.c2
-rw-r--r--source/RISCV/s_propagateNaNF64UI.c2
-rw-r--r--source/RISCV/softfloat_raiseFlags.c2
-rw-r--r--source/RISCV/specialize.h2
-rw-r--r--source/extF80M_add.c2
-rw-r--r--source/extF80M_div.c2
-rw-r--r--source/extF80M_eq.c2
-rw-r--r--source/extF80M_eq_signaling.c2
-rw-r--r--source/extF80M_le.c2
-rw-r--r--source/extF80M_le_quiet.c2
-rw-r--r--source/extF80M_lt.c2
-rw-r--r--source/extF80M_lt_quiet.c2
-rw-r--r--source/extF80M_mul.c2
-rw-r--r--source/extF80M_rem.c2
-rw-r--r--source/extF80M_roundToInt.c14
-rw-r--r--source/extF80M_sqrt.c2
-rw-r--r--source/extF80M_sub.c2
-rw-r--r--source/extF80M_to_f128M.c2
-rw-r--r--source/extF80M_to_f16.c2
-rw-r--r--source/extF80M_to_f32.c2
-rw-r--r--source/extF80M_to_f64.c2
-rw-r--r--source/extF80M_to_i32.c8
-rw-r--r--source/extF80M_to_i32_r_minMag.c2
-rw-r--r--source/extF80M_to_i64.c8
-rw-r--r--source/extF80M_to_i64_r_minMag.c2
-rw-r--r--source/extF80M_to_ui32.c8
-rw-r--r--source/extF80M_to_ui32_r_minMag.c2
-rw-r--r--source/extF80M_to_ui64.c8
-rw-r--r--source/extF80M_to_ui64_r_minMag.c2
-rw-r--r--source/extF80_add.c2
-rw-r--r--source/extF80_div.c2
-rw-r--r--source/extF80_eq.c2
-rw-r--r--source/extF80_eq_signaling.c2
-rw-r--r--source/extF80_isSignalingNaN.c2
-rw-r--r--source/extF80_le.c2
-rw-r--r--source/extF80_le_quiet.c2
-rw-r--r--source/extF80_lt.c2
-rw-r--r--source/extF80_lt_quiet.c2
-rw-r--r--source/extF80_mul.c2
-rw-r--r--source/extF80_rem.c8
-rw-r--r--source/extF80_roundToInt.c14
-rw-r--r--source/extF80_sqrt.c2
-rw-r--r--source/extF80_sub.c2
-rw-r--r--source/extF80_to_f128.c2
-rw-r--r--source/extF80_to_f16.c2
-rw-r--r--source/extF80_to_f32.c2
-rw-r--r--source/extF80_to_f64.c2
-rw-r--r--source/extF80_to_i32.c8
-rw-r--r--source/extF80_to_i32_r_minMag.c2
-rw-r--r--source/extF80_to_i64.c9
-rw-r--r--source/extF80_to_i64_r_minMag.c2
-rw-r--r--source/extF80_to_ui32.c8
-rw-r--r--source/extF80_to_ui32_r_minMag.c2
-rw-r--r--source/extF80_to_ui64.c9
-rw-r--r--source/extF80_to_ui64_r_minMag.c2
-rw-r--r--source/f128M_add.c2
-rw-r--r--source/f128M_div.c2
-rw-r--r--source/f128M_eq.c2
-rw-r--r--source/f128M_eq_signaling.c2
-rw-r--r--source/f128M_le.c2
-rw-r--r--source/f128M_le_quiet.c2
-rw-r--r--source/f128M_lt.c2
-rw-r--r--source/f128M_lt_quiet.c2
-rw-r--r--source/f128M_mul.c2
-rw-r--r--source/f128M_mulAdd.c2
-rw-r--r--source/f128M_rem.c2
-rw-r--r--source/f128M_roundToInt.c11
-rw-r--r--source/f128M_sqrt.c2
-rw-r--r--source/f128M_sub.c2
-rw-r--r--source/f128M_to_extF80M.c2
-rw-r--r--source/f128M_to_f16.c2
-rw-r--r--source/f128M_to_f32.c2
-rw-r--r--source/f128M_to_f64.c2
-rw-r--r--source/f128M_to_i32.c8
-rw-r--r--source/f128M_to_i32_r_minMag.c2
-rw-r--r--source/f128M_to_i64.c8
-rw-r--r--source/f128M_to_i64_r_minMag.c2
-rw-r--r--source/f128M_to_ui32.c8
-rw-r--r--source/f128M_to_ui32_r_minMag.c2
-rw-r--r--source/f128M_to_ui64.c8
-rw-r--r--source/f128M_to_ui64_r_minMag.c2
-rw-r--r--source/f128_add.c2
-rw-r--r--source/f128_div.c2
-rw-r--r--source/f128_eq.c2
-rw-r--r--source/f128_eq_signaling.c2
-rw-r--r--source/f128_isSignalingNaN.c2
-rw-r--r--source/f128_le.c2
-rw-r--r--source/f128_le_quiet.c2
-rw-r--r--source/f128_lt.c2
-rw-r--r--source/f128_lt_quiet.c2
-rw-r--r--source/f128_mul.c2
-rw-r--r--source/f128_mulAdd.c2
-rw-r--r--source/f128_rem.c2
-rw-r--r--source/f128_roundToInt.c30
-rw-r--r--source/f128_sqrt.c2
-rw-r--r--source/f128_sub.c2
-rw-r--r--source/f128_to_extF80.c2
-rw-r--r--source/f128_to_f16.c2
-rw-r--r--source/f128_to_f32.c2
-rw-r--r--source/f128_to_f64.c2
-rw-r--r--source/f128_to_i32.c8
-rw-r--r--source/f128_to_i32_r_minMag.c2
-rw-r--r--source/f128_to_i64.c8
-rw-r--r--source/f128_to_i64_r_minMag.c2
-rw-r--r--source/f128_to_ui32.c8
-rw-r--r--source/f128_to_ui32_r_minMag.c2
-rw-r--r--source/f128_to_ui64.c8
-rw-r--r--source/f128_to_ui64_r_minMag.c2
-rw-r--r--source/f16_add.c2
-rw-r--r--source/f16_div.c2
-rw-r--r--source/f16_eq.c2
-rw-r--r--source/f16_eq_signaling.c2
-rw-r--r--source/f16_isSignalingNaN.c2
-rw-r--r--source/f16_le.c2
-rw-r--r--source/f16_le_quiet.c2
-rw-r--r--source/f16_lt.c2
-rw-r--r--source/f16_lt_quiet.c2
-rw-r--r--source/f16_mul.c2
-rw-r--r--source/f16_mulAdd.c2
-rw-r--r--source/f16_rem.c2
-rw-r--r--source/f16_roundToInt.c13
-rw-r--r--source/f16_sqrt.c2
-rw-r--r--source/f16_sub.c2
-rw-r--r--source/f16_to_extF80.c2
-rw-r--r--source/f16_to_extF80M.c2
-rw-r--r--source/f16_to_f128.c2
-rw-r--r--source/f16_to_f128M.c2
-rw-r--r--source/f16_to_f32.c2
-rw-r--r--source/f16_to_f64.c2
-rw-r--r--source/f16_to_i32.c8
-rw-r--r--source/f16_to_i32_r_minMag.c2
-rw-r--r--source/f16_to_i64.c8
-rw-r--r--source/f16_to_i64_r_minMag.c2
-rw-r--r--source/f16_to_ui32.c8
-rw-r--r--source/f16_to_ui32_r_minMag.c2
-rw-r--r--source/f16_to_ui64.c8
-rw-r--r--source/f16_to_ui64_r_minMag.c2
-rw-r--r--source/f32_add.c2
-rw-r--r--source/f32_div.c2
-rw-r--r--source/f32_eq.c2
-rw-r--r--source/f32_eq_signaling.c2
-rw-r--r--source/f32_isSignalingNaN.c2
-rw-r--r--source/f32_le.c2
-rw-r--r--source/f32_le_quiet.c2
-rw-r--r--source/f32_lt.c2
-rw-r--r--source/f32_lt_quiet.c2
-rw-r--r--source/f32_mul.c2
-rw-r--r--source/f32_mulAdd.c2
-rw-r--r--source/f32_rem.c2
-rw-r--r--source/f32_roundToInt.c15
-rw-r--r--source/f32_sqrt.c2
-rw-r--r--source/f32_sub.c2
-rw-r--r--source/f32_to_extF80.c2
-rw-r--r--source/f32_to_extF80M.c2
-rw-r--r--source/f32_to_f128.c2
-rw-r--r--source/f32_to_f128M.c2
-rw-r--r--source/f32_to_f16.c2
-rw-r--r--source/f32_to_f64.c2
-rw-r--r--source/f32_to_i32.c8
-rw-r--r--source/f32_to_i32_r_minMag.c2
-rw-r--r--source/f32_to_i64.c10
-rw-r--r--source/f32_to_i64_r_minMag.c2
-rw-r--r--source/f32_to_ui32.c8
-rw-r--r--source/f32_to_ui32_r_minMag.c2
-rw-r--r--source/f32_to_ui64.c11
-rw-r--r--source/f32_to_ui64_r_minMag.c2
-rw-r--r--source/f64_add.c2
-rw-r--r--source/f64_div.c2
-rw-r--r--source/f64_eq.c2
-rw-r--r--source/f64_eq_signaling.c2
-rw-r--r--source/f64_isSignalingNaN.c2
-rw-r--r--source/f64_le.c2
-rw-r--r--source/f64_le_quiet.c2
-rw-r--r--source/f64_lt.c2
-rw-r--r--source/f64_lt_quiet.c2
-rw-r--r--source/f64_mul.c2
-rw-r--r--source/f64_mulAdd.c2
-rw-r--r--source/f64_rem.c2
-rw-r--r--source/f64_roundToInt.c15
-rw-r--r--source/f64_sqrt.c2
-rw-r--r--source/f64_sub.c2
-rw-r--r--source/f64_to_extF80.c2
-rw-r--r--source/f64_to_extF80M.c2
-rw-r--r--source/f64_to_f128.c2
-rw-r--r--source/f64_to_f128M.c2
-rw-r--r--source/f64_to_f16.c2
-rw-r--r--source/f64_to_f32.c2
-rw-r--r--source/f64_to_i32.c8
-rw-r--r--source/f64_to_i32_r_minMag.c2
-rw-r--r--source/f64_to_i64.c10
-rw-r--r--source/f64_to_i64_r_minMag.c2
-rw-r--r--source/f64_to_ui32.c8
-rw-r--r--source/f64_to_ui32_r_minMag.c2
-rw-r--r--source/f64_to_ui64.c10
-rw-r--r--source/f64_to_ui64_r_minMag.c2
-rw-r--r--source/i32_to_extF80.c2
-rw-r--r--source/i32_to_extF80M.c2
-rw-r--r--source/i32_to_f128.c2
-rw-r--r--source/i32_to_f128M.c2
-rw-r--r--source/i32_to_f16.c2
-rw-r--r--source/i32_to_f32.c2
-rw-r--r--source/i32_to_f64.c2
-rw-r--r--source/i64_to_extF80.c2
-rw-r--r--source/i64_to_extF80M.c2
-rw-r--r--source/i64_to_f128.c2
-rw-r--r--source/i64_to_f128M.c2
-rw-r--r--source/i64_to_f16.c2
-rw-r--r--source/i64_to_f32.c2
-rw-r--r--source/i64_to_f64.c2
-rw-r--r--source/include/internals.h21
-rw-r--r--source/include/primitiveTypes.h2
-rw-r--r--source/include/primitives.h406
-rw-r--r--source/include/softfloat.h12
-rw-r--r--source/include/softfloat_types.h20
-rw-r--r--source/s_add128.c2
-rw-r--r--source/s_add256M.c2
-rw-r--r--source/s_addCarryM.c2
-rw-r--r--source/s_addComplCarryM.c2
-rw-r--r--source/s_addExtF80M.c2
-rw-r--r--source/s_addF128M.c2
-rw-r--r--source/s_addM.c2
-rw-r--r--source/s_addMagsExtF80.c2
-rw-r--r--source/s_addMagsF128.c2
-rw-r--r--source/s_addMagsF16.c11
-rw-r--r--source/s_addMagsF32.c2
-rw-r--r--source/s_addMagsF64.c2
-rw-r--r--source/s_approxRecip32_1.c2
-rw-r--r--source/s_approxRecipSqrt32_1.c2
-rw-r--r--source/s_approxRecipSqrt_1Ks.c2
-rw-r--r--source/s_approxRecip_1Ks.c2
-rw-r--r--source/s_compare128M.c2
-rw-r--r--source/s_compare96M.c2
-rw-r--r--source/s_compareNonnormExtF80M.c2
-rw-r--r--source/s_countLeadingZeros16.c2
-rw-r--r--source/s_countLeadingZeros32.c2
-rw-r--r--source/s_countLeadingZeros64.c2
-rw-r--r--source/s_countLeadingZeros8.c2
-rw-r--r--source/s_eq128.c2
-rw-r--r--source/s_invalidExtF80M.c2
-rw-r--r--source/s_invalidF128M.c2
-rw-r--r--source/s_isNaNF128M.c2
-rw-r--r--source/s_le128.c2
-rw-r--r--source/s_lt128.c2
-rw-r--r--source/s_mul128By32.c2
-rw-r--r--source/s_mul128MTo256M.c2
-rw-r--r--source/s_mul128To256M.c2
-rw-r--r--source/s_mul64ByShifted32To128.c2
-rw-r--r--source/s_mul64To128.c2
-rw-r--r--source/s_mul64To128M.c2
-rw-r--r--source/s_mulAddF128.c2
-rw-r--r--source/s_mulAddF128M.c2
-rw-r--r--source/s_mulAddF16.c2
-rw-r--r--source/s_mulAddF32.c2
-rw-r--r--source/s_mulAddF64.c2
-rw-r--r--source/s_negXM.c2
-rw-r--r--source/s_normExtF80SigM.c2
-rw-r--r--source/s_normRoundPackMToExtF80M.c2
-rw-r--r--source/s_normRoundPackMToF128M.c2
-rw-r--r--source/s_normRoundPackToExtF80.c2
-rw-r--r--source/s_normRoundPackToF128.c2
-rw-r--r--source/s_normRoundPackToF16.c2
-rw-r--r--source/s_normRoundPackToF32.c2
-rw-r--r--source/s_normRoundPackToF64.c2
-rw-r--r--source/s_normSubnormalExtF80Sig.c2
-rw-r--r--source/s_normSubnormalF128Sig.c2
-rw-r--r--source/s_normSubnormalF128SigM.c2
-rw-r--r--source/s_normSubnormalF16Sig.c2
-rw-r--r--source/s_normSubnormalF32Sig.c2
-rw-r--r--source/s_normSubnormalF64Sig.c2
-rw-r--r--source/s_remStepMBy32.c2
-rw-r--r--source/s_roundMToI64.c (renamed from source/s_roundPackMToI64.c)8
-rw-r--r--source/s_roundMToUI64.c (renamed from source/s_roundPackMToUI64.c)8
-rw-r--r--source/s_roundPackMToExtF80M.c57
-rw-r--r--source/s_roundPackMToF128M.c27
-rw-r--r--source/s_roundPackToExtF80.c74
-rw-r--r--source/s_roundPackToF128.c27
-rw-r--r--source/s_roundPackToF16.c30
-rw-r--r--source/s_roundPackToF32.c30
-rw-r--r--source/s_roundPackToF64.c30
-rw-r--r--source/s_roundToI32.c (renamed from source/s_roundPackToI32.c)8
-rw-r--r--source/s_roundToI64.c (renamed from source/s_roundPackToI64.c)8
-rw-r--r--source/s_roundToUI32.c (renamed from source/s_roundPackToUI32.c)8
-rw-r--r--source/s_roundToUI64.c (renamed from source/s_roundPackToUI64.c)8
-rw-r--r--source/s_shiftLeftM.c2
-rw-r--r--source/s_shiftNormSigF128M.c2
-rw-r--r--source/s_shiftRightJam128.c2
-rw-r--r--source/s_shiftRightJam128Extra.c2
-rw-r--r--source/s_shiftRightJam256M.c2
-rw-r--r--source/s_shiftRightJam32.c2
-rw-r--r--source/s_shiftRightJam64.c2
-rw-r--r--source/s_shiftRightJam64Extra.c2
-rw-r--r--source/s_shiftRightJamM.c2
-rw-r--r--source/s_shiftRightM.c2
-rw-r--r--source/s_shortShiftLeft128.c2
-rw-r--r--source/s_shortShiftLeft64To96M.c2
-rw-r--r--source/s_shortShiftLeftM.c2
-rw-r--r--source/s_shortShiftRight128.c2
-rw-r--r--source/s_shortShiftRightExtendM.c2
-rw-r--r--source/s_shortShiftRightJam128.c2
-rw-r--r--source/s_shortShiftRightJam128Extra.c2
-rw-r--r--source/s_shortShiftRightJam64.c2
-rw-r--r--source/s_shortShiftRightJam64Extra.c2
-rw-r--r--source/s_shortShiftRightJamM.c2
-rw-r--r--source/s_shortShiftRightM.c2
-rw-r--r--source/s_sub128.c2
-rw-r--r--source/s_sub1XM.c2
-rw-r--r--source/s_sub256M.c2
-rw-r--r--source/s_subM.c2
-rw-r--r--source/s_subMagsExtF80.c2
-rw-r--r--source/s_subMagsF128.c2
-rw-r--r--source/s_subMagsF16.c11
-rw-r--r--source/s_subMagsF32.c2
-rw-r--r--source/s_subMagsF64.c2
-rw-r--r--source/s_tryPropagateNaNExtF80M.c2
-rw-r--r--source/s_tryPropagateNaNF128M.c2
-rw-r--r--source/softfloat_state.c2
-rw-r--r--source/ui32_to_extF80.c2
-rw-r--r--source/ui32_to_extF80M.c2
-rw-r--r--source/ui32_to_f128.c2
-rw-r--r--source/ui32_to_f128M.c2
-rw-r--r--source/ui32_to_f16.c2
-rw-r--r--source/ui32_to_f32.c2
-rw-r--r--source/ui32_to_f64.c2
-rw-r--r--source/ui64_to_extF80.c2
-rw-r--r--source/ui64_to_extF80M.c2
-rw-r--r--source/ui64_to_f128.c2
-rw-r--r--source/ui64_to_f128M.c2
-rw-r--r--source/ui64_to_f16.c2
-rw-r--r--source/ui64_to_f32.c2
-rw-r--r--source/ui64_to_f64.c2
424 files changed, 1328 insertions, 1013 deletions
diff --git a/COPYING.txt b/COPYING.txt
index d718ab6..b15b11e 100644
--- a/COPYING.txt
+++ b/COPYING.txt
@@ -1,14 +1,14 @@
-License for Berkeley SoftFloat Release 3b
+License for Berkeley SoftFloat Release 3c
John R. Hauser
-2016 July 22
+2017 February 10
-The following applies to the whole of SoftFloat Release 3b as well as to
+The following applies to the whole of SoftFloat Release 3c as well as to
each source file individually.
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University
-of California. All rights reserved.
+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:
diff --git a/README.html b/README.html
index ea7bbd3..e7ef333 100644
--- a/README.html
+++ b/README.html
@@ -7,11 +7,11 @@
<BODY>
-<H1>Package Overview for Berkeley SoftFloat Release 3b</H1>
+<H1>Package Overview for Berkeley SoftFloat Release 3c</H1>
<P>
John R. Hauser<BR>
-2016 July 22<BR>
+2017 February 10<BR>
</P>
<P>
diff --git a/README.md b/README.md
index 246a6e7..60f628b 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,9 @@
-Package Overview for Berkeley SoftFloat Release 3b
+Package Overview for Berkeley SoftFloat Release 3c
==================================================
John R. Hauser<br>
-2016 July 22
+2017 February 10
Berkeley SoftFloat is a software implementation of binary floating-point
@@ -16,9 +16,9 @@ containing the floating-point subroutines.
The SoftFloat package is documented in the following files in the `doc`
subdirectory:
-* [SoftFloat.html](http://www.jhauser.us/arithmetic/SoftFloat-3b/doc/SoftFloat.html) Documentation for using the SoftFloat functions.
-* [SoftFloat-source.html](http://www.jhauser.us/arithmetic/SoftFloat-3b/doc/SoftFloat-source.html) Documentation for building SoftFloat.
-* [SoftFloat-history.html](http://www.jhauser.us/arithmetic/SoftFloat-3b/doc/SoftFloat-history.html) History of the major changes to SoftFloat.
+* [SoftFloat.html](http://www.jhauser.us/arithmetic/SoftFloat-3c/doc/SoftFloat.html) Documentation for using the SoftFloat functions.
+* [SoftFloat-source.html](http://www.jhauser.us/arithmetic/SoftFloat-3c/doc/SoftFloat-source.html) Documentation for building SoftFloat.
+* [SoftFloat-history.html](http://www.jhauser.us/arithmetic/SoftFloat-3c/doc/SoftFloat-history.html) History of the major changes to SoftFloat.
Other files in the package comprise the source code for SoftFloat.
diff --git a/README.txt b/README.txt
index 25fd181..6c39e77 100644
--- a/README.txt
+++ b/README.txt
@@ -1,8 +1,8 @@
-Package Overview for Berkeley SoftFloat Release 3b
+Package Overview for Berkeley SoftFloat Release 3c
John R. Hauser
-2016 July 22
+2017 February 10
Berkeley SoftFloat is a software implementation of binary floating-point
that conforms to the IEEE Standard for Floating-Point Arithmetic. SoftFloat
diff --git a/build/Linux-386-GCC/Makefile b/build/Linux-386-GCC/Makefile
index a1be83e..bb5dc66 100644
--- a/build/Linux-386-GCC/Makefile
+++ b/build/Linux-386-GCC/Makefile
@@ -2,10 +2,10 @@
#=============================================================================
#
# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
-# Package, Release 3b, by John R. Hauser.
+# Package, Release 3c, 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, 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:
@@ -38,7 +38,8 @@ SOURCE_DIR ?= ../../source
SPECIALIZE_TYPE ?= 8086
SOFTFLOAT_OPTS ?= \
- -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 -DSOFTFLOAT_FAST_DIV64TO32
+ -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
+ -DSOFTFLOAT_FAST_DIV64TO32
DELETE = rm -f
C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
@@ -105,10 +106,10 @@ OBJS_SPECIALIZE = \
s_propagateNaNF128M$(OBJ) \
OBJS_OTHERS = \
- s_roundPackToUI32$(OBJ) \
- s_roundPackMToUI64$(OBJ) \
- s_roundPackToI32$(OBJ) \
- s_roundPackMToI64$(OBJ) \
+ s_roundToUI32$(OBJ) \
+ s_roundMToUI64$(OBJ) \
+ s_roundToI32$(OBJ) \
+ s_roundMToI64$(OBJ) \
s_normSubnormalF16Sig$(OBJ) \
s_roundPackToF16$(OBJ) \
s_normRoundPackToF16$(OBJ) \
diff --git a/build/Linux-386-GCC/platform.h b/build/Linux-386-GCC/platform.h
index fadcc25..03a9159 100644
--- a/build/Linux-386-GCC/platform.h
+++ b/build/Linux-386-GCC/platform.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/build/Linux-386-SSE2-GCC/Makefile b/build/Linux-386-SSE2-GCC/Makefile
index 0b9a0aa..326ab8f 100644
--- a/build/Linux-386-SSE2-GCC/Makefile
+++ b/build/Linux-386-SSE2-GCC/Makefile
@@ -2,10 +2,10 @@
#=============================================================================
#
# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
-# Package, Release 3b, by John R. Hauser.
+# Package, Release 3c, 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, 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:
@@ -38,7 +38,8 @@ SOURCE_DIR ?= ../../source
SPECIALIZE_TYPE ?= 8086-SSE
SOFTFLOAT_OPTS ?= \
- -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 -DSOFTFLOAT_FAST_DIV64TO32
+ -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
+ -DSOFTFLOAT_FAST_DIV64TO32
DELETE = rm -f
C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
@@ -105,10 +106,10 @@ OBJS_SPECIALIZE = \
s_propagateNaNF128M$(OBJ) \
OBJS_OTHERS = \
- s_roundPackToUI32$(OBJ) \
- s_roundPackMToUI64$(OBJ) \
- s_roundPackToI32$(OBJ) \
- s_roundPackMToI64$(OBJ) \
+ s_roundToUI32$(OBJ) \
+ s_roundMToUI64$(OBJ) \
+ s_roundToI32$(OBJ) \
+ s_roundMToI64$(OBJ) \
s_normSubnormalF16Sig$(OBJ) \
s_roundPackToF16$(OBJ) \
s_normRoundPackToF16$(OBJ) \
diff --git a/build/Linux-386-SSE2-GCC/platform.h b/build/Linux-386-SSE2-GCC/platform.h
index fadcc25..03a9159 100644
--- a/build/Linux-386-SSE2-GCC/platform.h
+++ b/build/Linux-386-SSE2-GCC/platform.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/build/Linux-x86_64-GCC/Makefile b/build/Linux-x86_64-GCC/Makefile
index 9c9fd7b..49c66ea 100644
--- a/build/Linux-x86_64-GCC/Makefile
+++ b/build/Linux-x86_64-GCC/Makefile
@@ -2,10 +2,10 @@
#=============================================================================
#
# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
-# Package, Release 3b, by John R. Hauser.
+# Package, Release 3c, 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, 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:
@@ -38,7 +38,8 @@ SOURCE_DIR ?= ../../source
SPECIALIZE_TYPE ?= 8086-SSE
SOFTFLOAT_OPTS ?= \
- -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 -DSOFTFLOAT_FAST_DIV64TO32
+ -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
+ -DSOFTFLOAT_FAST_DIV64TO32
DELETE = rm -f
C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
@@ -107,10 +108,10 @@ OBJS_SPECIALIZE = \
s_propagateNaNF128UI$(OBJ) \
OBJS_OTHERS = \
- s_roundPackToUI32$(OBJ) \
- s_roundPackToUI64$(OBJ) \
- s_roundPackToI32$(OBJ) \
- s_roundPackToI64$(OBJ) \
+ s_roundToUI32$(OBJ) \
+ s_roundToUI64$(OBJ) \
+ s_roundToI32$(OBJ) \
+ s_roundToI64$(OBJ) \
s_normSubnormalF16Sig$(OBJ) \
s_roundPackToF16$(OBJ) \
s_normRoundPackToF16$(OBJ) \
diff --git a/build/Linux-x86_64-GCC/platform.h b/build/Linux-x86_64-GCC/platform.h
index fadcc25..03a9159 100644
--- a/build/Linux-x86_64-GCC/platform.h
+++ b/build/Linux-x86_64-GCC/platform.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/build/Win32-MinGW/Makefile b/build/Win32-MinGW/Makefile
index a1be83e..bb5dc66 100644
--- a/build/Win32-MinGW/Makefile
+++ b/build/Win32-MinGW/Makefile
@@ -2,10 +2,10 @@
#=============================================================================
#
# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
-# Package, Release 3b, by John R. Hauser.
+# Package, Release 3c, 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, 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:
@@ -38,7 +38,8 @@ SOURCE_DIR ?= ../../source
SPECIALIZE_TYPE ?= 8086
SOFTFLOAT_OPTS ?= \
- -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 -DSOFTFLOAT_FAST_DIV64TO32
+ -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
+ -DSOFTFLOAT_FAST_DIV64TO32
DELETE = rm -f
C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
@@ -105,10 +106,10 @@ OBJS_SPECIALIZE = \
s_propagateNaNF128M$(OBJ) \
OBJS_OTHERS = \
- s_roundPackToUI32$(OBJ) \
- s_roundPackMToUI64$(OBJ) \
- s_roundPackToI32$(OBJ) \
- s_roundPackMToI64$(OBJ) \
+ s_roundToUI32$(OBJ) \
+ s_roundMToUI64$(OBJ) \
+ s_roundToI32$(OBJ) \
+ s_roundMToI64$(OBJ) \
s_normSubnormalF16Sig$(OBJ) \
s_roundPackToF16$(OBJ) \
s_normRoundPackToF16$(OBJ) \
diff --git a/build/Win32-MinGW/platform.h b/build/Win32-MinGW/platform.h
index fadcc25..03a9159 100644
--- a/build/Win32-MinGW/platform.h
+++ b/build/Win32-MinGW/platform.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/build/Win32-SSE2-MinGW/Makefile b/build/Win32-SSE2-MinGW/Makefile
index 0b9a0aa..326ab8f 100644
--- a/build/Win32-SSE2-MinGW/Makefile
+++ b/build/Win32-SSE2-MinGW/Makefile
@@ -2,10 +2,10 @@
#=============================================================================
#
# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
-# Package, Release 3b, by John R. Hauser.
+# Package, Release 3c, 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, 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:
@@ -38,7 +38,8 @@ SOURCE_DIR ?= ../../source
SPECIALIZE_TYPE ?= 8086-SSE
SOFTFLOAT_OPTS ?= \
- -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 -DSOFTFLOAT_FAST_DIV64TO32
+ -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
+ -DSOFTFLOAT_FAST_DIV64TO32
DELETE = rm -f
C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
@@ -105,10 +106,10 @@ OBJS_SPECIALIZE = \
s_propagateNaNF128M$(OBJ) \
OBJS_OTHERS = \
- s_roundPackToUI32$(OBJ) \
- s_roundPackMToUI64$(OBJ) \
- s_roundPackToI32$(OBJ) \
- s_roundPackMToI64$(OBJ) \
+ s_roundToUI32$(OBJ) \
+ s_roundMToUI64$(OBJ) \
+ s_roundToI32$(OBJ) \
+ s_roundMToI64$(OBJ) \
s_normSubnormalF16Sig$(OBJ) \
s_roundPackToF16$(OBJ) \
s_normRoundPackToF16$(OBJ) \
diff --git a/build/Win32-SSE2-MinGW/platform.h b/build/Win32-SSE2-MinGW/platform.h
index fadcc25..03a9159 100644
--- a/build/Win32-SSE2-MinGW/platform.h
+++ b/build/Win32-SSE2-MinGW/platform.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/build/Win64-MinGW-w64/Makefile b/build/Win64-MinGW-w64/Makefile
index 145c03f..352b7b1 100644
--- a/build/Win64-MinGW-w64/Makefile
+++ b/build/Win64-MinGW-w64/Makefile
@@ -2,10 +2,10 @@
#=============================================================================
#
# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
-# Package, Release 3b, by John R. Hauser.
+# Package, Release 3c, 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, 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:
@@ -38,7 +38,8 @@ SOURCE_DIR ?= ../../source
SPECIALIZE_TYPE ?= 8086-SSE
SOFTFLOAT_OPTS ?= \
- -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 -DSOFTFLOAT_FAST_DIV64TO32
+ -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
+ -DSOFTFLOAT_FAST_DIV64TO32
DELETE = rm -f
C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
@@ -107,10 +108,10 @@ OBJS_SPECIALIZE = \
s_propagateNaNF128UI$(OBJ) \
OBJS_OTHERS = \
- s_roundPackToUI32$(OBJ) \
- s_roundPackToUI64$(OBJ) \
- s_roundPackToI32$(OBJ) \
- s_roundPackToI64$(OBJ) \
+ s_roundToUI32$(OBJ) \
+ s_roundToUI64$(OBJ) \
+ s_roundToI32$(OBJ) \
+ s_roundToI64$(OBJ) \
s_normSubnormalF16Sig$(OBJ) \
s_roundPackToF16$(OBJ) \
s_normRoundPackToF16$(OBJ) \
diff --git a/build/Win64-MinGW-w64/platform.h b/build/Win64-MinGW-w64/platform.h
index fadcc25..03a9159 100644
--- a/build/Win64-MinGW-w64/platform.h
+++ b/build/Win64-MinGW-w64/platform.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/build/template-FAST_INT64/Makefile b/build/template-FAST_INT64/Makefile
index 34673a3..33e6d7b 100644
--- a/build/template-FAST_INT64/Makefile
+++ b/build/template-FAST_INT64/Makefile
@@ -2,10 +2,10 @@
#=============================================================================
#
# This Makefile template is part of the SoftFloat IEEE Floating-Point
-# Arithmetic Package, Release 3b, by John R. Hauser.
+# Arithmetic Package, Release 3c, 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, 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:
@@ -40,7 +40,8 @@
==> SPECIALIZE_TYPE ?= 8086
==> SOFTFLOAT_OPTS ?= \
-==> -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 -DSOFTFLOAT_FAST_DIV64TO32
+==> -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
+==> -DSOFTFLOAT_FAST_DIV64TO32
==> DELETE = rm -f
==> C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
@@ -108,10 +109,10 @@ OBJS_SPECIALIZE = \
s_propagateNaNF128UI$(OBJ) \
OBJS_OTHERS = \
- s_roundPackToUI32$(OBJ) \
- s_roundPackToUI64$(OBJ) \
- s_roundPackToI32$(OBJ) \
- s_roundPackToI64$(OBJ) \
+ s_roundToUI32$(OBJ) \
+ s_roundToUI64$(OBJ) \
+ s_roundToI32$(OBJ) \
+ s_roundToI64$(OBJ) \
s_normSubnormalF16Sig$(OBJ) \
s_roundPackToF16$(OBJ) \
s_normRoundPackToF16$(OBJ) \
diff --git a/build/template-FAST_INT64/platform.h b/build/template-FAST_INT64/platform.h
index 2aef589..450ffd8 100644
--- a/build/template-FAST_INT64/platform.h
+++ b/build/template-FAST_INT64/platform.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header template is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/build/template-not-FAST_INT64/Makefile b/build/template-not-FAST_INT64/Makefile
index 2bdc946..c65cdbc 100644
--- a/build/template-not-FAST_INT64/Makefile
+++ b/build/template-not-FAST_INT64/Makefile
@@ -2,10 +2,10 @@
#=============================================================================
#
# This Makefile template is part of the SoftFloat IEEE Floating-Point
-# Arithmetic Package, Release 3b, by John R. Hauser.
+# Arithmetic Package, Release 3c, 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, 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:
@@ -40,7 +40,8 @@
==> SPECIALIZE_TYPE ?= 8086
==> SOFTFLOAT_OPTS ?= \
-==> -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 -DSOFTFLOAT_FAST_DIV64TO32
+==> -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
+==> -DSOFTFLOAT_FAST_DIV64TO32
==> DELETE = rm -f
==> C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
@@ -105,10 +106,10 @@ OBJS_SPECIALIZE = \
s_propagateNaNF128M$(OBJ) \
OBJS_OTHERS = \
- s_roundPackToUI32$(OBJ) \
- s_roundPackMToUI64$(OBJ) \
- s_roundPackToI32$(OBJ) \
- s_roundPackMToI64$(OBJ) \
+ s_roundToUI32$(OBJ) \
+ s_roundMToUI64$(OBJ) \
+ s_roundToI32$(OBJ) \
+ s_roundMToI64$(OBJ) \
s_normSubnormalF16Sig$(OBJ) \
s_roundPackToF16$(OBJ) \
s_normRoundPackToF16$(OBJ) \
diff --git a/build/template-not-FAST_INT64/platform.h b/build/template-not-FAST_INT64/platform.h
index 2aef589..450ffd8 100644
--- a/build/template-not-FAST_INT64/platform.h
+++ b/build/template-not-FAST_INT64/platform.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header template is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/doc/SoftFloat-history.html b/doc/SoftFloat-history.html
index f5f7c91..515633e 100644
--- a/doc/SoftFloat-history.html
+++ b/doc/SoftFloat-history.html
@@ -7,14 +7,29 @@
<BODY>
-<H1>History of Berkeley SoftFloat, to Release 3b</H1>
+<H1>History of Berkeley SoftFloat, to Release 3c</H1>
<P>
John R. Hauser<BR>
-2016 July 22<BR>
+2017 February 10<BR>
</P>
+<H3>Release 3c (2017 February)</H3>
+
+<UL>
+
+<LI>
+Added optional rounding mode <CODE>odd</CODE> (round to odd, also known as
+<EM>jamming</EM>).
+
+<LI>
+Corrected the documentation concerning non-canonical representations in
+<NOBR>80-bit</NOBR> double-extended-precision.
+
+</UL>
+
+
<H3>Release 3b (2016 July)</H3>
<UL>
diff --git a/doc/SoftFloat-source.html b/doc/SoftFloat-source.html
index b69565f..d94da48 100644
--- a/doc/SoftFloat-source.html
+++ b/doc/SoftFloat-source.html
@@ -7,11 +7,11 @@
<BODY>
-<H1>Berkeley SoftFloat Release 3b: Source Documentation</H1>
+<H1>Berkeley SoftFloat Release 3c: Source Documentation</H1>
<P>
John R. Hauser<BR>
-2016 July 22<BR>
+2017 February 10<BR>
</P>
@@ -69,7 +69,7 @@ SoftFloat has been successfully compiled with the GNU C Compiler
<NOBR>Release 2</NOBR> or earlier.
Changes to the interface of SoftFloat functions are documented in
<A HREF="SoftFloat.html"><NOBR><CODE>SoftFloat.html</CODE></NOBR></A>.
-The current version of SoftFloat is <NOBR>Release 3b</NOBR>.
+The current version of SoftFloat is <NOBR>Release 3c</NOBR>.
</P>
@@ -103,8 +103,8 @@ integer types.
If these headers are not supplied with the C compiler, minimal substitutes must
be provided.
SoftFloat&rsquo;s dependence on these headers is detailed later in
-<NOBR>section 5.1</NOBR>, <I>Standard Headers &lt;stdbool.h&gt; and
-&lt;stdint.h&gt;</I>.
+<NOBR>section 5.1</NOBR>, <I>Standard Headers <CODE>&lt;stdbool.h&gt;</CODE>
+and <CODE>&lt;stdint.h&gt;</CODE></I>.
</P>
@@ -114,7 +114,7 @@ SoftFloat&rsquo;s dependence on these headers is detailed later in
The SoftFloat package was written by me, <NOBR>John R.</NOBR> Hauser.
<NOBR>Release 3</NOBR> of SoftFloat was a completely new implementation
supplanting earlier releases.
-The project to create <NOBR>Release 3</NOBR> (now <NOBR>through 3b</NOBR>) was
+The project to create <NOBR>Release 3</NOBR> (now <NOBR>through 3c</NOBR>) was
done in the employ of the University of California, Berkeley, within the
Department of Electrical Engineering and Computer Sciences, first for the
Parallel Computing Laboratory (Par Lab) and then for the ASPIRE Lab.
@@ -148,13 +148,13 @@ Oracle, and Samsung.
</P>
<P>
-The following applies to the whole of SoftFloat <NOBR>Release 3b</NOBR> as well
+The following applies to the whole of SoftFloat <NOBR>Release 3c</NOBR> as well
as to each source file individually.
</P>
<P>
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California.
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+University of California.
All rights reserved.
</P>
@@ -260,13 +260,13 @@ contain sample files for creating new target directories.
<P>
Ignoring the <CODE>template</CODE> directories, the supplied target directories
are intended to follow a naming system of
-<NOBR><CODE>&lt;execution-environment&gt;-&lt;compiler&gt;</CODE></NOBR>.
+<NOBR><CODE>&lt;<I>execution-environment</I>&gt;-&lt;<I>compiler</I>&gt;</CODE></NOBR>.
For the example targets,
-<NOBR><CODE>&lt;execution-environment&gt;</CODE></NOBR> is
+<NOBR><CODE>&lt;<I>execution-environment</I>&gt;</CODE></NOBR> is
<NOBR><CODE>Linux-386</CODE></NOBR>, <NOBR><CODE>Linux-386-SSE2</CODE></NOBR>,
<NOBR><CODE>Linux-x86_64</CODE></NOBR>, <CODE>Win32</CODE>,
<NOBR><CODE>Win32-SSE2</CODE></NOBR>, or <CODE>Win64</CODE>, and
-<NOBR><CODE>&lt;compiler&gt;</CODE></NOBR> is <CODE>GCC</CODE>,
+<NOBR><CODE>&lt;<I>compiler</I>&gt;</CODE></NOBR> is <CODE>GCC</CODE>,
<CODE>MinGW</CODE>, or <NOBR><CODE>MinGW-w64</CODE></NOBR>.
</P>
@@ -366,10 +366,10 @@ The files in a specialization subdirectory must determine:
<LI>
whether tininess for underflow is detected before or after rounding by default;
<LI>
-what (if anything) special happens when exceptions are raised;
-<LI>
how signaling NaNs are distinguished from quiet NaNs;
<LI>
+what (if anything) special happens when exceptions are raised;
+<LI>
the default generated quiet NaNs;
<LI>
how NaNs are propagated from function inputs to output; and
@@ -405,47 +405,13 @@ needed.
<P>
The SoftFloat source files adapt the floating-point implementation according to
-a few C preprocessor macros:
+several C preprocessor macros:
<BLOCKQUOTE>
<DL>
<DT><CODE>LITTLEENDIAN</CODE>
<DD>
Must be defined for little-endian machines; must not be defined for big-endian
machines.
-<DT><CODE>SOFTFLOAT_FAST_INT64</CODE>
-<DD>
-Can be defined to indicate that the build target&rsquo;s implementation of
-<NOBR>64-bit</NOBR> arithmetic is efficient.
-For newer <NOBR>64-bit</NOBR> processors, this macro should usually be defined.
-For very small microprocessors whose buses and registers are <NOBR>8-bit</NOBR>
-or <NOBR>16-bit</NOBR> in size, this macro should usually not be defined.
-Whether this macro should be defined for a <NOBR>32-bit</NOBR> processor may
-depend on the target machine and the applications that will use SoftFloat.
-<DT><CODE>SOFTFLOAT_FAST_DIV32TO16</CODE>
-<DD>
-Can be defined to indicate that the target&rsquo;s division operator
-<NOBR>in C</NOBR> (written as <CODE>/</CODE>) is reasonably efficient for
-dividing a <NOBR>32-bit</NOBR> unsigned integer by a <NOBR>16-bit</NOBR>
-unsigned integer.
-Setting this macro may affect the performance of function <CODE>f16_div</CODE>.
-<DT><CODE>SOFTFLOAT_FAST_DIV64TO32</CODE>
-<DD>
-Can be defined to indicate that the target&rsquo;s division operator
-<NOBR>in C</NOBR> (written as <CODE>/</CODE>) is reasonably efficient for
-dividing a <NOBR>64-bit</NOBR> unsigned integer by a <NOBR>32-bit</NOBR>
-unsigned integer.
-Setting this macro may affect the performance of division, remainder, and
-square root operations other than <CODE>f16_div</CODE>.
-<DT><CODE>INLINE_LEVEL</CODE>
-<DD>
-Can be defined to an integer to determine the degree of inlining requested of
-the compiler.
-Larger numbers request that more inlining be done.
-If this macro is not defined or is defined to a value less <NOBR>than 1</NOBR>
-(zero or negative), no inlining is requested.
-The maximum effective value is no higher <NOBR>than 5</NOBR>.
-Defining this macro to a value greater than 5 is the same as defining it
-<NOBR>to 5</NOBR>.
<DT><CODE>INLINE</CODE>
<DD>
Specifies the sequence of tokens used to indicate that a C function should be
@@ -473,13 +439,55 @@ default to being ordinary global variables.
Depending on the compiler, possible valid definitions of this macro include
<CODE>_Thread_local</CODE> and <CODE>__thread</CODE>.
</DL>
+<DL>
+<DT><CODE>SOFTFLOAT_ROUND_ODD</CODE>
+<DD>
+Can be defined to enable support for optional rounding mode
+<CODE>softfloat_round_odd</CODE>.
+</DL>
+<DL>
+<DT><CODE>INLINE_LEVEL</CODE>
+<DD>
+Can be defined to an integer to determine the degree of inlining requested of
+the compiler.
+Larger numbers request that more inlining be done.
+If this macro is not defined or is defined to a value less <NOBR>than 1</NOBR>
+(zero or negative), no inlining is requested.
+The maximum effective value is no higher <NOBR>than 5</NOBR>.
+Defining this macro to a value greater than 5 is the same as defining it
+<NOBR>to 5</NOBR>.
+<DT><CODE>SOFTFLOAT_FAST_INT64</CODE>
+<DD>
+Can be defined to indicate that the build target&rsquo;s implementation of
+<NOBR>64-bit</NOBR> arithmetic is efficient.
+For newer <NOBR>64-bit</NOBR> processors, this macro should usually be defined.
+For very small microprocessors whose buses and registers are <NOBR>8-bit</NOBR>
+or <NOBR>16-bit</NOBR> in size, this macro should usually not be defined.
+Whether this macro should be defined for a <NOBR>32-bit</NOBR> processor may
+depend on the target machine and the applications that will use SoftFloat.
+<DT><CODE>SOFTFLOAT_FAST_DIV32TO16</CODE>
+<DD>
+Can be defined to indicate that the target&rsquo;s division operator
+<NOBR>in C</NOBR> (written as <CODE>/</CODE>) is reasonably efficient for
+dividing a <NOBR>32-bit</NOBR> unsigned integer by a <NOBR>16-bit</NOBR>
+unsigned integer.
+Setting this macro may affect the performance of function <CODE>f16_div</CODE>.
+<DT><CODE>SOFTFLOAT_FAST_DIV64TO32</CODE>
+<DD>
+Can be defined to indicate that the target&rsquo;s division operator
+<NOBR>in C</NOBR> (written as <CODE>/</CODE>) is reasonably efficient for
+dividing a <NOBR>64-bit</NOBR> unsigned integer by a <NOBR>32-bit</NOBR>
+unsigned integer.
+Setting this macro may affect the performance of division, remainder, and
+square root operations other than <CODE>f16_div</CODE>.
+</DL>
</BLOCKQUOTE>
</P>
<P>
-Following the usual custom <NOBR>for C</NOBR>, for the first four macros (all
-except <CODE>INLINE_LEVEL</CODE>, <CODE>INLINE</CODE>, and
-<CODE>THREAD_LOCAL</CODE>), the content of any definition is irrelevant;
+Following the usual custom <NOBR>for C</NOBR>, for most of these macros (all
+except <CODE>INLINE</CODE>, <CODE>THREAD_LOCAL</CODE>, and
+<CODE>INLINE_LEVEL</CODE>), the content of any definition is irrelevant;
what matters is a macro&rsquo;s effect on <CODE>#ifdef</CODE> directives.
</P>
@@ -488,8 +496,8 @@ It is recommended that any definitions of macros <CODE>LITTLEENDIAN</CODE>,
<CODE>INLINE</CODE>, and <CODE>THREAD_LOCAL</CODE> be made in a build
target&rsquo;s <CODE>platform.h</CODE> header file, because these macros are
expected to be determined inflexibly by the target machine and compiler.
-The other three macros control optimization and might be better located in the
-target&rsquo;s Makefile (or its equivalent).
+The other five macros select options and control optimization, and thus might
+be better located in the target&rsquo;s Makefile (or its equivalent).
</P>
@@ -552,13 +560,14 @@ When a desired replacement implementation is a function, not a macro, it is
sufficient for <CODE>platform.h</CODE> to include the line
<BLOCKQUOTE>
<PRE>
-#define &lt;function-name&gt; &lt;function-name&gt;
+#define &lt;<I>function-name</I>&gt; &lt;<I>function-name</I>&gt;
</PRE>
</BLOCKQUOTE>
-where <NOBR><CODE>&lt;function-name&gt;</CODE></NOBR> is the name of the
+where <NOBR><CODE>&lt;<I>function-name</I>&gt;</CODE></NOBR> is the name of the
+function.
+This technically defines <NOBR><CODE>&lt;<I>function-name</I>&gt;</CODE></NOBR>
+as a macro, but one that resolves to the same name, which may then be a
function.
-This technically defines <NOBR><CODE>&lt;function-name&gt;</CODE></NOBR> as a
-macro, but one that resolves to the same name, which may then be a function.
(A preprocessor that conforms to the C Standard must limit recursive macro
expansion from being applied more than once.)
</P>
@@ -583,8 +592,8 @@ measures the speed of SoftFloat&rsquo;s floating-point functions.
Header file <CODE>softfloat.h</CODE> defines the SoftFloat interface as seen by
clients.
If the SoftFloat library will be made a common library for programs on a
-particular system, the supplied <CODE>softfloat.h</CODE> has a couple of
-deficiencies for this purpose:
+system, the supplied <CODE>softfloat.h</CODE> has a couple of deficiencies for
+this purpose:
<UL>
<LI>
As supplied, <CODE>softfloat.h</CODE> depends on another header,
diff --git a/doc/SoftFloat.html b/doc/SoftFloat.html
index b0ae66f..af7292c 100644
--- a/doc/SoftFloat.html
+++ b/doc/SoftFloat.html
@@ -7,11 +7,11 @@
<BODY>
-<H1>Berkeley SoftFloat Release 3b: Library Interface</H1>
+<H1>Berkeley SoftFloat Release 3c: Library Interface</H1>
<P>
John R. Hauser<BR>
-2016 July 22<BR>
+2017 February 10<BR>
</P>
@@ -106,12 +106,19 @@ Information about the standard is available elsewhere.
</P>
<P>
-The current version of SoftFloat is <NOBR>Release 3b</NOBR>.
-This release differs from the previous <NOBR>Release 3a</NOBR> mainly in the
-addition of support for the <NOBR>16-bit</NOBR> half-precision format.
-Depending on the specific port of SoftFloat, this release may also change the
-result obtained when conversion of a floating-point number to an integer format
-overflows or is otherwise invalid.
+The current version of SoftFloat is <NOBR>Release 3c</NOBR>.
+The only significant difference between this release and the previous
+<NOBR>Release 3b</NOBR> is optional support for a rarely used rounding mode,
+<I>round to odd</I>, also known as <I>jamming</I>.
+</P>
+
+<P>
+<NOBR>Release 3b</NOBR> differed from the earlier <NOBR>Release 3a</NOBR>
+mainly in the addition of support for the <NOBR>16-bit</NOBR> half-precision
+format.
+Depending on the specific port of SoftFloat, <NOBR>Release 3b</NOBR> may also
+have changed the result obtained when conversion of a floating-point number to
+an integer format overflows or is otherwise invalid.
For more about the evolution of SoftFloat releases, see
<A HREF="SoftFloat-history.html"><NOBR><CODE>SoftFloat-history.html</CODE></NOBR></A>.
</P>
@@ -150,7 +157,7 @@ strictly required.
<P>
Most operations not required by the original 1985 version of the IEEE
Floating-Point Standard but added in the 2008 version are not yet supported in
-SoftFloat <NOBR>Release 3b</NOBR>.
+SoftFloat <NOBR>Release 3c</NOBR>.
</P>
@@ -160,7 +167,7 @@ SoftFloat <NOBR>Release 3b</NOBR>.
The SoftFloat package was written by me, <NOBR>John R.</NOBR> Hauser.
<NOBR>Release 3</NOBR> of SoftFloat was a completely new implementation
supplanting earlier releases.
-The project to create <NOBR>Release 3</NOBR> (now <NOBR>through 3b</NOBR>) was
+The project to create <NOBR>Release 3</NOBR> (now <NOBR>through 3c</NOBR>) was
done in the employ of the University of California, Berkeley, within the
Department of Electrical Engineering and Computer Sciences, first for the
Parallel Computing Laboratory (Par Lab) and then for the ASPIRE Lab.
@@ -194,13 +201,13 @@ Oracle, and Samsung.
</P>
<P>
-The following applies to the whole of SoftFloat <NOBR>Release 3b</NOBR> as well
+The following applies to the whole of SoftFloat <NOBR>Release 3c</NOBR> as well
as to each source file individually.
</P>
<P>
-Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
-California.
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+University of California.
All rights reserved.
</P>
@@ -376,7 +383,7 @@ comparisons between two values in the same floating-point format.
<P>
The following operations required by the 2008 IEEE Floating-Point Standard are
-not supported in SoftFloat <NOBR>Release 3b</NOBR>:
+not supported in SoftFloat <NOBR>Release 3c</NOBR>:
<UL>
<LI>
<B>nextUp</B>, <B>nextDown</B>, <B>minNum</B>, <B>maxNum</B>, <B>minNumMag</B>,
@@ -399,27 +406,35 @@ all &ldquo;non-computational&rdquo; operations other than <B>isSignaling</B>
<P>
Because the <NOBR>80-bit</NOBR> double-extended-precision format,
<CODE>extFloat80_t</CODE>, stores an explicit leading significand bit, many
-floating-point numbers are encodable in this type in equivalent normalized and
-denormalized forms.
-Zeros and values in the subnormal range have each only a single possible
-encoding, for which the leading significand bit must <NOBR>be 0</NOBR>.
-For other finite values (outside the subnormal range), a unique normalized
-representation, with leading significand bit set <NOBR>to 1</NOBR>, always
-exists, and is considered the <I>canonical</I> representation of the value.
-Any equivalent denormalized representations (having leading significand bit
-<NOBR>of 0</NOBR>) are <I>non-canonical</I>.
-Similarly, the leading significand bit is expected to <NOBR>be 1</NOBR> for
-infinities and NaNs as well;
-any infinity or NaN with a leading significand bit <NOBR>of 0</NOBR> is again
+finite floating-point numbers are encodable in this type in multiple equivalent
+forms.
+Of these multiple encodings, there is always a unique one with the least
+encoded exponent value, and this encoding is considered the <I>canonical</I>
+representation of the floating-point number.
+Any other equivalent representations (having a higher encoded exponent value)
+are <I>non-canonical</I>.
+For a value in the subnormal range (including zero), the canonical
+representation always has an encoded exponent of zero and a leading significand
+bit <NOBR>of 0</NOBR>.
+For finite values outside the subnormal range, the canonical representation
+always has an encoded exponent that is nonzero and a leading significand bit
+<NOBR>of 1</NOBR>.
+</P>
+
+<P>
+For an infinity or NaN, the leading significand bit is similarly expected to
+<NOBR>be 1</NOBR>.
+An infinity or NaN with a leading significand bit <NOBR>of 0</NOBR> is again
considered non-canonical.
-In short, for an <CODE>extFloat80_t</CODE> representation to be canonical, the
-leading significand bit must <NOBR>be 1</NOBR> unless it is required to
-<NOBR>be 0</NOBR> because the encoded value is zero or a subnormal.
+Hence, altogether, to be canonical, a value of type <CODE>extFloat80_t</CODE>
+must have a leading significand bit <NOBR>of 1</NOBR>, unless the value is
+subnormal or zero, in which case the leading significand bit and the encoded
+exponent must both be zero.
</P>
<P>
-Functions are not guaranteed to operate as expected when inputs of type
-<CODE>extFloat80_t</CODE> are non-canonical.
+SoftFloat's functions are not guaranteed to operate as expected when inputs of
+type <CODE>extFloat80_t</CODE> are non-canonical.
Assuming all of a function&rsquo;s <CODE>extFloat80_t</CODE> inputs (if any)
are canonical, function outputs of type <CODE>extFloat80_t</CODE> will always
be canonical.
@@ -522,6 +537,10 @@ own separate copies of the variables.
<P>
All five rounding modes defined by the 2008 IEEE Floating-Point Standard are
implemented for all operations that require rounding.
+Some ports of SoftFloat may also implement the <I>round-to-odd</I> mode.
+</P>
+
+<P>
The rounding mode is selected by the global variable
<BLOCKQUOTE>
<CODE>uint_fast8_t softfloat_roundingMode;</CODE>
@@ -549,12 +568,29 @@ This variable may be set to one of the values
<TD><CODE>softfloat_round_max</CODE></TD>
<TD>round to maximum (up)</TD>
</TR>
+<TR>
+<TD><CODE>softfloat_round_odd</CODE></TD>
+<TD>round to odd (jamming), if supported by the SoftFloat port</TD>
+</TR>
</TABLE>
</BLOCKQUOTE>
Variable <CODE>softfloat_roundingMode</CODE> is initialized to
<CODE>softfloat_round_near_even</CODE>.
</P>
+<P>
+If supported, mode <CODE>softfloat_round_odd</CODE> first rounds a
+floating-point result to minimum magnitude, the same as
+<CODE>softfloat_round_minMag</CODE>, and then, if the result is inexact, the
+least-significant bit of the result is set <NOBR>to 1</NOBR>.
+This rounding mode is also known as <EM>jamming</EM>.
+As a special case, when <CODE>softfloat_round_odd</CODE> is the rounding mode
+for a function that rounds to an integer value (either conversion to an integer
+format or a &lsquo;<CODE>roundToInt</CODE>&rsquo; function), rounding is the
+same as <CODE>softfloat_round_minMag</CODE>, without any change to the
+least-significant integer bit.
+</P>
+
<H3>6.2. Underflow Detection</H3>
<P>
@@ -569,7 +605,7 @@ which can be set to either
<CODE>softfloat_tininess_beforeRounding</CODE><BR>
<CODE>softfloat_tininess_afterRounding</CODE>
</BLOCKQUOTE>
-Detecting tininess after rounding is better because it results in fewer
+Detecting tininess after rounding is usually better because it results in fewer
spurious underflow signals.
The other option is provided for compatibility with some systems.
Like most systems (and as required by the newer 2008 IEEE Standard), SoftFloat
@@ -765,10 +801,19 @@ int_fast32_t
f128M_to_i32( const float128_t *<I>aPtr</I>, uint_fast8_t <I>roundingMode</I>, bool <I>exact</I> );
</PRE>
</BLOCKQUOTE>
+</P>
+
+<P>
The <CODE><I>roundingMode</I></CODE> argument specifies the rounding mode for
the conversion.
The variable that usually indicates rounding mode,
<CODE>softfloat_roundingMode</CODE>, is ignored.
+If <CODE><I>roundingMode</I></CODE> is <CODE>softfloat_round_odd</CODE>,
+rounding is to minimum magnitude, the same as
+<CODE>softfloat_round_minMag</CODE>, rather than to an odd integer.
+</P>
+
+<P>
Argument <CODE><I>exact</I></CODE> determines whether the <I>inexact</I>
exception flag is raised if the conversion is not exact.
If <CODE><I>exact</I></CODE> is <CODE>true</CODE>, the <I>inexact</I> flag may
@@ -1020,18 +1065,27 @@ void
);
</PRE>
</BLOCKQUOTE>
+When floating-point values are passed indirectly through pointers,
+<CODE><I>aPtr</I></CODE> points to the input operand and
+<CODE><I>destPtr</I></CODE> points to the location where the result is stored.
+</P>
+
+<P>
The <CODE><I>roundingMode</I></CODE> argument specifies the rounding mode to
apply.
The variable that usually indicates rounding mode,
<CODE>softfloat_roundingMode</CODE>, is ignored.
+If <CODE><I>roundingMode</I></CODE> is <CODE>softfloat_round_odd</CODE>,
+rounding is to minimum magnitude, the same as
+<CODE>softfloat_round_minMag</CODE>, rather than to an odd integer value.
+</P>
+
+<P>
Argument <CODE><I>exact</I></CODE> determines whether the <I>inexact</I>
exception flag is raised if the conversion is not exact.
If <CODE><I>exact</I></CODE> is <CODE>true</CODE>, the <I>inexact</I> flag may
be raised;
otherwise, it will not be, even if the conversion is inexact.
-When floating-point values are passed indirectly through pointers,
-<CODE><I>aPtr</I></CODE> points to the input operand and
-<CODE><I>destPtr</I></CODE> points to the location where the result is stored.
</P>
<H3>8.8. Comparison Functions</H3>
@@ -1366,16 +1420,15 @@ speed.)
<P>
<LI>
-Functions have been added for converting between the floating-point types and
-unsigned integers.
-<NOBR>Release 2</NOBR> supported only signed integers, not unsigned.
+As of <NOBR>Release 3b</NOBR>, <NOBR>16-bit</NOBR> half-precision,
+<CODE>float16_t</CODE>, is supported.
</P>
<P>
<LI>
-A new, fifth rounding mode, <CODE>softfloat_round_near_maxMag</CODE> (round to
-nearest, with ties to maximum magnitude, away from zero) is now supported for
-all cases involving rounding.
+Functions have been added for converting between the floating-point types and
+unsigned integers.
+<NOBR>Release 2</NOBR> supported only signed integers, not unsigned.
</P>
<P>
@@ -1387,8 +1440,11 @@ except <NOBR>80-bit</NOBR> double-extended-precision,
<P>
<LI>
-As of <NOBR>Release 3b</NOBR>, <NOBR>16-bit</NOBR> half-precision,
-<CODE>float16_t</CODE>, is supported.
+New rounding modes are supported:
+<CODE>softfloat_round_near_maxMag</CODE> (round to nearest, with ties to
+maximum magnitude, away from zero), and, as of <NOBR>Release 3c</NOBR>,
+optional <CODE>softfloat_round_odd</CODE> (round to odd, also known as
+jamming).
</P>
</UL>
diff --git a/source/8086-SSE/extF80M_isSignalingNaN.c b/source/8086-SSE/extF80M_isSignalingNaN.c
index be3dc40..fe27646 100644
--- a/source/8086-SSE/extF80M_isSignalingNaN.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/f128M_isSignalingNaN.c b/source/8086-SSE/f128M_isSignalingNaN.c
index 6560615..9ea95bf 100644
--- a/source/8086-SSE/f128M_isSignalingNaN.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_commonNaNToExtF80M.c b/source/8086-SSE/s_commonNaNToExtF80M.c
index 42e6adc..9c44713 100644
--- a/source/8086-SSE/s_commonNaNToExtF80M.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_commonNaNToExtF80UI.c b/source/8086-SSE/s_commonNaNToExtF80UI.c
index d88c3bf..4c8523d 100644
--- a/source/8086-SSE/s_commonNaNToExtF80UI.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_commonNaNToF128M.c b/source/8086-SSE/s_commonNaNToF128M.c
index ec0301e..10b9b55 100644
--- a/source/8086-SSE/s_commonNaNToF128M.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_commonNaNToF128UI.c b/source/8086-SSE/s_commonNaNToF128UI.c
index 256b77b..8e2277a 100644
--- a/source/8086-SSE/s_commonNaNToF128UI.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_commonNaNToF16UI.c b/source/8086-SSE/s_commonNaNToF16UI.c
index 15e6dae..dd31223 100644
--- a/source/8086-SSE/s_commonNaNToF16UI.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/8086-SSE/s_commonNaNToF32UI.c b/source/8086-SSE/s_commonNaNToF32UI.c
index 39c8522..050f420 100644
--- a/source/8086-SSE/s_commonNaNToF32UI.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_commonNaNToF64UI.c b/source/8086-SSE/s_commonNaNToF64UI.c
index bdfb0d1..f918861 100644
--- a/source/8086-SSE/s_commonNaNToF64UI.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_extF80MToCommonNaN.c b/source/8086-SSE/s_extF80MToCommonNaN.c
index 476f17e..7bbbc35 100644
--- a/source/8086-SSE/s_extF80MToCommonNaN.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_extF80UIToCommonNaN.c b/source/8086-SSE/s_extF80UIToCommonNaN.c
index dd63151..6cb0aad 100644
--- a/source/8086-SSE/s_extF80UIToCommonNaN.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_f128MToCommonNaN.c b/source/8086-SSE/s_f128MToCommonNaN.c
index f080fd8..9992fbe 100644
--- a/source/8086-SSE/s_f128MToCommonNaN.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_f128UIToCommonNaN.c b/source/8086-SSE/s_f128UIToCommonNaN.c
index 9c2ec2f..cde4482 100644
--- a/source/8086-SSE/s_f128UIToCommonNaN.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_f16UIToCommonNaN.c b/source/8086-SSE/s_f16UIToCommonNaN.c
index 0b5273c..7486582 100644
--- a/source/8086-SSE/s_f16UIToCommonNaN.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/8086-SSE/s_f32UIToCommonNaN.c b/source/8086-SSE/s_f32UIToCommonNaN.c
index 0a14729..8c42690 100644
--- a/source/8086-SSE/s_f32UIToCommonNaN.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_f64UIToCommonNaN.c b/source/8086-SSE/s_f64UIToCommonNaN.c
index bb9c2fa..488e66f 100644
--- a/source/8086-SSE/s_f64UIToCommonNaN.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_propagateNaNExtF80M.c b/source/8086-SSE/s_propagateNaNExtF80M.c
index 80b5897..9289288 100644
--- a/source/8086-SSE/s_propagateNaNExtF80M.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_propagateNaNExtF80UI.c b/source/8086-SSE/s_propagateNaNExtF80UI.c
index 3fc1d7a..0df020e 100644
--- a/source/8086-SSE/s_propagateNaNExtF80UI.c
+++ b/source/8086-SSE/s_propagateNaNExtF80UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_propagateNaNF128M.c b/source/8086-SSE/s_propagateNaNF128M.c
index cf0cf69..1720270 100644
--- a/source/8086-SSE/s_propagateNaNF128M.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_propagateNaNF128UI.c b/source/8086-SSE/s_propagateNaNF128UI.c
index d650365..5d39933 100644
--- a/source/8086-SSE/s_propagateNaNF128UI.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_propagateNaNF16UI.c b/source/8086-SSE/s_propagateNaNF16UI.c
index 7f88498..d16ae7d 100644
--- a/source/8086-SSE/s_propagateNaNF16UI.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/8086-SSE/s_propagateNaNF32UI.c b/source/8086-SSE/s_propagateNaNF32UI.c
index 19c8654..8087f9c 100644
--- a/source/8086-SSE/s_propagateNaNF32UI.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/s_propagateNaNF64UI.c b/source/8086-SSE/s_propagateNaNF64UI.c
index 9186fdb..0e3fa17 100644
--- a/source/8086-SSE/s_propagateNaNF64UI.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/softfloat_raiseFlags.c b/source/8086-SSE/softfloat_raiseFlags.c
index 5ba1502..a4b3c13 100644
--- a/source/8086-SSE/softfloat_raiseFlags.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086-SSE/specialize.h b/source/8086-SSE/specialize.h
index d2c6b22..7aee969 100644
--- a/source/8086-SSE/specialize.h
+++ b/source/8086-SSE/specialize.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/8086/extF80M_isSignalingNaN.c b/source/8086/extF80M_isSignalingNaN.c
index be3dc40..fe27646 100644
--- a/source/8086/extF80M_isSignalingNaN.c
+++ b/source/8086/extF80M_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/f128M_isSignalingNaN.c b/source/8086/f128M_isSignalingNaN.c
index 6560615..9ea95bf 100644
--- a/source/8086/f128M_isSignalingNaN.c
+++ b/source/8086/f128M_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_commonNaNToExtF80M.c b/source/8086/s_commonNaNToExtF80M.c
index 42e6adc..9c44713 100644
--- a/source/8086/s_commonNaNToExtF80M.c
+++ b/source/8086/s_commonNaNToExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_commonNaNToExtF80UI.c b/source/8086/s_commonNaNToExtF80UI.c
index d88c3bf..4c8523d 100644
--- a/source/8086/s_commonNaNToExtF80UI.c
+++ b/source/8086/s_commonNaNToExtF80UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_commonNaNToF128M.c b/source/8086/s_commonNaNToF128M.c
index ec0301e..10b9b55 100644
--- a/source/8086/s_commonNaNToF128M.c
+++ b/source/8086/s_commonNaNToF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_commonNaNToF128UI.c b/source/8086/s_commonNaNToF128UI.c
index 256b77b..8e2277a 100644
--- a/source/8086/s_commonNaNToF128UI.c
+++ b/source/8086/s_commonNaNToF128UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_commonNaNToF16UI.c b/source/8086/s_commonNaNToF16UI.c
index 15e6dae..dd31223 100644
--- a/source/8086/s_commonNaNToF16UI.c
+++ b/source/8086/s_commonNaNToF16UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/8086/s_commonNaNToF32UI.c b/source/8086/s_commonNaNToF32UI.c
index 39c8522..050f420 100644
--- a/source/8086/s_commonNaNToF32UI.c
+++ b/source/8086/s_commonNaNToF32UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_commonNaNToF64UI.c b/source/8086/s_commonNaNToF64UI.c
index bdfb0d1..f918861 100644
--- a/source/8086/s_commonNaNToF64UI.c
+++ b/source/8086/s_commonNaNToF64UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_extF80MToCommonNaN.c b/source/8086/s_extF80MToCommonNaN.c
index 476f17e..7bbbc35 100644
--- a/source/8086/s_extF80MToCommonNaN.c
+++ b/source/8086/s_extF80MToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_extF80UIToCommonNaN.c b/source/8086/s_extF80UIToCommonNaN.c
index dd63151..6cb0aad 100644
--- a/source/8086/s_extF80UIToCommonNaN.c
+++ b/source/8086/s_extF80UIToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_f128MToCommonNaN.c b/source/8086/s_f128MToCommonNaN.c
index f080fd8..9992fbe 100644
--- a/source/8086/s_f128MToCommonNaN.c
+++ b/source/8086/s_f128MToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_f128UIToCommonNaN.c b/source/8086/s_f128UIToCommonNaN.c
index 9c2ec2f..cde4482 100644
--- a/source/8086/s_f128UIToCommonNaN.c
+++ b/source/8086/s_f128UIToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_f16UIToCommonNaN.c b/source/8086/s_f16UIToCommonNaN.c
index 0b5273c..7486582 100644
--- a/source/8086/s_f16UIToCommonNaN.c
+++ b/source/8086/s_f16UIToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/8086/s_f32UIToCommonNaN.c b/source/8086/s_f32UIToCommonNaN.c
index 0a14729..8c42690 100644
--- a/source/8086/s_f32UIToCommonNaN.c
+++ b/source/8086/s_f32UIToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_f64UIToCommonNaN.c b/source/8086/s_f64UIToCommonNaN.c
index bb9c2fa..488e66f 100644
--- a/source/8086/s_f64UIToCommonNaN.c
+++ b/source/8086/s_f64UIToCommonNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_propagateNaNExtF80M.c b/source/8086/s_propagateNaNExtF80M.c
index 80b5897..9289288 100644
--- a/source/8086/s_propagateNaNExtF80M.c
+++ b/source/8086/s_propagateNaNExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_propagateNaNExtF80UI.c b/source/8086/s_propagateNaNExtF80UI.c
index 3fc1d7a..0df020e 100644
--- a/source/8086/s_propagateNaNExtF80UI.c
+++ b/source/8086/s_propagateNaNExtF80UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_propagateNaNF128M.c b/source/8086/s_propagateNaNF128M.c
index a2e869b..c681472 100644
--- a/source/8086/s_propagateNaNF128M.c
+++ b/source/8086/s_propagateNaNF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_propagateNaNF128UI.c b/source/8086/s_propagateNaNF128UI.c
index c2117af..7c62c7b 100644
--- a/source/8086/s_propagateNaNF128UI.c
+++ b/source/8086/s_propagateNaNF128UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_propagateNaNF16UI.c b/source/8086/s_propagateNaNF16UI.c
index e18085d..75c8f65 100644
--- a/source/8086/s_propagateNaNF16UI.c
+++ b/source/8086/s_propagateNaNF16UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/8086/s_propagateNaNF32UI.c b/source/8086/s_propagateNaNF32UI.c
index e99c449..514d40a 100644
--- a/source/8086/s_propagateNaNF32UI.c
+++ b/source/8086/s_propagateNaNF32UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/s_propagateNaNF64UI.c b/source/8086/s_propagateNaNF64UI.c
index 2e6c2ac..1d57ec4 100644
--- a/source/8086/s_propagateNaNF64UI.c
+++ b/source/8086/s_propagateNaNF64UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/softfloat_raiseFlags.c b/source/8086/softfloat_raiseFlags.c
index 5ba1502..a4b3c13 100644
--- a/source/8086/softfloat_raiseFlags.c
+++ b/source/8086/softfloat_raiseFlags.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/8086/specialize.h b/source/8086/specialize.h
index d2c6b22..7aee969 100644
--- a/source/8086/specialize.h
+++ b/source/8086/specialize.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/RISCV/extF80M_isSignalingNaN.c b/source/RISCV/extF80M_isSignalingNaN.c
index be3dc40..fe27646 100644
--- a/source/RISCV/extF80M_isSignalingNaN.c
+++ b/source/RISCV/extF80M_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/RISCV/f128M_isSignalingNaN.c b/source/RISCV/f128M_isSignalingNaN.c
index 6560615..9ea95bf 100644
--- a/source/RISCV/f128M_isSignalingNaN.c
+++ b/source/RISCV/f128M_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/RISCV/s_commonNaNToExtF80M.c b/source/RISCV/s_commonNaNToExtF80M.c
index 1327180..b59643a 100644
--- a/source/RISCV/s_commonNaNToExtF80M.c
+++ b/source/RISCV/s_commonNaNToExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/RISCV/s_commonNaNToExtF80UI.c b/source/RISCV/s_commonNaNToExtF80UI.c
index a26f078..e825076 100644
--- a/source/RISCV/s_commonNaNToExtF80UI.c
+++ b/source/RISCV/s_commonNaNToExtF80UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/RISCV/s_commonNaNToF128M.c b/source/RISCV/s_commonNaNToF128M.c
index 65a44ac..1af0b12 100644
--- a/source/RISCV/s_commonNaNToF128M.c
+++ b/source/RISCV/s_commonNaNToF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/RISCV/s_commonNaNToF128UI.c b/source/RISCV/s_commonNaNToF128UI.c
index 0b1f65c..678a147 100644
--- a/source/RISCV/s_commonNaNToF128UI.c
+++ b/source/RISCV/s_commonNaNToF128UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/RISCV/s_commonNaNToF16UI.c b/source/RISCV/s_commonNaNToF16UI.c
index 8b13789..861b269 100644
--- a/source/RISCV/s_commonNaNToF16UI.c
+++ b/source/RISCV/s_commonNaNToF16UI.c
@@ -1 +1,5 @@
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/source/RISCV/s_commonNaNToF32UI.c b/source/RISCV/s_commonNaNToF32UI.c
index 8b13789..861b269 100644
--- a/source/RISCV/s_commonNaNToF32UI.c
+++ b/source/RISCV/s_commonNaNToF32UI.c
@@ -1 +1,5 @@
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/source/RISCV/s_commonNaNToF64UI.c b/source/RISCV/s_commonNaNToF64UI.c
index 8b13789..861b269 100644
--- a/source/RISCV/s_commonNaNToF64UI.c
+++ b/source/RISCV/s_commonNaNToF64UI.c
@@ -1 +1,5 @@
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/source/RISCV/s_extF80MToCommonNaN.c b/source/RISCV/s_extF80MToCommonNaN.c
index 8b13789..861b269 100644
--- a/source/RISCV/s_extF80MToCommonNaN.c
+++ b/source/RISCV/s_extF80MToCommonNaN.c
@@ -1 +1,5 @@
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/source/RISCV/s_extF80UIToCommonNaN.c b/source/RISCV/s_extF80UIToCommonNaN.c
index 8b13789..861b269 100644
--- a/source/RISCV/s_extF80UIToCommonNaN.c
+++ b/source/RISCV/s_extF80UIToCommonNaN.c
@@ -1 +1,5 @@
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/source/RISCV/s_f128MToCommonNaN.c b/source/RISCV/s_f128MToCommonNaN.c
index 8b13789..861b269 100644
--- a/source/RISCV/s_f128MToCommonNaN.c
+++ b/source/RISCV/s_f128MToCommonNaN.c
@@ -1 +1,5 @@
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/source/RISCV/s_f128UIToCommonNaN.c b/source/RISCV/s_f128UIToCommonNaN.c
index 8b13789..861b269 100644
--- a/source/RISCV/s_f128UIToCommonNaN.c
+++ b/source/RISCV/s_f128UIToCommonNaN.c
@@ -1 +1,5 @@
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/source/RISCV/s_f16UIToCommonNaN.c b/source/RISCV/s_f16UIToCommonNaN.c
index 8b13789..861b269 100644
--- a/source/RISCV/s_f16UIToCommonNaN.c
+++ b/source/RISCV/s_f16UIToCommonNaN.c
@@ -1 +1,5 @@
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/source/RISCV/s_f32UIToCommonNaN.c b/source/RISCV/s_f32UIToCommonNaN.c
index 8b13789..861b269 100644
--- a/source/RISCV/s_f32UIToCommonNaN.c
+++ b/source/RISCV/s_f32UIToCommonNaN.c
@@ -1 +1,5 @@
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/source/RISCV/s_f64UIToCommonNaN.c b/source/RISCV/s_f64UIToCommonNaN.c
index 8b13789..861b269 100644
--- a/source/RISCV/s_f64UIToCommonNaN.c
+++ b/source/RISCV/s_f64UIToCommonNaN.c
@@ -1 +1,5 @@
+/*----------------------------------------------------------------------------
+| This file intentionally contains no code.
+*----------------------------------------------------------------------------*/
+
diff --git a/source/RISCV/s_propagateNaNExtF80M.c b/source/RISCV/s_propagateNaNExtF80M.c
index 75fff79..b4a672d 100644
--- a/source/RISCV/s_propagateNaNExtF80M.c
+++ b/source/RISCV/s_propagateNaNExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/RISCV/s_propagateNaNExtF80UI.c b/source/RISCV/s_propagateNaNExtF80UI.c
index 03a74eb..1223ba2 100644
--- a/source/RISCV/s_propagateNaNExtF80UI.c
+++ b/source/RISCV/s_propagateNaNExtF80UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/RISCV/s_propagateNaNF128M.c b/source/RISCV/s_propagateNaNF128M.c
index 88460b7..1da4fb2 100644
--- a/source/RISCV/s_propagateNaNF128M.c
+++ b/source/RISCV/s_propagateNaNF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/RISCV/s_propagateNaNF128UI.c b/source/RISCV/s_propagateNaNF128UI.c
index 7b65f35..dfd4203 100644
--- a/source/RISCV/s_propagateNaNF128UI.c
+++ b/source/RISCV/s_propagateNaNF128UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/RISCV/s_propagateNaNF16UI.c b/source/RISCV/s_propagateNaNF16UI.c
index 761f8d1..dd84448 100644
--- a/source/RISCV/s_propagateNaNF16UI.c
+++ b/source/RISCV/s_propagateNaNF16UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/RISCV/s_propagateNaNF32UI.c b/source/RISCV/s_propagateNaNF32UI.c
index 32870e1..077c7d9 100644
--- a/source/RISCV/s_propagateNaNF32UI.c
+++ b/source/RISCV/s_propagateNaNF32UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/RISCV/s_propagateNaNF64UI.c b/source/RISCV/s_propagateNaNF64UI.c
index 1f64042..6ed0ea7 100644
--- a/source/RISCV/s_propagateNaNF64UI.c
+++ b/source/RISCV/s_propagateNaNF64UI.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/RISCV/softfloat_raiseFlags.c b/source/RISCV/softfloat_raiseFlags.c
index 5ba1502..a4b3c13 100644
--- a/source/RISCV/softfloat_raiseFlags.c
+++ b/source/RISCV/softfloat_raiseFlags.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/RISCV/specialize.h b/source/RISCV/specialize.h
index 35f7c5e..5972b4a 100644
--- a/source/RISCV/specialize.h
+++ b/source/RISCV/specialize.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80M_add.c b/source/extF80M_add.c
index 83c9e44..d11e746 100644
--- a/source/extF80M_add.c
+++ b/source/extF80M_add.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80M_div.c b/source/extF80M_div.c
index 4781389..c2433f7 100644
--- a/source/extF80M_div.c
+++ b/source/extF80M_div.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80M_eq.c b/source/extF80M_eq.c
index 8d6cd0d..0ebcc6f 100644
--- a/source/extF80M_eq.c
+++ b/source/extF80M_eq.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80M_eq_signaling.c b/source/extF80M_eq_signaling.c
index 3cb6019..8589d22 100644
--- a/source/extF80M_eq_signaling.c
+++ b/source/extF80M_eq_signaling.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80M_le.c b/source/extF80M_le.c
index b68b402..2b2521e 100644
--- a/source/extF80M_le.c
+++ b/source/extF80M_le.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80M_le_quiet.c b/source/extF80M_le_quiet.c
index 1871e76..5bd4241 100644
--- a/source/extF80M_le_quiet.c
+++ b/source/extF80M_le_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80M_lt.c b/source/extF80M_lt.c
index 2a0d485..68b93a7 100644
--- a/source/extF80M_lt.c
+++ b/source/extF80M_lt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80M_lt_quiet.c b/source/extF80M_lt_quiet.c
index 6cca1a2..44c9f52 100644
--- a/source/extF80M_lt_quiet.c
+++ b/source/extF80M_lt_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80M_mul.c b/source/extF80M_mul.c
index 0c2a126..991146d 100644
--- a/source/extF80M_mul.c
+++ b/source/extF80M_mul.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80M_rem.c b/source/extF80M_rem.c
index 9e2a28f..3626950 100644
--- a/source/extF80M_rem.c
+++ b/source/extF80M_rem.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80M_roundToInt.c b/source/extF80M_roundToInt.c
index 809be28..9691bd6 100644
--- a/source/extF80M_roundToInt.c
+++ b/source/extF80M_roundToInt.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+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:
@@ -145,10 +145,10 @@ void
} else if ( roundingMode == softfloat_round_near_even ) {
sigZ += lastBitMask>>1;
if ( ! (sigZ & roundBitsMask) ) sigZ &= ~lastBitMask;
- } else if ( roundingMode != softfloat_round_minMag ) {
- if ( (signUI64 != 0) ^ (roundingMode == softfloat_round_max) ) {
- sigZ += roundBitsMask;
- }
+ } else if (
+ roundingMode == (signUI64 ? softfloat_round_min : softfloat_round_max)
+ ) {
+ sigZ += roundBitsMask;
}
sigZ &= ~roundBitsMask;
if ( ! sigZ ) {
diff --git a/source/extF80M_sqrt.c b/source/extF80M_sqrt.c
index 24d162d..0b8ca67 100644
--- a/source/extF80M_sqrt.c
+++ b/source/extF80M_sqrt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80M_sub.c b/source/extF80M_sub.c
index d3f20e9..9a567df 100644
--- a/source/extF80M_sub.c
+++ b/source/extF80M_sub.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80M_to_f128M.c b/source/extF80M_to_f128M.c
index 7644a94..a592329 100644
--- a/source/extF80M_to_f128M.c
+++ b/source/extF80M_to_f128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80M_to_f16.c b/source/extF80M_to_f16.c
index 9d465eb..458b15e 100644
--- a/source/extF80M_to_f16.c
+++ b/source/extF80M_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80M_to_f32.c b/source/extF80M_to_f32.c
index 3030ff7..47ef413 100644
--- a/source/extF80M_to_f32.c
+++ b/source/extF80M_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80M_to_f64.c b/source/extF80M_to_f64.c
index 5fea6fa..ec45c01 100644
--- a/source/extF80M_to_f64.c
+++ b/source/extF80M_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80M_to_i32.c b/source/extF80M_to_i32.c
index dda0fe3..3959cc3 100644
--- a/source/extF80M_to_i32.c
+++ b/source/extF80M_to_i32.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -85,7 +85,7 @@ int_fast32_t
} else {
sig = softfloat_shiftRightJam64( sig, shiftDist );
}
- return softfloat_roundPackToI32( sign, sig, roundingMode, exact );
+ return softfloat_roundToI32( sign, sig, roundingMode, exact );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
invalid:
diff --git a/source/extF80M_to_i32_r_minMag.c b/source/extF80M_to_i32_r_minMag.c
index ed1c61a..7f310d1 100644
--- a/source/extF80M_to_i32_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80M_to_i64.c b/source/extF80M_to_i64.c
index 02c6bf7..54d243b 100644
--- a/source/extF80M_to_i64.c
+++ b/source/extF80M_to_i64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -89,7 +89,7 @@ int_fast64_t
extSig[indexWord( 3, 1 )] = sig;
extSig[indexWord( 3, 0 )] = 0;
if ( shiftDist ) softfloat_shiftRightJam96M( extSig, shiftDist, extSig );
- return softfloat_roundPackMToI64( sign, extSig, roundingMode, exact );
+ return softfloat_roundMToI64( sign, extSig, roundingMode, exact );
}
diff --git a/source/extF80M_to_i64_r_minMag.c b/source/extF80M_to_i64_r_minMag.c
index 8205724..bfe28a5 100644
--- a/source/extF80M_to_i64_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80M_to_ui32.c b/source/extF80M_to_ui32.c
index 38365cd..e77f72c 100644
--- a/source/extF80M_to_ui32.c
+++ b/source/extF80M_to_ui32.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -85,7 +85,7 @@ uint_fast32_t
} else {
sig = softfloat_shiftRightJam64( sig, shiftDist );
}
- return softfloat_roundPackToUI32( sign, sig, roundingMode, exact );
+ return softfloat_roundToUI32( sign, sig, roundingMode, exact );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
invalid:
diff --git a/source/extF80M_to_ui32_r_minMag.c b/source/extF80M_to_ui32_r_minMag.c
index 920fb7d..8f8a319 100644
--- a/source/extF80M_to_ui32_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80M_to_ui64.c b/source/extF80M_to_ui64.c
index 19462ec..3cc917a 100644
--- a/source/extF80M_to_ui64.c
+++ b/source/extF80M_to_ui64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -89,7 +89,7 @@ uint_fast64_t
extSig[indexWord( 3, 1 )] = sig;
extSig[indexWord( 3, 0 )] = 0;
if ( shiftDist ) softfloat_shiftRightJam96M( extSig, shiftDist, extSig );
- return softfloat_roundPackMToUI64( sign, extSig, roundingMode, exact );
+ return softfloat_roundMToUI64( sign, extSig, roundingMode, exact );
}
diff --git a/source/extF80M_to_ui64_r_minMag.c b/source/extF80M_to_ui64_r_minMag.c
index 737b563..8c8728e 100644
--- a/source/extF80M_to_ui64_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80_add.c b/source/extF80_add.c
index 230b216..b668be7 100644
--- a/source/extF80_add.c
+++ b/source/extF80_add.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80_div.c b/source/extF80_div.c
index 7e0fd79..850d9b1 100644
--- a/source/extF80_div.c
+++ b/source/extF80_div.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80_eq.c b/source/extF80_eq.c
index c23b699..2b9d521 100644
--- a/source/extF80_eq.c
+++ b/source/extF80_eq.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80_eq_signaling.c b/source/extF80_eq_signaling.c
index 75ac44f..b6c1de0 100644
--- a/source/extF80_eq_signaling.c
+++ b/source/extF80_eq_signaling.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80_isSignalingNaN.c b/source/extF80_isSignalingNaN.c
index 86b3a06..0db4801 100644
--- a/source/extF80_isSignalingNaN.c
+++ b/source/extF80_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80_le.c b/source/extF80_le.c
index aa0cbd2..aa6d09c 100644
--- a/source/extF80_le.c
+++ b/source/extF80_le.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80_le_quiet.c b/source/extF80_le_quiet.c
index 9a41c3c..9c2f35e 100644
--- a/source/extF80_le_quiet.c
+++ b/source/extF80_le_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80_lt.c b/source/extF80_lt.c
index 082fb69..ac08266 100644
--- a/source/extF80_lt.c
+++ b/source/extF80_lt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80_lt_quiet.c b/source/extF80_lt_quiet.c
index 4e68b32..838cca8 100644
--- a/source/extF80_lt_quiet.c
+++ b/source/extF80_lt_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80_mul.c b/source/extF80_mul.c
index 8391694..88a0767 100644
--- a/source/extF80_mul.c
+++ b/source/extF80_mul.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80_rem.c b/source/extF80_rem.c
index e210d74..5f53ee5 100644
--- a/source/extF80_rem.c
+++ b/source/extF80_rem.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -192,7 +192,7 @@ extFloat80_t extF80_rem( extFloat80_t a, extFloat80_t b )
}
return
softfloat_normRoundPackToExtF80(
- signRem, expB + 32, rem.v64, rem.v0, 80 );
+ signRem, rem.v64 | rem.v0 ? expB + 32 : 0, rem.v64, rem.v0, 80 );
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
propagateNaN:
diff --git a/source/extF80_roundToInt.c b/source/extF80_roundToInt.c
index 8bc1561..4959e7c 100644
--- a/source/extF80_roundToInt.c
+++ b/source/extF80_roundToInt.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+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:
@@ -125,10 +125,10 @@ extFloat80_t
} else if ( roundingMode == softfloat_round_near_even ) {
sigZ += lastBitMask>>1;
if ( ! (sigZ & roundBitsMask) ) sigZ &= ~lastBitMask;
- } else if ( roundingMode != softfloat_round_minMag ) {
- if ( (signUI64 != 0) ^ (roundingMode == softfloat_round_max) ) {
- sigZ += roundBitsMask;
- }
+ } else if (
+ roundingMode == (signUI64 ? softfloat_round_min : softfloat_round_max)
+ ) {
+ sigZ += roundBitsMask;
}
sigZ &= ~roundBitsMask;
if ( ! sigZ ) {
diff --git a/source/extF80_sqrt.c b/source/extF80_sqrt.c
index 901c86f..d120125 100644
--- a/source/extF80_sqrt.c
+++ b/source/extF80_sqrt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80_sub.c b/source/extF80_sub.c
index 318902c..9f12dc1 100644
--- a/source/extF80_sub.c
+++ b/source/extF80_sub.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80_to_f128.c b/source/extF80_to_f128.c
index 5b27428..9d15e92 100644
--- a/source/extF80_to_f128.c
+++ b/source/extF80_to_f128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/extF80_to_f16.c b/source/extF80_to_f16.c
index 488e9d5..b83a475 100644
--- a/source/extF80_to_f16.c
+++ b/source/extF80_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80_to_f32.c b/source/extF80_to_f32.c
index 19547de..ed59ff2 100644
--- a/source/extF80_to_f32.c
+++ b/source/extF80_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80_to_f64.c b/source/extF80_to_f64.c
index 74710d0..67db388 100644
--- a/source/extF80_to_f64.c
+++ b/source/extF80_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80_to_i32.c b/source/extF80_to_i32.c
index 59347b9..9fc0e8c 100644
--- a/source/extF80_to_i32.c
+++ b/source/extF80_to_i32.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -77,7 +77,7 @@ int_fast32_t
shiftDist = 0x4032 - exp;
if ( shiftDist <= 0 ) shiftDist = 1;
sig = softfloat_shiftRightJam64( sig, shiftDist );
- return softfloat_roundPackToI32( sign, sig, roundingMode, exact );
+ return softfloat_roundToI32( sign, sig, roundingMode, exact );
}
diff --git a/source/extF80_to_i32_r_minMag.c b/source/extF80_to_i32_r_minMag.c
index 1c0c634..62626b1 100644
--- a/source/extF80_to_i32_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80_to_i64.c b/source/extF80_to_i64.c
index 48379b0..b02cdf9 100644
--- a/source/extF80_to_i64.c
+++ b/source/extF80_to_i64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -83,8 +83,7 @@ int_fast64_t
sig = sig64Extra.v;
sigExtra = sig64Extra.extra;
}
- return
- softfloat_roundPackToI64( sign, sig, sigExtra, roundingMode, exact );
+ return softfloat_roundToI64( sign, sig, sigExtra, roundingMode, exact );
}
diff --git a/source/extF80_to_i64_r_minMag.c b/source/extF80_to_i64_r_minMag.c
index 96f1bd6..b87ada8 100644
--- a/source/extF80_to_i64_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80_to_ui32.c b/source/extF80_to_ui32.c
index 863623f..a3f8c83 100644
--- a/source/extF80_to_ui32.c
+++ b/source/extF80_to_ui32.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -77,7 +77,7 @@ uint_fast32_t
shiftDist = 0x4032 - exp;
if ( shiftDist <= 0 ) shiftDist = 1;
sig = softfloat_shiftRightJam64( sig, shiftDist );
- return softfloat_roundPackToUI32( sign, sig, roundingMode, exact );
+ return softfloat_roundToUI32( sign, sig, roundingMode, exact );
}
diff --git a/source/extF80_to_ui32_r_minMag.c b/source/extF80_to_ui32_r_minMag.c
index ffbe12b..7b485f4 100644
--- a/source/extF80_to_ui32_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/extF80_to_ui64.c b/source/extF80_to_ui64.c
index 2dbcd0f..ed72e1d 100644
--- a/source/extF80_to_ui64.c
+++ b/source/extF80_to_ui64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -78,8 +78,7 @@ uint_fast64_t
sig = sig64Extra.v;
sigExtra = sig64Extra.extra;
}
- return
- softfloat_roundPackToUI64( sign, sig, sigExtra, roundingMode, exact );
+ return softfloat_roundToUI64( sign, sig, sigExtra, roundingMode, exact );
}
diff --git a/source/extF80_to_ui64_r_minMag.c b/source/extF80_to_ui64_r_minMag.c
index b661b7a..c379869 100644
--- a/source/extF80_to_ui64_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128M_add.c b/source/f128M_add.c
index a54ddb8..c98a862 100644
--- a/source/f128M_add.c
+++ b/source/f128M_add.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128M_div.c b/source/f128M_div.c
index f04d035..ee069c9 100644
--- a/source/f128M_div.c
+++ b/source/f128M_div.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128M_eq.c b/source/f128M_eq.c
index 9499845..5267961 100644
--- a/source/f128M_eq.c
+++ b/source/f128M_eq.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128M_eq_signaling.c b/source/f128M_eq_signaling.c
index 56b4556..96a9302 100644
--- a/source/f128M_eq_signaling.c
+++ b/source/f128M_eq_signaling.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128M_le.c b/source/f128M_le.c
index c54f7d1..90da53d 100644
--- a/source/f128M_le.c
+++ b/source/f128M_le.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128M_le_quiet.c b/source/f128M_le_quiet.c
index 1718d28..1c86f18 100644
--- a/source/f128M_le_quiet.c
+++ b/source/f128M_le_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128M_lt.c b/source/f128M_lt.c
index 9df9cce..49eee8b 100644
--- a/source/f128M_lt.c
+++ b/source/f128M_lt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128M_lt_quiet.c b/source/f128M_lt_quiet.c
index d8ca5e2..54361a4 100644
--- a/source/f128M_lt_quiet.c
+++ b/source/f128M_lt_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128M_mul.c b/source/f128M_mul.c
index 5563fdf..26a372a 100644
--- a/source/f128M_mul.c
+++ b/source/f128M_mul.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128M_mulAdd.c b/source/f128M_mulAdd.c
index c0b7b7e..3e19495 100644
--- a/source/f128M_mulAdd.c
+++ b/source/f128M_mulAdd.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128M_rem.c b/source/f128M_rem.c
index a576a92..0f03f6d 100644
--- a/source/f128M_rem.c
+++ b/source/f128M_rem.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128M_roundToInt.c b/source/f128M_roundToInt.c
index 8cdb8b1..de1a27a 100644
--- a/source/f128M_roundToInt.c
+++ b/source/f128M_roundToInt.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+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:
@@ -180,8 +180,9 @@ void
wordZ = wordA;
carry = 0;
if (
- (roundingMode != softfloat_round_minMag)
- && (signF128UI96( ui96 ) ^ (roundingMode == softfloat_round_max))
+ roundingMode
+ == (signF128UI96( ui96 ) ? softfloat_round_min
+ : softfloat_round_max)
) {
if ( extra || (wordA & extrasMask) ) {
wordZ += bit;
diff --git a/source/f128M_sqrt.c b/source/f128M_sqrt.c
index d52b6c5..ba0dcbf 100644
--- a/source/f128M_sqrt.c
+++ b/source/f128M_sqrt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128M_sub.c b/source/f128M_sub.c
index 192a987..ea8395d 100644
--- a/source/f128M_sub.c
+++ b/source/f128M_sub.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128M_to_extF80M.c b/source/f128M_to_extF80M.c
index b842956..8d81ff2 100644
--- a/source/f128M_to_extF80M.c
+++ b/source/f128M_to_extF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128M_to_f16.c b/source/f128M_to_f16.c
index a974141..0943787 100644
--- a/source/f128M_to_f16.c
+++ b/source/f128M_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128M_to_f32.c b/source/f128M_to_f32.c
index 292ba2b..7b47813 100644
--- a/source/f128M_to_f32.c
+++ b/source/f128M_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128M_to_f64.c b/source/f128M_to_f64.c
index f5c60d4..3ae9b0a 100644
--- a/source/f128M_to_f64.c
+++ b/source/f128M_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128M_to_i32.c b/source/f128M_to_i32.c
index 2ff0a53..97ad5cd 100644
--- a/source/f128M_to_i32.c
+++ b/source/f128M_to_i32.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -90,7 +90,7 @@ int_fast32_t
if ( exp ) sig64 |= UINT64_C( 0x0001000000000000 );
shiftDist = 0x4023 - exp;
if ( 0 < shiftDist ) sig64 = softfloat_shiftRightJam64( sig64, shiftDist );
- return softfloat_roundPackToI32( sign, sig64, roundingMode, exact );
+ return softfloat_roundToI32( sign, sig64, roundingMode, exact );
}
diff --git a/source/f128M_to_i32_r_minMag.c b/source/f128M_to_i32_r_minMag.c
index 6c95a8e..fe4c149 100644
--- a/source/f128M_to_i32_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128M_to_i64.c b/source/f128M_to_i64.c
index 481deed..ff05aaf 100644
--- a/source/f128M_to_i64.c
+++ b/source/f128M_to_i64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -93,7 +93,7 @@ int_fast64_t
sig[indexWord( 4, 0 )] = aWPtr[indexWord( 4, 0 )];
softfloat_shiftRightJam128M( sig, shiftDist, sig );
return
- softfloat_roundPackMToI64(
+ softfloat_roundMToI64(
sign, sig + indexMultiwordLo( 4, 3 ), roundingMode, exact );
}
diff --git a/source/f128M_to_i64_r_minMag.c b/source/f128M_to_i64_r_minMag.c
index 479b54f..07485b5 100644
--- a/source/f128M_to_i64_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128M_to_ui32.c b/source/f128M_to_ui32.c
index 802e147..f7383a7 100644
--- a/source/f128M_to_ui32.c
+++ b/source/f128M_to_ui32.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -90,7 +90,7 @@ uint_fast32_t
if ( exp ) sig64 |= UINT64_C( 0x0001000000000000 );
shiftDist = 0x4023 - exp;
if ( 0 < shiftDist ) sig64 = softfloat_shiftRightJam64( sig64, shiftDist );
- return softfloat_roundPackToUI32( sign, sig64, roundingMode, exact );
+ return softfloat_roundToUI32( sign, sig64, roundingMode, exact );
}
diff --git a/source/f128M_to_ui32_r_minMag.c b/source/f128M_to_ui32_r_minMag.c
index b669337..9f89f16 100644
--- a/source/f128M_to_ui32_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128M_to_ui64.c b/source/f128M_to_ui64.c
index e771f60..b5700b4 100644
--- a/source/f128M_to_ui64.c
+++ b/source/f128M_to_ui64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -93,7 +93,7 @@ uint_fast64_t
sig[indexWord( 4, 0 )] = aWPtr[indexWord( 4, 0 )];
softfloat_shiftRightJam128M( sig, shiftDist, sig );
return
- softfloat_roundPackMToUI64(
+ softfloat_roundMToUI64(
sign, sig + indexMultiwordLo( 4, 3 ), roundingMode, exact );
}
diff --git a/source/f128M_to_ui64_r_minMag.c b/source/f128M_to_ui64_r_minMag.c
index 891f8b9..9e38604 100644
--- a/source/f128M_to_ui64_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128_add.c b/source/f128_add.c
index f1e8fd9..2b4fd70 100644
--- a/source/f128_add.c
+++ b/source/f128_add.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128_div.c b/source/f128_div.c
index a6cf7c4..e12db17 100644
--- a/source/f128_div.c
+++ b/source/f128_div.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128_eq.c b/source/f128_eq.c
index 5c326b7..c160a8f 100644
--- a/source/f128_eq.c
+++ b/source/f128_eq.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128_eq_signaling.c b/source/f128_eq_signaling.c
index 332011d..d0f774a 100644
--- a/source/f128_eq_signaling.c
+++ b/source/f128_eq_signaling.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128_isSignalingNaN.c b/source/f128_isSignalingNaN.c
index 74932ee..b3edc19 100644
--- a/source/f128_isSignalingNaN.c
+++ b/source/f128_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128_le.c b/source/f128_le.c
index 3bda15c..2e24e04 100644
--- a/source/f128_le.c
+++ b/source/f128_le.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128_le_quiet.c b/source/f128_le_quiet.c
index 8990018..d5bda56 100644
--- a/source/f128_le_quiet.c
+++ b/source/f128_le_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128_lt.c b/source/f128_lt.c
index e20fc7b..503a502 100644
--- a/source/f128_lt.c
+++ b/source/f128_lt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128_lt_quiet.c b/source/f128_lt_quiet.c
index 97c760e..73d81ba 100644
--- a/source/f128_lt_quiet.c
+++ b/source/f128_lt_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128_mul.c b/source/f128_mul.c
index 0168964..a2c443d 100644
--- a/source/f128_mul.c
+++ b/source/f128_mul.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128_mulAdd.c b/source/f128_mulAdd.c
index 11e6ed2..2069a2f 100644
--- a/source/f128_mulAdd.c
+++ b/source/f128_mulAdd.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128_rem.c b/source/f128_rem.c
index 6a50199..281cace 100644
--- a/source/f128_rem.c
+++ b/source/f128_rem.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128_roundToInt.c b/source/f128_roundToInt.c
index 45f633d..4f18ffb 100644
--- a/source/f128_roundToInt.c
+++ b/source/f128_roundToInt.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+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:
@@ -94,12 +94,12 @@ float128_t
uiZ.v0 &= ~lastBitMask;
}
}
- } else if ( roundingMode != softfloat_round_minMag ) {
- if (
- signF128UI64( uiZ.v64 ) ^ (roundingMode == softfloat_round_max)
- ) {
- uiZ = softfloat_add128( uiZ.v64, uiZ.v0, 0, roundBitsMask );
- }
+ } else if (
+ roundingMode
+ == (signF128UI64( uiZ.v64 ) ? softfloat_round_min
+ : softfloat_round_max)
+ ) {
+ uiZ = softfloat_add128( uiZ.v64, uiZ.v0, 0, roundBitsMask );
}
uiZ.v0 &= ~roundBitsMask;
} else {
@@ -140,12 +140,12 @@ float128_t
if ( ! ((uiZ.v64 & roundBitsMask) | uiA0) ) {
uiZ.v64 &= ~lastBitMask;
}
- } else if ( roundingMode != softfloat_round_minMag ) {
- if (
- signF128UI64( uiZ.v64 ) ^ (roundingMode == softfloat_round_max)
- ) {
- uiZ.v64 = (uiZ.v64 | (uiA0 != 0)) + roundBitsMask;
- }
+ } else if (
+ roundingMode
+ == (signF128UI64( uiZ.v64 ) ? softfloat_round_min
+ : softfloat_round_max)
+ ) {
+ uiZ.v64 = (uiZ.v64 | (uiA0 != 0)) + roundBitsMask;
}
uiZ.v64 &= ~roundBitsMask;
}
diff --git a/source/f128_sqrt.c b/source/f128_sqrt.c
index 304bbc7..6f42c62 100644
--- a/source/f128_sqrt.c
+++ b/source/f128_sqrt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128_sub.c b/source/f128_sub.c
index d0a3368..2e82fd4 100644
--- a/source/f128_sub.c
+++ b/source/f128_sub.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f128_to_extF80.c b/source/f128_to_extF80.c
index bfbb580..9d27cfb 100644
--- a/source/f128_to_extF80.c
+++ b/source/f128_to_extF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128_to_f16.c b/source/f128_to_f16.c
index cf80b9f..fea87bf 100644
--- a/source/f128_to_f16.c
+++ b/source/f128_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128_to_f32.c b/source/f128_to_f32.c
index d435b59..78d1495 100644
--- a/source/f128_to_f32.c
+++ b/source/f128_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128_to_f64.c b/source/f128_to_f64.c
index a324690..7f1a6ee 100644
--- a/source/f128_to_f64.c
+++ b/source/f128_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128_to_i32.c b/source/f128_to_i32.c
index c75a3b3..24944ec 100644
--- a/source/f128_to_i32.c
+++ b/source/f128_to_i32.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -79,7 +79,7 @@ int_fast32_t f128_to_i32( float128_t a, uint_fast8_t roundingMode, bool exact )
sig64 |= (sig0 != 0);
shiftDist = 0x4023 - exp;
if ( 0 < shiftDist ) sig64 = softfloat_shiftRightJam64( sig64, shiftDist );
- return softfloat_roundPackToI32( sign, sig64, roundingMode, exact );
+ return softfloat_roundToI32( sign, sig64, roundingMode, exact );
}
diff --git a/source/f128_to_i32_r_minMag.c b/source/f128_to_i32_r_minMag.c
index f5f6eca..15a3ee2 100644
--- a/source/f128_to_i32_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128_to_i64.c b/source/f128_to_i64.c
index 57a92e0..ef0dca9 100644
--- a/source/f128_to_i64.c
+++ b/source/f128_to_i64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -89,7 +89,7 @@ int_fast64_t f128_to_i64( float128_t a, uint_fast8_t roundingMode, bool exact )
sig64 = sigExtra.v;
sig0 = sigExtra.extra;
}
- return softfloat_roundPackToI64( sign, sig64, sig0, roundingMode, exact );
+ return softfloat_roundToI64( sign, sig64, sig0, roundingMode, exact );
}
diff --git a/source/f128_to_i64_r_minMag.c b/source/f128_to_i64_r_minMag.c
index f873ec5..2aa95d2 100644
--- a/source/f128_to_i64_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128_to_ui32.c b/source/f128_to_ui32.c
index 37990fd..9920ea7 100644
--- a/source/f128_to_ui32.c
+++ b/source/f128_to_ui32.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -80,7 +80,7 @@ uint_fast32_t
if ( 0 < shiftDist ) {
sig64 = softfloat_shiftRightJam64( sig64, shiftDist );
}
- return softfloat_roundPackToUI32( sign, sig64, roundingMode, exact );
+ return softfloat_roundToUI32( sign, sig64, roundingMode, exact );
}
diff --git a/source/f128_to_ui32_r_minMag.c b/source/f128_to_ui32_r_minMag.c
index 759c836..2fd70db 100644
--- a/source/f128_to_ui32_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f128_to_ui64.c b/source/f128_to_ui64.c
index a660e7b..a075463 100644
--- a/source/f128_to_ui64.c
+++ b/source/f128_to_ui64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -90,7 +90,7 @@ uint_fast64_t
sig64 = sigExtra.v;
sig0 = sigExtra.extra;
}
- return softfloat_roundPackToUI64( sign, sig64, sig0, roundingMode, exact );
+ return softfloat_roundToUI64( sign, sig64, sig0, roundingMode, exact );
}
diff --git a/source/f128_to_ui64_r_minMag.c b/source/f128_to_ui64_r_minMag.c
index 19a6812..0ba88f9 100644
--- a/source/f128_to_ui64_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_add.c b/source/f16_add.c
index 9e64384..b2bdb84 100644
--- a/source/f16_add.c
+++ b/source/f16_add.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_div.c b/source/f16_div.c
index b81457d..34ee619 100644
--- a/source/f16_div.c
+++ b/source/f16_div.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_eq.c b/source/f16_eq.c
index c5cb784..361397e 100644
--- a/source/f16_eq.c
+++ b/source/f16_eq.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_eq_signaling.c b/source/f16_eq_signaling.c
index aa9d383..dec143c 100644
--- a/source/f16_eq_signaling.c
+++ b/source/f16_eq_signaling.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_isSignalingNaN.c b/source/f16_isSignalingNaN.c
index cc32693..16e9278 100644
--- a/source/f16_isSignalingNaN.c
+++ b/source/f16_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_le.c b/source/f16_le.c
index 277d6ed..ff9bfab 100644
--- a/source/f16_le.c
+++ b/source/f16_le.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_le_quiet.c b/source/f16_le_quiet.c
index a4e6369..881c5f4 100644
--- a/source/f16_le_quiet.c
+++ b/source/f16_le_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_lt.c b/source/f16_lt.c
index 64b9701..6dad4d2 100644
--- a/source/f16_lt.c
+++ b/source/f16_lt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_lt_quiet.c b/source/f16_lt_quiet.c
index d006a90..af9f519 100644
--- a/source/f16_lt_quiet.c
+++ b/source/f16_lt_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_mul.c b/source/f16_mul.c
index 8dc5787..b89b87d 100644
--- a/source/f16_mul.c
+++ b/source/f16_mul.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_mulAdd.c b/source/f16_mulAdd.c
index 26a78c3..fdae75f 100644
--- a/source/f16_mulAdd.c
+++ b/source/f16_mulAdd.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_rem.c b/source/f16_rem.c
index 1f8f2ee..c09e525 100644
--- a/source/f16_rem.c
+++ b/source/f16_rem.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_roundToInt.c b/source/f16_roundToInt.c
index 9fa9693..57289f8 100644
--- a/source/f16_roundToInt.c
+++ b/source/f16_roundToInt.c
@@ -2,9 +2,9 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+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
@@ -94,10 +94,11 @@ float16_t f16_roundToInt( float16_t a, uint_fast8_t roundingMode, bool exact )
} else if ( roundingMode == softfloat_round_near_even ) {
uiZ += lastBitMask>>1;
if ( ! (uiZ & roundBitsMask) ) uiZ &= ~lastBitMask;
- } else if ( roundingMode != softfloat_round_minMag ) {
- if ( signF16UI( uiZ ) ^ (roundingMode == softfloat_round_max) ) {
- uiZ += roundBitsMask;
- }
+ } else if (
+ roundingMode
+ == (signF16UI( uiZ ) ? softfloat_round_min : softfloat_round_max)
+ ) {
+ uiZ += roundBitsMask;
}
uiZ &= ~roundBitsMask;
if ( exact && (uiZ != uiA) ) {
diff --git a/source/f16_sqrt.c b/source/f16_sqrt.c
index 347d77f..fcd73cb 100644
--- a/source/f16_sqrt.c
+++ b/source/f16_sqrt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_sub.c b/source/f16_sub.c
index e5cf6e2..ca2cda2 100644
--- a/source/f16_sub.c
+++ b/source/f16_sub.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_to_extF80.c b/source/f16_to_extF80.c
index 74cc831..c1f56c9 100644
--- a/source/f16_to_extF80.c
+++ b/source/f16_to_extF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_to_extF80M.c b/source/f16_to_extF80M.c
index a2c3e07..667161e 100644
--- a/source/f16_to_extF80M.c
+++ b/source/f16_to_extF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_to_f128.c b/source/f16_to_f128.c
index ab40fb0..cf57b55 100644
--- a/source/f16_to_f128.c
+++ b/source/f16_to_f128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_to_f128M.c b/source/f16_to_f128M.c
index a6f4249..9cbff63 100644
--- a/source/f16_to_f128M.c
+++ b/source/f16_to_f128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_to_f32.c b/source/f16_to_f32.c
index 3fbc61d..03c2e26 100644
--- a/source/f16_to_f32.c
+++ b/source/f16_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_to_f64.c b/source/f16_to_f64.c
index 7b0de79..1e43c23 100644
--- a/source/f16_to_f64.c
+++ b/source/f16_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_to_i32.c b/source/f16_to_i32.c
index 344c8a4..abf29ca 100644
--- a/source/f16_to_i32.c
+++ b/source/f16_to_i32.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -80,7 +80,7 @@ int_fast32_t f16_to_i32( float16_t a, uint_fast8_t roundingMode, bool exact )
if ( 0 < shiftDist ) sig32 <<= shiftDist;
}
return
- softfloat_roundPackToI32(
+ softfloat_roundToI32(
sign, (uint_fast32_t) sig32, roundingMode, exact );
}
diff --git a/source/f16_to_i32_r_minMag.c b/source/f16_to_i32_r_minMag.c
index 9bd13ec..674864d 100644
--- a/source/f16_to_i32_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_to_i64.c b/source/f16_to_i64.c
index e0c064f..724659c 100644
--- a/source/f16_to_i64.c
+++ b/source/f16_to_i64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -80,7 +80,7 @@ int_fast64_t f16_to_i64( float16_t a, uint_fast8_t roundingMode, bool exact )
if ( 0 < shiftDist ) sig32 <<= shiftDist;
}
return
- softfloat_roundPackToI32(
+ softfloat_roundToI32(
sign, (uint_fast32_t) sig32, roundingMode, exact );
}
diff --git a/source/f16_to_i64_r_minMag.c b/source/f16_to_i64_r_minMag.c
index 5f3c36b..25847ff 100644
--- a/source/f16_to_i64_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_to_ui32.c b/source/f16_to_ui32.c
index 1166014..122dd1a 100644
--- a/source/f16_to_ui32.c
+++ b/source/f16_to_ui32.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -78,7 +78,7 @@ uint_fast32_t f16_to_ui32( float16_t a, uint_fast8_t roundingMode, bool exact )
shiftDist = exp - 0x0D;
if ( 0 < shiftDist ) sig32 <<= shiftDist;
}
- return softfloat_roundPackToUI32( sign, sig32, roundingMode, exact );
+ return softfloat_roundToUI32( sign, sig32, roundingMode, exact );
}
diff --git a/source/f16_to_ui32_r_minMag.c b/source/f16_to_ui32_r_minMag.c
index 91e5c6a..c941b12 100644
--- a/source/f16_to_ui32_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f16_to_ui64.c b/source/f16_to_ui64.c
index 6c5ef51..be772a2 100644
--- a/source/f16_to_ui64.c
+++ b/source/f16_to_ui64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -78,7 +78,7 @@ 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_roundPackToUI32( sign, sig32, roundingMode, exact );
+ return softfloat_roundToUI32( sign, sig32, roundingMode, exact );
}
diff --git a/source/f16_to_ui64_r_minMag.c b/source/f16_to_ui64_r_minMag.c
index 13a2114..84ea197 100644
--- a/source/f16_to_ui64_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f32_add.c b/source/f32_add.c
index b671aa4..a7fb73f 100644
--- a/source/f32_add.c
+++ b/source/f32_add.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f32_div.c b/source/f32_div.c
index 59211c2..56aaab2 100644
--- a/source/f32_div.c
+++ b/source/f32_div.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f32_eq.c b/source/f32_eq.c
index 32a0598..7f6c5db 100644
--- a/source/f32_eq.c
+++ b/source/f32_eq.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f32_eq_signaling.c b/source/f32_eq_signaling.c
index 1520898..83b4ace 100644
--- a/source/f32_eq_signaling.c
+++ b/source/f32_eq_signaling.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f32_isSignalingNaN.c b/source/f32_isSignalingNaN.c
index 821e0c5..b9d6827 100644
--- a/source/f32_isSignalingNaN.c
+++ b/source/f32_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f32_le.c b/source/f32_le.c
index 17d5d25..e6eb46a 100644
--- a/source/f32_le.c
+++ b/source/f32_le.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f32_le_quiet.c b/source/f32_le_quiet.c
index 259ac01..21c5582 100644
--- a/source/f32_le_quiet.c
+++ b/source/f32_le_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f32_lt.c b/source/f32_lt.c
index 4c8881e..1946961 100644
--- a/source/f32_lt.c
+++ b/source/f32_lt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f32_lt_quiet.c b/source/f32_lt_quiet.c
index 2338192..28a23d0 100644
--- a/source/f32_lt_quiet.c
+++ b/source/f32_lt_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f32_mul.c b/source/f32_mul.c
index 5d5f9a8..8c90fd1 100644
--- a/source/f32_mul.c
+++ b/source/f32_mul.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f32_mulAdd.c b/source/f32_mulAdd.c
index 35d4c9d..b9c11d5 100644
--- a/source/f32_mulAdd.c
+++ b/source/f32_mulAdd.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f32_rem.c b/source/f32_rem.c
index 9a0cd8e..2a14f99 100644
--- a/source/f32_rem.c
+++ b/source/f32_rem.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f32_roundToInt.c b/source/f32_roundToInt.c
index 00577f8..82660ad 100644
--- a/source/f32_roundToInt.c
+++ b/source/f32_roundToInt.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+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:
@@ -94,10 +94,11 @@ float32_t f32_roundToInt( float32_t a, uint_fast8_t roundingMode, bool exact )
} else if ( roundingMode == softfloat_round_near_even ) {
uiZ += lastBitMask>>1;
if ( ! (uiZ & roundBitsMask) ) uiZ &= ~lastBitMask;
- } else if ( roundingMode != softfloat_round_minMag ) {
- if ( signF32UI( uiZ ) ^ (roundingMode == softfloat_round_max) ) {
- uiZ += roundBitsMask;
- }
+ } else if (
+ roundingMode
+ == (signF32UI( uiZ ) ? softfloat_round_min : softfloat_round_max)
+ ) {
+ uiZ += roundBitsMask;
}
uiZ &= ~roundBitsMask;
if ( exact && (uiZ != uiA) ) {
diff --git a/source/f32_sqrt.c b/source/f32_sqrt.c
index ab9c562..eba119b 100644
--- a/source/f32_sqrt.c
+++ b/source/f32_sqrt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f32_sub.c b/source/f32_sub.c
index a9a03ea..b72ad83 100644
--- a/source/f32_sub.c
+++ b/source/f32_sub.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f32_to_extF80.c b/source/f32_to_extF80.c
index 4bf207d..a73c460 100644
--- a/source/f32_to_extF80.c
+++ b/source/f32_to_extF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f32_to_extF80M.c b/source/f32_to_extF80M.c
index 488c8b1..2cf3851 100644
--- a/source/f32_to_extF80M.c
+++ b/source/f32_to_extF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f32_to_f128.c b/source/f32_to_f128.c
index 202e096..57dabd5 100644
--- a/source/f32_to_f128.c
+++ b/source/f32_to_f128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f32_to_f128M.c b/source/f32_to_f128M.c
index 3049f0e..04ec96c 100644
--- a/source/f32_to_f128M.c
+++ b/source/f32_to_f128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f32_to_f16.c b/source/f32_to_f16.c
index e559082..a725828 100644
--- a/source/f32_to_f16.c
+++ b/source/f32_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f32_to_f64.c b/source/f32_to_f64.c
index 009b381..7601566 100644
--- a/source/f32_to_f64.c
+++ b/source/f32_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f32_to_i32.c b/source/f32_to_i32.c
index cf2e0b0..2986a6a 100644
--- a/source/f32_to_i32.c
+++ b/source/f32_to_i32.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -78,7 +78,7 @@ int_fast32_t f32_to_i32( float32_t a, uint_fast8_t roundingMode, bool exact )
sig64 = (uint_fast64_t) sig<<32;
shiftDist = 0xAA - exp;
if ( 0 < shiftDist ) sig64 = softfloat_shiftRightJam64( sig64, shiftDist );
- return softfloat_roundPackToI32( sign, sig64, roundingMode, exact );
+ return softfloat_roundToI32( sign, sig64, roundingMode, exact );
}
diff --git a/source/f32_to_i32_r_minMag.c b/source/f32_to_i32_r_minMag.c
index 9693f8a..f1c0321 100644
--- a/source/f32_to_i32_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f32_to_i64.c b/source/f32_to_i64.c
index b26b9df..1840bbf 100644
--- a/source/f32_to_i64.c
+++ b/source/f32_to_i64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -83,13 +83,13 @@ int_fast64_t f32_to_i64( float32_t a, uint_fast8_t roundingMode, bool exact )
sig64 = sig64Extra.v;
extra = sig64Extra.extra;
}
- return softfloat_roundPackToI64( sign, sig64, extra, roundingMode, exact );
+ return softfloat_roundToI64( sign, sig64, extra, roundingMode, exact );
#else
extSig[indexWord( 3, 2 )] = sig<<8;
extSig[indexWord( 3, 1 )] = 0;
extSig[indexWord( 3, 0 )] = 0;
if ( shiftDist ) softfloat_shiftRightJam96M( extSig, shiftDist, extSig );
- return softfloat_roundPackMToI64( sign, extSig, roundingMode, exact );
+ return softfloat_roundMToI64( sign, extSig, roundingMode, exact );
#endif
}
diff --git a/source/f32_to_i64_r_minMag.c b/source/f32_to_i64_r_minMag.c
index f1d871e..f26027e 100644
--- a/source/f32_to_i64_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f32_to_ui32.c b/source/f32_to_ui32.c
index 638bdce..609863b 100644
--- a/source/f32_to_ui32.c
+++ b/source/f32_to_ui32.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -78,7 +78,7 @@ uint_fast32_t f32_to_ui32( float32_t a, uint_fast8_t roundingMode, bool exact )
sig64 = (uint_fast64_t) sig<<32;
shiftDist = 0xAA - exp;
if ( 0 < shiftDist ) sig64 = softfloat_shiftRightJam64( sig64, shiftDist );
- return softfloat_roundPackToUI32( sign, sig64, roundingMode, exact );
+ return softfloat_roundToUI32( sign, sig64, roundingMode, exact );
}
diff --git a/source/f32_to_ui32_r_minMag.c b/source/f32_to_ui32_r_minMag.c
index f4495d2..c740364 100644
--- a/source/f32_to_ui32_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f32_to_ui64.c b/source/f32_to_ui64.c
index 7cf3366..0797bae 100644
--- a/source/f32_to_ui64.c
+++ b/source/f32_to_ui64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -83,14 +83,13 @@ uint_fast64_t f32_to_ui64( float32_t a, uint_fast8_t roundingMode, bool exact )
sig64 = sig64Extra.v;
extra = sig64Extra.extra;
}
- return
- softfloat_roundPackToUI64( sign, sig64, extra, roundingMode, exact );
+ return softfloat_roundToUI64( sign, sig64, extra, roundingMode, exact );
#else
extSig[indexWord( 3, 2 )] = sig<<8;
extSig[indexWord( 3, 1 )] = 0;
extSig[indexWord( 3, 0 )] = 0;
if ( shiftDist ) softfloat_shiftRightJam96M( extSig, shiftDist, extSig );
- return softfloat_roundPackMToUI64( sign, extSig, roundingMode, exact );
+ return softfloat_roundMToUI64( sign, extSig, roundingMode, exact );
#endif
}
diff --git a/source/f32_to_ui64_r_minMag.c b/source/f32_to_ui64_r_minMag.c
index 05319b9..87f1e43 100644
--- a/source/f32_to_ui64_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f64_add.c b/source/f64_add.c
index 1e575f0..cba6818 100644
--- a/source/f64_add.c
+++ b/source/f64_add.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f64_div.c b/source/f64_div.c
index 13b037d..1adcc9a 100644
--- a/source/f64_div.c
+++ b/source/f64_div.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f64_eq.c b/source/f64_eq.c
index d756d9f..304d908 100644
--- a/source/f64_eq.c
+++ b/source/f64_eq.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f64_eq_signaling.c b/source/f64_eq_signaling.c
index c3a3cfb..0bb676d 100644
--- a/source/f64_eq_signaling.c
+++ b/source/f64_eq_signaling.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f64_isSignalingNaN.c b/source/f64_isSignalingNaN.c
index efcc16b..f6971d3 100644
--- a/source/f64_isSignalingNaN.c
+++ b/source/f64_isSignalingNaN.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f64_le.c b/source/f64_le.c
index 563479b..307f917 100644
--- a/source/f64_le.c
+++ b/source/f64_le.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f64_le_quiet.c b/source/f64_le_quiet.c
index f361f99..6c8a00f 100644
--- a/source/f64_le_quiet.c
+++ b/source/f64_le_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f64_lt.c b/source/f64_lt.c
index 311ca77..32973e3 100644
--- a/source/f64_lt.c
+++ b/source/f64_lt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f64_lt_quiet.c b/source/f64_lt_quiet.c
index 195c79b..c3ac421 100644
--- a/source/f64_lt_quiet.c
+++ b/source/f64_lt_quiet.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f64_mul.c b/source/f64_mul.c
index 3f50d62..9e9116e 100644
--- a/source/f64_mul.c
+++ b/source/f64_mul.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f64_mulAdd.c b/source/f64_mulAdd.c
index c484a81..eb7d80d 100644
--- a/source/f64_mulAdd.c
+++ b/source/f64_mulAdd.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f64_rem.c b/source/f64_rem.c
index ba1e83d..25b68a5 100644
--- a/source/f64_rem.c
+++ b/source/f64_rem.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f64_roundToInt.c b/source/f64_roundToInt.c
index 37e2a44..8adcc32 100644
--- a/source/f64_roundToInt.c
+++ b/source/f64_roundToInt.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+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:
@@ -94,10 +94,11 @@ float64_t f64_roundToInt( float64_t a, uint_fast8_t roundingMode, bool exact )
} else if ( roundingMode == softfloat_round_near_even ) {
uiZ += lastBitMask>>1;
if ( ! (uiZ & roundBitsMask) ) uiZ &= ~lastBitMask;
- } else if ( roundingMode != softfloat_round_minMag ) {
- if ( signF64UI( uiZ ) ^ (roundingMode == softfloat_round_max) ) {
- uiZ += roundBitsMask;
- }
+ } else if (
+ roundingMode
+ == (signF64UI( uiZ ) ? softfloat_round_min : softfloat_round_max)
+ ) {
+ uiZ += roundBitsMask;
}
uiZ &= ~roundBitsMask;
if ( exact && (uiZ != uiA) ) {
diff --git a/source/f64_sqrt.c b/source/f64_sqrt.c
index a580f96..cf4a362 100644
--- a/source/f64_sqrt.c
+++ b/source/f64_sqrt.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f64_sub.c b/source/f64_sub.c
index 9bafe75..6ee8f1c 100644
--- a/source/f64_sub.c
+++ b/source/f64_sub.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f64_to_extF80.c b/source/f64_to_extF80.c
index f1d3401..1d16e51 100644
--- a/source/f64_to_extF80.c
+++ b/source/f64_to_extF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f64_to_extF80M.c b/source/f64_to_extF80M.c
index 673c35a..fd1ef4b 100644
--- a/source/f64_to_extF80M.c
+++ b/source/f64_to_extF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f64_to_f128.c b/source/f64_to_f128.c
index b2f4c99..93b32cf 100644
--- a/source/f64_to_f128.c
+++ b/source/f64_to_f128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f64_to_f128M.c b/source/f64_to_f128M.c
index 3aa8ec7..9fcfb9e 100644
--- a/source/f64_to_f128M.c
+++ b/source/f64_to_f128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/f64_to_f16.c b/source/f64_to_f16.c
index 61706a2..78c8f93 100644
--- a/source/f64_to_f16.c
+++ b/source/f64_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f64_to_f32.c b/source/f64_to_f32.c
index 947470c..74ef757 100644
--- a/source/f64_to_f32.c
+++ b/source/f64_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/f64_to_i32.c b/source/f64_to_i32.c
index 0a9525a..00af59b 100644
--- a/source/f64_to_i32.c
+++ b/source/f64_to_i32.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -76,7 +76,7 @@ int_fast32_t f64_to_i32( float64_t a, uint_fast8_t roundingMode, bool exact )
if ( exp ) sig |= UINT64_C( 0x0010000000000000 );
shiftDist = 0x427 - exp;
if ( 0 < shiftDist ) sig = softfloat_shiftRightJam64( sig, shiftDist );
- return softfloat_roundPackToI32( sign, sig, roundingMode, exact );
+ return softfloat_roundToI32( sign, sig, roundingMode, exact );
}
diff --git a/source/f64_to_i32_r_minMag.c b/source/f64_to_i32_r_minMag.c
index d5fa546..03f0ffb 100644
--- a/source/f64_to_i32_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f64_to_i64.c b/source/f64_to_i64.c
index ef8cf13..1399443 100644
--- a/source/f64_to_i64.c
+++ b/source/f64_to_i64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -75,7 +75,7 @@ int_fast64_t f64_to_i64( float64_t a, uint_fast8_t roundingMode, bool exact )
sigExtra = softfloat_shiftRightJam64Extra( sig, 0, shiftDist );
}
return
- softfloat_roundPackToI64(
+ softfloat_roundToI64(
sign, sigExtra.v, sigExtra.extra, roundingMode, exact );
#else
extSig[indexWord( 3, 0 )] = 0;
@@ -89,7 +89,7 @@ int_fast64_t f64_to_i64( float64_t a, uint_fast8_t roundingMode, bool exact )
extSig[indexWord( 3, 1 )] = sig;
softfloat_shiftRightJam96M( extSig, shiftDist, extSig );
}
- return softfloat_roundPackMToI64( sign, extSig, roundingMode, exact );
+ return softfloat_roundMToI64( sign, extSig, roundingMode, exact );
#endif
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
diff --git a/source/f64_to_i64_r_minMag.c b/source/f64_to_i64_r_minMag.c
index 46756a1..2567cb9 100644
--- a/source/f64_to_i64_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f64_to_ui32.c b/source/f64_to_ui32.c
index 9970d59..23c9b9c 100644
--- a/source/f64_to_ui32.c
+++ b/source/f64_to_ui32.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -76,7 +76,7 @@ uint_fast32_t f64_to_ui32( float64_t a, uint_fast8_t roundingMode, bool exact )
if ( exp ) sig |= UINT64_C( 0x0010000000000000 );
shiftDist = 0x427 - exp;
if ( 0 < shiftDist ) sig = softfloat_shiftRightJam64( sig, shiftDist );
- return softfloat_roundPackToUI32( sign, sig, roundingMode, exact );
+ return softfloat_roundToUI32( sign, sig, roundingMode, exact );
}
diff --git a/source/f64_to_ui32_r_minMag.c b/source/f64_to_ui32_r_minMag.c
index 6813a1c..7305d03 100644
--- a/source/f64_to_ui32_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/f64_to_ui64.c b/source/f64_to_ui64.c
index 602da22..e0e95af 100644
--- a/source/f64_to_ui64.c
+++ b/source/f64_to_ui64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -75,7 +75,7 @@ uint_fast64_t f64_to_ui64( float64_t a, uint_fast8_t roundingMode, bool exact )
sigExtra = softfloat_shiftRightJam64Extra( sig, 0, shiftDist );
}
return
- softfloat_roundPackToUI64(
+ softfloat_roundToUI64(
sign, sigExtra.v, sigExtra.extra, roundingMode, exact );
#else
extSig[indexWord( 3, 0 )] = 0;
@@ -89,7 +89,7 @@ uint_fast64_t f64_to_ui64( float64_t a, uint_fast8_t roundingMode, bool exact )
extSig[indexWord( 3, 1 )] = sig;
softfloat_shiftRightJam96M( extSig, shiftDist, extSig );
}
- return softfloat_roundPackMToUI64( sign, extSig, roundingMode, exact );
+ return softfloat_roundMToUI64( sign, extSig, roundingMode, exact );
#endif
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
diff --git a/source/f64_to_ui64_r_minMag.c b/source/f64_to_ui64_r_minMag.c
index d769b3d..acdcdbf 100644
--- a/source/f64_to_ui64_r_minMag.c
+++ b/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 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/i32_to_extF80.c b/source/i32_to_extF80.c
index 1c7a255..9b1a853 100644
--- a/source/i32_to_extF80.c
+++ b/source/i32_to_extF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/i32_to_extF80M.c b/source/i32_to_extF80M.c
index a741d85..3b868b1 100644
--- a/source/i32_to_extF80M.c
+++ b/source/i32_to_extF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/i32_to_f128.c b/source/i32_to_f128.c
index ad557c4..fe0be82 100644
--- a/source/i32_to_f128.c
+++ b/source/i32_to_f128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/i32_to_f128M.c b/source/i32_to_f128M.c
index f666f5b..68a229f 100644
--- a/source/i32_to_f128M.c
+++ b/source/i32_to_f128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/i32_to_f16.c b/source/i32_to_f16.c
index e1b4f6b..94029e4 100644
--- a/source/i32_to_f16.c
+++ b/source/i32_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/i32_to_f32.c b/source/i32_to_f32.c
index b9d022f..74c7968 100644
--- a/source/i32_to_f32.c
+++ b/source/i32_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/i32_to_f64.c b/source/i32_to_f64.c
index fc9a9ef..c4a5326 100644
--- a/source/i32_to_f64.c
+++ b/source/i32_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/i64_to_extF80.c b/source/i64_to_extF80.c
index 9b69f9d..82a6ec7 100644
--- a/source/i64_to_extF80.c
+++ b/source/i64_to_extF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/i64_to_extF80M.c b/source/i64_to_extF80M.c
index 7e7a142..ca22ec4 100644
--- a/source/i64_to_extF80M.c
+++ b/source/i64_to_extF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/i64_to_f128.c b/source/i64_to_f128.c
index b55685b..6e14b7f 100644
--- a/source/i64_to_f128.c
+++ b/source/i64_to_f128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/i64_to_f128M.c b/source/i64_to_f128M.c
index a8b6359..dd39bf7 100644
--- a/source/i64_to_f128M.c
+++ b/source/i64_to_f128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/i64_to_f16.c b/source/i64_to_f16.c
index 0543626..a78870b 100644
--- a/source/i64_to_f16.c
+++ b/source/i64_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/i64_to_f32.c b/source/i64_to_f32.c
index e6d662d..39f1b9f 100644
--- a/source/i64_to_f32.c
+++ b/source/i64_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/i64_to_f64.c b/source/i64_to_f64.c
index e0f79a1..9630874 100644
--- a/source/i64_to_f64.c
+++ b/source/i64_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/include/internals.h b/source/include/internals.h
index 9045f6c..2722482 100644
--- a/source/include/internals.h
+++ b/source/include/internals.h
@@ -2,10 +2,10 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -58,27 +58,24 @@ enum {
/*----------------------------------------------------------------------------
*----------------------------------------------------------------------------*/
-uint_fast32_t
- softfloat_roundPackToUI32( bool, uint_fast64_t, uint_fast8_t, bool );
+uint_fast32_t softfloat_roundToUI32( bool, uint_fast64_t, uint_fast8_t, bool );
#ifdef SOFTFLOAT_FAST_INT64
uint_fast64_t
- softfloat_roundPackToUI64(
+ softfloat_roundToUI64(
bool, uint_fast64_t, uint_fast64_t, uint_fast8_t, bool );
#else
-uint_fast64_t
- softfloat_roundPackMToUI64( bool, uint32_t *, uint_fast8_t, bool );
+uint_fast64_t softfloat_roundMToUI64( bool, uint32_t *, uint_fast8_t, bool );
#endif
-int_fast32_t
- softfloat_roundPackToI32( bool, uint_fast64_t, uint_fast8_t, bool );
+int_fast32_t softfloat_roundToI32( bool, uint_fast64_t, uint_fast8_t, bool );
#ifdef SOFTFLOAT_FAST_INT64
int_fast64_t
- softfloat_roundPackToI64(
+ softfloat_roundToI64(
bool, uint_fast64_t, uint_fast64_t, uint_fast8_t, bool );
#else
-int_fast64_t softfloat_roundPackMToI64( bool, uint32_t *, uint_fast8_t, bool );
+int_fast64_t softfloat_roundMToI64( bool, uint32_t *, uint_fast8_t, bool );
#endif
/*----------------------------------------------------------------------------
diff --git a/source/include/primitiveTypes.h b/source/include/primitiveTypes.h
index 4790a3c..3f6e255 100644
--- a/source/include/primitiveTypes.h
+++ b/source/include/primitiveTypes.h
@@ -2,7 +2,7 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/include/primitives.h b/source/include/primitives.h
index 279e5ea..360d103 100644
--- a/source/include/primitives.h
+++ b/source/include/primitives.h
@@ -2,10 +2,10 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -43,7 +43,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef softfloat_shortShiftRightJam64
/*----------------------------------------------------------------------------
-| Shifts `a' right by the number of bits given in `dist', which must be in
+| Shifts 'a' right by the number of bits given in 'dist', which must be in
| the range 1 to 63. If any nonzero bits are shifted off, they are "jammed"
| into the least-significant bit of the shifted value by setting the least-
| significant bit to 1. This shifted-and-jammed value is returned.
@@ -59,12 +59,12 @@ uint64_t softfloat_shortShiftRightJam64( uint64_t a, uint_fast8_t dist );
#ifndef softfloat_shiftRightJam32
/*----------------------------------------------------------------------------
-| Shifts `a' right by the number of bits given in `dist', which must not
+| Shifts 'a' right by the number of bits given in 'dist', which must not
| be zero. If any nonzero bits are shifted off, they are "jammed" into the
| least-significant bit of the shifted value by setting the least-significant
| bit to 1. This shifted-and-jammed value is returned.
-| The value of `dist' can be arbitrarily large. In particular, if `dist' is
-| greater than 32, the result will be either 0 or 1, depending on whether `a'
+| The value of 'dist' can be arbitrarily large. In particular, if 'dist' is
+| greater than 32, the result will be either 0 or 1, depending on whether 'a'
| is zero or nonzero.
*----------------------------------------------------------------------------*/
#if defined INLINE_LEVEL && (2 <= INLINE_LEVEL)
@@ -80,12 +80,12 @@ uint32_t softfloat_shiftRightJam32( uint32_t a, uint_fast16_t dist );
#ifndef softfloat_shiftRightJam64
/*----------------------------------------------------------------------------
-| Shifts `a' right by the number of bits given in `dist', which must not
+| Shifts 'a' right by the number of bits given in 'dist', which must not
| be zero. If any nonzero bits are shifted off, they are "jammed" into the
| least-significant bit of the shifted value by setting the least-significant
| bit to 1. This shifted-and-jammed value is returned.
-| The value of `dist' can be arbitrarily large. In particular, if `dist' is
-| greater than 64, the result will be either 0 or 1, depending on whether `a'
+| The value of 'dist' can be arbitrarily large. In particular, if 'dist' is
+| greater than 64, the result will be either 0 or 1, depending on whether 'a'
| is zero or nonzero.
*----------------------------------------------------------------------------*/
#if defined INLINE_LEVEL && (3 <= INLINE_LEVEL)
@@ -109,7 +109,7 @@ extern const uint_least8_t softfloat_countLeadingZeros8[256];
#ifndef softfloat_countLeadingZeros16
/*----------------------------------------------------------------------------
| Returns the number of leading 0 bits before the most-significant 1 bit of
-| `a'. If `a' is zero, 16 is returned.
+| 'a'. If 'a' is zero, 16 is returned.
*----------------------------------------------------------------------------*/
#if defined INLINE_LEVEL && (2 <= INLINE_LEVEL)
INLINE uint_fast8_t softfloat_countLeadingZeros16( uint16_t a )
@@ -130,7 +130,7 @@ uint_fast8_t softfloat_countLeadingZeros16( uint16_t a );
#ifndef softfloat_countLeadingZeros32
/*----------------------------------------------------------------------------
| Returns the number of leading 0 bits before the most-significant 1 bit of
-| `a'. If `a' is zero, 32 is returned.
+| 'a'. If 'a' is zero, 32 is returned.
*----------------------------------------------------------------------------*/
#if defined INLINE_LEVEL && (3 <= INLINE_LEVEL)
INLINE uint_fast8_t softfloat_countLeadingZeros32( uint32_t a )
@@ -155,7 +155,7 @@ uint_fast8_t softfloat_countLeadingZeros32( uint32_t a );
#ifndef softfloat_countLeadingZeros64
/*----------------------------------------------------------------------------
| Returns the number of leading 0 bits before the most-significant 1 bit of
-| `a'. If `a' is zero, 64 is returned.
+| 'a'. If 'a' is zero, 64 is returned.
*----------------------------------------------------------------------------*/
uint_fast8_t softfloat_countLeadingZeros64( uint64_t a );
#endif
@@ -165,11 +165,11 @@ extern const uint16_t softfloat_approxRecip_1k1s[16];
#ifndef softfloat_approxRecip32_1
/*----------------------------------------------------------------------------
-| Returns an approximation to the reciprocal of the number represented by `a',
-| where `a' is interpreted as an unsigned fixed-point number with one integer
-| bit and 31 fraction bits. The `a' input must be "normalized", meaning that
+| Returns an approximation to the reciprocal of the number represented by 'a',
+| where 'a' is interpreted as an unsigned fixed-point number with one integer
+| bit and 31 fraction bits. The 'a' input must be "normalized", meaning that
| its most-significant bit (bit 31) must be 1. Thus, if A is the value of
-| the fixed-point interpretation of `a', then 1 <= A < 2. The returned value
+| the fixed-point interpretation of 'a', then 1 <= A < 2. The returned value
| is interpreted as a pure unsigned fraction, having no integer bits and 32
| fraction bits. The approximation returned is never greater than the true
| reciprocal 1/A, and it differs from the true reciprocal by at most 2.006 ulp
@@ -188,15 +188,15 @@ extern const uint16_t softfloat_approxRecipSqrt_1k1s[16];
#ifndef softfloat_approxRecipSqrt32_1
/*----------------------------------------------------------------------------
| Returns an approximation to the reciprocal of the square root of the number
-| represented by `a', where `a' is interpreted as an unsigned fixed-point
+| represented by 'a', where 'a' is interpreted as an unsigned fixed-point
| number either with one integer bit and 31 fraction bits or with two integer
-| bits and 30 fraction bits. The format of `a' is determined by `oddExpA',
-| which must be either 0 or 1. If `oddExpA' is 1, `a' is interpreted as
-| having one integer bit, and if `oddExpA' is 0, `a' is interpreted as having
-| two integer bits. The `a' input must be "normalized", meaning that its
+| bits and 30 fraction bits. The format of 'a' is determined by 'oddExpA',
+| which must be either 0 or 1. If 'oddExpA' is 1, 'a' is interpreted as
+| having one integer bit, and if 'oddExpA' is 0, 'a' is interpreted as having
+| two integer bits. The 'a' input must be "normalized", meaning that its
| most-significant bit (bit 31) must be 1. Thus, if A is the value of the
-| fixed-point interpretation of `a', it follows that 1 <= A < 2 when `oddExpA'
-| is 1, and 2 <= A < 4 when `oddExpA' is 0.
+| fixed-point interpretation of 'a', it follows that 1 <= A < 2 when 'oddExpA'
+| is 1, and 2 <= A < 4 when 'oddExpA' is 0.
| The returned value is interpreted as a pure unsigned fraction, having
| no integer bits and 32 fraction bits. The approximation returned is never
| greater than the true reciprocal 1/sqrt(A), and it differs from the true
@@ -210,15 +210,15 @@ uint32_t softfloat_approxRecipSqrt32_1( unsigned int oddExpA, uint32_t a );
#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.
*----------------------------------------------------------------------------*/
#ifndef softfloat_eq128
/*----------------------------------------------------------------------------
-| Returns true if the 128-bit unsigned integer formed by concatenating `a64'
-| and `a0' is equal to the 128-bit unsigned integer formed by concatenating
-| `b64' and `b0'.
+| Returns true if the 128-bit unsigned integer formed by concatenating 'a64'
+| and 'a0' is equal to the 128-bit unsigned integer formed by concatenating
+| 'b64' and 'b0'.
*----------------------------------------------------------------------------*/
#if defined INLINE_LEVEL && (1 <= INLINE_LEVEL)
INLINE
@@ -231,9 +231,9 @@ bool softfloat_eq128( uint64_t a64, uint64_t a0, uint64_t b64, uint64_t b0 );
#ifndef softfloat_le128
/*----------------------------------------------------------------------------
-| Returns true if the 128-bit unsigned integer formed by concatenating `a64'
-| and `a0' is less than or equal to the 128-bit unsigned integer formed by
-| concatenating `b64' and `b0'.
+| Returns true if the 128-bit unsigned integer formed by concatenating 'a64'
+| and 'a0' is less than or equal to the 128-bit unsigned integer formed by
+| concatenating 'b64' and 'b0'.
*----------------------------------------------------------------------------*/
#if defined INLINE_LEVEL && (2 <= INLINE_LEVEL)
INLINE
@@ -246,9 +246,9 @@ bool softfloat_le128( uint64_t a64, uint64_t a0, uint64_t b64, uint64_t b0 );
#ifndef softfloat_lt128
/*----------------------------------------------------------------------------
-| Returns true if the 128-bit unsigned integer formed by concatenating `a64'
-| and `a0' is less than the 128-bit unsigned integer formed by concatenating
-| `b64' and `b0'.
+| Returns true if the 128-bit unsigned integer formed by concatenating 'a64'
+| and 'a0' is less than the 128-bit unsigned integer formed by concatenating
+| 'b64' and 'b0'.
*----------------------------------------------------------------------------*/
#if defined INLINE_LEVEL && (2 <= INLINE_LEVEL)
INLINE
@@ -261,8 +261,8 @@ bool softfloat_lt128( uint64_t a64, uint64_t a0, uint64_t b64, uint64_t b0 );
#ifndef softfloat_shortShiftLeft128
/*----------------------------------------------------------------------------
-| Shifts the 128 bits formed by concatenating `a64' and `a0' left by the
-| number of bits given in `dist', which must be in the range 1 to 63.
+| Shifts the 128 bits formed by concatenating 'a64' and 'a0' left by the
+| number of bits given in 'dist', which must be in the range 1 to 63.
*----------------------------------------------------------------------------*/
#if defined INLINE_LEVEL && (2 <= INLINE_LEVEL)
INLINE
@@ -282,8 +282,8 @@ struct uint128
#ifndef softfloat_shortShiftRight128
/*----------------------------------------------------------------------------
-| Shifts the 128 bits formed by concatenating `a64' and `a0' right by the
-| number of bits given in `dist', which must be in the range 1 to 63.
+| Shifts the 128 bits formed by concatenating 'a64' and 'a0' right by the
+| number of bits given in 'dist', which must be in the range 1 to 63.
*----------------------------------------------------------------------------*/
#if defined INLINE_LEVEL && (2 <= INLINE_LEVEL)
INLINE
@@ -303,8 +303,8 @@ struct uint128
#ifndef softfloat_shortShiftRightJam64Extra
/*----------------------------------------------------------------------------
-| This function is the same as `softfloat_shiftRightJam64Extra' (below),
-| except that `dist' must be in the range 1 to 63.
+| This function is the same as 'softfloat_shiftRightJam64Extra' (below),
+| except that 'dist' must be in the range 1 to 63.
*----------------------------------------------------------------------------*/
#if defined INLINE_LEVEL && (2 <= INLINE_LEVEL)
INLINE
@@ -326,8 +326,8 @@ struct uint64_extra
#ifndef softfloat_shortShiftRightJam128
/*----------------------------------------------------------------------------
-| Shifts the 128 bits formed by concatenating `a64' and `a0' right by the
-| number of bits given in `dist', which must be in the range 1 to 63. If any
+| Shifts the 128 bits formed by concatenating 'a64' and 'a0' right by the
+| number of bits given in 'dist', which must be in the range 1 to 63. If any
| nonzero bits are shifted off, they are "jammed" into the least-significant
| bit of the shifted value by setting the least-significant bit to 1. This
| shifted-and-jammed value is returned.
@@ -355,8 +355,8 @@ struct uint128
#ifndef softfloat_shortShiftRightJam128Extra
/*----------------------------------------------------------------------------
-| This function is the same as `softfloat_shiftRightJam128Extra' (below),
-| except that `dist' must be in the range 1 to 63.
+| This function is the same as 'softfloat_shiftRightJam128Extra' (below),
+| except that 'dist' must be in the range 1 to 63.
*----------------------------------------------------------------------------*/
#if defined INLINE_LEVEL && (3 <= INLINE_LEVEL)
INLINE
@@ -380,20 +380,20 @@ struct uint128_extra
#ifndef softfloat_shiftRightJam64Extra
/*----------------------------------------------------------------------------
-| Shifts the 128 bits formed by concatenating `a' and `extra' right by 64
-| _plus_ the number of bits given in `dist', which must not be zero. This
-| shifted value is at most 64 nonzero bits and is returned in the `v' field
-| of the `struct uint64_extra' result. The 64-bit `extra' field of the result
+| Shifts the 128 bits formed by concatenating 'a' and 'extra' right by 64
+| _plus_ the number of bits given in 'dist', which must not be zero. This
+| shifted value is at most 64 nonzero bits and is returned in the 'v' field
+| of the 'struct uint64_extra' result. The 64-bit 'extra' field of the result
| contains a value formed as follows from the bits that were shifted off: The
-| _last_ bit shifted off is the most-significant bit of the `extra' field, and
-| the other 63 bits of the `extra' field are all zero if and only if _all_but_
+| _last_ bit shifted off is the most-significant bit of the 'extra' field, and
+| the other 63 bits of the 'extra' field are all zero if and only if _all_but_
| _the_last_ bits shifted off were all zero.
-| (This function makes more sense if `a' and `extra' are considered to form
-| an unsigned fixed-point number with binary point between `a' and `extra'.
+| (This function makes more sense if 'a' and 'extra' are considered to form
+| an unsigned fixed-point number with binary point between 'a' and 'extra'.
| This fixed-point value is shifted right by the number of bits given in
-| `dist', and the integer part of this shifted value is returned in the `v'
+| 'dist', and the integer part of this shifted value is returned in the 'v'
| field of the result. The fractional part of the shifted value is modified
-| as described above and returned in the `extra' field of the result.)
+| as described above and returned in the 'extra' field of the result.)
*----------------------------------------------------------------------------*/
#if defined INLINE_LEVEL && (4 <= INLINE_LEVEL)
INLINE
@@ -421,12 +421,12 @@ struct uint64_extra
#ifndef softfloat_shiftRightJam128
/*----------------------------------------------------------------------------
-| Shifts the 128 bits formed by concatenating `a64' and `a0' right by the
-| number of bits given in `dist', which must not be zero. If any nonzero bits
+| Shifts the 128 bits formed by concatenating 'a64' and 'a0' right by the
+| number of bits given in 'dist', which must not be zero. If any nonzero bits
| are shifted off, they are "jammed" into the least-significant bit of the
| shifted value by setting the least-significant bit to 1. This shifted-and-
| jammed value is returned.
-| The value of `dist' can be arbitrarily large. In particular, if `dist' is
+| The value of 'dist' can be arbitrarily large. In particular, if 'dist' is
| greater than 128, the result will be either 0 or 1, depending on whether the
| original 128 bits are all zeros.
*----------------------------------------------------------------------------*/
@@ -436,20 +436,20 @@ struct uint128
#ifndef softfloat_shiftRightJam128Extra
/*----------------------------------------------------------------------------
-| Shifts the 192 bits formed by concatenating `a64', `a0', and `extra' right
-| by 64 _plus_ the number of bits given in `dist', which must not be zero.
-| This shifted value is at most 128 nonzero bits and is returned in the `v'
-| field of the `struct uint128_extra' result. The 64-bit `extra' field of the
+| Shifts the 192 bits formed by concatenating 'a64', 'a0', and 'extra' right
+| by 64 _plus_ the number of bits given in 'dist', which must not be zero.
+| This shifted value is at most 128 nonzero bits and is returned in the 'v'
+| field of the 'struct uint128_extra' result. The 64-bit 'extra' field of the
| result contains a value formed as follows from the bits that were shifted
-| off: The _last_ bit shifted off is the most-significant bit of the `extra'
-| field, and the other 63 bits of the `extra' field are all zero if and only
+| off: The _last_ bit shifted off is the most-significant bit of the 'extra'
+| field, and the other 63 bits of the 'extra' field are all zero if and only
| if _all_but_the_last_ bits shifted off were all zero.
-| (This function makes more sense if `a64', `a0', and `extra' are considered
-| to form an unsigned fixed-point number with binary point between `a0' and
-| `extra'. This fixed-point value is shifted right by the number of bits
-| given in `dist', and the integer part of this shifted value is returned
-| in the `v' field of the result. The fractional part of the shifted value
-| is modified as described above and returned in the `extra' field of the
+| (This function makes more sense if 'a64', 'a0', and 'extra' are considered
+| to form an unsigned fixed-point number with binary point between 'a0' and
+| 'extra'. This fixed-point value is shifted right by the number of bits
+| given in 'dist', and the integer part of this shifted value is returned
+| in the 'v' field of the result. The fractional part of the shifted value
+| is modified as described above and returned in the 'extra' field of the
| result.)
*----------------------------------------------------------------------------*/
struct uint128_extra
@@ -459,14 +459,14 @@ struct uint128_extra
#ifndef softfloat_shiftRightJam256M
/*----------------------------------------------------------------------------
-| Shifts the 256-bit unsigned integer pointed to by `aPtr' right by the number
-| of bits given in `dist', which must not be zero. If any nonzero bits are
+| Shifts the 256-bit unsigned integer pointed to by 'aPtr' right by the number
+| of bits given in 'dist', which must not be zero. If any nonzero bits are
| shifted off, they are "jammed" into the least-significant bit of the shifted
| value by setting the least-significant bit to 1. This shifted-and-jammed
-| value is stored at the location pointed to by `zPtr'. Each of `aPtr' and
-| `zPtr' points to an array of four 64-bit elements that concatenate in the
+| value is stored at the location pointed to by 'zPtr'. Each of 'aPtr' and
+| 'zPtr' points to an array of four 64-bit elements that concatenate in the
| platform's normal endian order to form a 256-bit integer.
-| The value of `dist' can be arbitrarily large. In particular, if `dist'
+| The value of 'dist' can be arbitrarily large. In particular, if 'dist'
| is greater than 256, the stored result will be either 0 or 1, depending on
| whether the original 256 bits are all zeros.
*----------------------------------------------------------------------------*/
@@ -477,8 +477,8 @@ void
#ifndef softfloat_add128
/*----------------------------------------------------------------------------
-| Returns the sum of the 128-bit integer formed by concatenating `a64' and
-| `a0' and the 128-bit integer formed by concatenating `b64' and `b0'. The
+| Returns the sum of the 128-bit integer formed by concatenating 'a64' and
+| 'a0' and the 128-bit integer formed by concatenating 'b64' and 'b0'. The
| addition is modulo 2^128, so any carry out is lost.
*----------------------------------------------------------------------------*/
#if defined INLINE_LEVEL && (2 <= INLINE_LEVEL)
@@ -499,9 +499,9 @@ struct uint128
#ifndef softfloat_add256M
/*----------------------------------------------------------------------------
-| Adds the two 256-bit integers pointed to by `aPtr' and `bPtr'. The addition
+| Adds the two 256-bit integers pointed to by 'aPtr' and 'bPtr'. The addition
| is modulo 2^256, so any carry out is lost. The sum is stored at the
-| location pointed to by `zPtr'. Each of `aPtr', `bPtr', and `zPtr' points to
+| location pointed to by 'zPtr'. Each of 'aPtr', 'bPtr', and 'zPtr' points to
| an array of four 64-bit elements that concatenate in the platform's normal
| endian order to form a 256-bit integer.
*----------------------------------------------------------------------------*/
@@ -512,8 +512,8 @@ void
#ifndef softfloat_sub128
/*----------------------------------------------------------------------------
-| Returns the difference of the 128-bit integer formed by concatenating `a64'
-| and `a0' and the 128-bit integer formed by concatenating `b64' and `b0'.
+| Returns the difference of the 128-bit integer formed by concatenating 'a64'
+| and 'a0' and the 128-bit integer formed by concatenating 'b64' and 'b0'.
| The subtraction is modulo 2^128, so any borrow out (carry out) is lost.
*----------------------------------------------------------------------------*/
#if defined INLINE_LEVEL && (2 <= INLINE_LEVEL)
@@ -535,10 +535,10 @@ struct uint128
#ifndef softfloat_sub256M
/*----------------------------------------------------------------------------
-| Subtracts the 256-bit integer pointed to by `bPtr' from the 256-bit integer
-| pointed to by `aPtr'. The addition is modulo 2^256, so any borrow out
+| Subtracts the 256-bit integer pointed to by 'bPtr' from the 256-bit integer
+| pointed to by 'aPtr'. The addition is modulo 2^256, so any borrow out
| (carry out) is lost. The difference is stored at the location pointed to
-| by `zPtr'. Each of `aPtr', `bPtr', and `zPtr' points to an array of four
+| by 'zPtr'. Each of 'aPtr', 'bPtr', and 'zPtr' points to an array of four
| 64-bit elements that concatenate in the platform's normal endian order to
| form a 256-bit integer.
*----------------------------------------------------------------------------*/
@@ -549,7 +549,7 @@ void
#ifndef softfloat_mul64ByShifted32To128
/*----------------------------------------------------------------------------
-| Returns the 128-bit product of `a', `b', and 2^32.
+| Returns the 128-bit product of 'a', 'b', and 2^32.
*----------------------------------------------------------------------------*/
#if defined INLINE_LEVEL && (3 <= INLINE_LEVEL)
INLINE struct uint128 softfloat_mul64ByShifted32To128( uint64_t a, uint32_t b )
@@ -568,15 +568,15 @@ struct uint128 softfloat_mul64ByShifted32To128( uint64_t a, uint32_t b );
#ifndef softfloat_mul64To128
/*----------------------------------------------------------------------------
-| Returns the 128-bit product of `a' and `b'.
+| Returns the 128-bit product of 'a' and 'b'.
*----------------------------------------------------------------------------*/
struct uint128 softfloat_mul64To128( uint64_t a, uint64_t b );
#endif
#ifndef softfloat_mul128By32
/*----------------------------------------------------------------------------
-| Returns the product of the 128-bit integer formed by concatenating `a64' and
-| `a0', multiplied by `b'. The multiplication is modulo 2^128; any overflow
+| Returns the product of the 128-bit integer formed by concatenating 'a64' and
+| 'a0', multiplied by 'b'. The multiplication is modulo 2^128; any overflow
| bits are discarded.
*----------------------------------------------------------------------------*/
#if defined INLINE_LEVEL && (4 <= INLINE_LEVEL)
@@ -599,10 +599,10 @@ struct uint128 softfloat_mul128By32( uint64_t a64, uint64_t a0, uint32_t b );
#ifndef softfloat_mul128To256M
/*----------------------------------------------------------------------------
-| Multiplies the 128-bit unsigned integer formed by concatenating `a64' and
-| `a0' by the 128-bit unsigned integer formed by concatenating `b64' and
-| `b0'. The 256-bit product is stored at the location pointed to by `zPtr'.
-| Argument `zPtr' points to an array of four 64-bit elements that concatenate
+| Multiplies the 128-bit unsigned integer formed by concatenating 'a64' and
+| 'a0' by the 128-bit unsigned integer formed by concatenating 'b64' and
+| 'b0'. The 256-bit product is stored at the location pointed to by 'zPtr'.
+| Argument 'zPtr' points to an array of four 64-bit elements that concatenate
| in the platform's normal endian order to form a 256-bit integer.
*----------------------------------------------------------------------------*/
void
@@ -613,17 +613,17 @@ void
#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.
*----------------------------------------------------------------------------*/
#ifndef softfloat_compare96M
/*----------------------------------------------------------------------------
-| Compares the two 96-bit unsigned integers pointed to by `aPtr' and `bPtr'.
+| Compares the two 96-bit unsigned integers pointed to by 'aPtr' and 'bPtr'.
| Returns -1 if the first integer (A) is less than the second (B); returns 0
| if the two integers are equal; and returns +1 if the first integer (A)
| is greater than the second (B). (The result is thus the signum of A - B.)
-| Each of `aPtr' and `bPtr' points to an array of three 32-bit elements that
+| Each of 'aPtr' and 'bPtr' points to an array of three 32-bit elements that
| concatenate in the platform's normal endian order to form a 96-bit integer.
*----------------------------------------------------------------------------*/
int_fast8_t softfloat_compare96M( const uint32_t *aPtr, const uint32_t *bPtr );
@@ -631,11 +631,11 @@ int_fast8_t softfloat_compare96M( const uint32_t *aPtr, const uint32_t *bPtr );
#ifndef softfloat_compare128M
/*----------------------------------------------------------------------------
-| Compares the two 128-bit unsigned integers pointed to by `aPtr' and `bPtr'.
+| Compares the two 128-bit unsigned integers pointed to by 'aPtr' and 'bPtr'.
| Returns -1 if the first integer (A) is less than the second (B); returns 0
| if the two integers are equal; and returns +1 if the first integer (A)
| is greater than the second (B). (The result is thus the signum of A - B.)
-| Each of `aPtr' and `bPtr' points to an array of four 32-bit elements that
+| Each of 'aPtr' and 'bPtr' points to an array of four 32-bit elements that
| concatenate in the platform's normal endian order to form a 128-bit integer.
*----------------------------------------------------------------------------*/
int_fast8_t
@@ -644,9 +644,9 @@ int_fast8_t
#ifndef softfloat_shortShiftLeft64To96M
/*----------------------------------------------------------------------------
-| Extends `a' to 96 bits and shifts the value left by the number of bits given
-| in `dist', which must be in the range 1 to 31. The result is stored at the
-| location pointed to by `zPtr'. Argument `zPtr' points to an array of three
+| Extends 'a' to 96 bits and shifts the value left by the number of bits given
+| in 'dist', which must be in the range 1 to 31. The result is stored at the
+| location pointed to by 'zPtr'. Argument 'zPtr' points to an array of three
| 32-bit elements that concatenate in the platform's normal endian order to
| form a 96-bit integer.
*----------------------------------------------------------------------------*/
@@ -670,11 +670,11 @@ void
#ifndef softfloat_shortShiftLeftM
/*----------------------------------------------------------------------------
-| Shifts the N-bit unsigned integer pointed to by `aPtr' left by the number
-| of bits given in `dist', where N = `size_words' * 32. The value of `dist'
+| Shifts the N-bit unsigned integer pointed to by 'aPtr' left by the number
+| of bits given in 'dist', where N = 'size_words' * 32. The value of 'dist'
| must be in the range 1 to 31. Any nonzero bits shifted off are lost. The
-| shifted N-bit result is stored at the location pointed to by `zPtr'. Each
-| of `aPtr' and `zPtr' points to a `size_words'-long array of 32-bit elements
+| shifted N-bit result is stored at the location pointed to by 'zPtr'. Each
+| of 'aPtr' and 'zPtr' points to a 'size_words'-long array of 32-bit elements
| that concatenate in the platform's normal endian order to form an N-bit
| integer.
*----------------------------------------------------------------------------*/
@@ -689,37 +689,37 @@ void
#ifndef softfloat_shortShiftLeft96M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_shortShiftLeftM' with
-| `size_words' = 3 (N = 96).
+| This function or macro is the same as 'softfloat_shortShiftLeftM' with
+| 'size_words' = 3 (N = 96).
*----------------------------------------------------------------------------*/
#define softfloat_shortShiftLeft96M( aPtr, dist, zPtr ) softfloat_shortShiftLeftM( 3, aPtr, dist, zPtr )
#endif
#ifndef softfloat_shortShiftLeft128M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_shortShiftLeftM' with
-| `size_words' = 4 (N = 128).
+| This function or macro is the same as 'softfloat_shortShiftLeftM' with
+| 'size_words' = 4 (N = 128).
*----------------------------------------------------------------------------*/
#define softfloat_shortShiftLeft128M( aPtr, dist, zPtr ) softfloat_shortShiftLeftM( 4, aPtr, dist, zPtr )
#endif
#ifndef softfloat_shortShiftLeft160M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_shortShiftLeftM' with
-| `size_words' = 5 (N = 160).
+| This function or macro is the same as 'softfloat_shortShiftLeftM' with
+| 'size_words' = 5 (N = 160).
*----------------------------------------------------------------------------*/
#define softfloat_shortShiftLeft160M( aPtr, dist, zPtr ) softfloat_shortShiftLeftM( 5, aPtr, dist, zPtr )
#endif
#ifndef softfloat_shiftLeftM
/*----------------------------------------------------------------------------
-| Shifts the N-bit unsigned integer pointed to by `aPtr' left by the number
-| of bits given in `dist', where N = `size_words' * 32. The value of `dist'
+| Shifts the N-bit unsigned integer pointed to by 'aPtr' left by the number
+| of bits given in 'dist', where N = 'size_words' * 32. The value of 'dist'
| must not be zero. Any nonzero bits shifted off are lost. The shifted
-| N-bit result is stored at the location pointed to by `zPtr'. Each of `aPtr'
-| and `zPtr' points to a `size_words'-long array of 32-bit elements that
+| N-bit result is stored at the location pointed to by 'zPtr'. Each of 'aPtr'
+| and 'zPtr' points to a 'size_words'-long array of 32-bit elements that
| concatenate in the platform's normal endian order to form an N-bit integer.
-| The value of `dist' can be arbitrarily large. In particular, if `dist' is
+| The value of 'dist' can be arbitrarily large. In particular, if 'dist' is
| greater than N, the stored result will be 0.
*----------------------------------------------------------------------------*/
void
@@ -733,35 +733,35 @@ void
#ifndef softfloat_shiftLeft96M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_shiftLeftM' with
-| `size_words' = 3 (N = 96).
+| This function or macro is the same as 'softfloat_shiftLeftM' with
+| 'size_words' = 3 (N = 96).
*----------------------------------------------------------------------------*/
#define softfloat_shiftLeft96M( aPtr, dist, zPtr ) softfloat_shiftLeftM( 3, aPtr, dist, zPtr )
#endif
#ifndef softfloat_shiftLeft128M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_shiftLeftM' with
-| `size_words' = 4 (N = 128).
+| This function or macro is the same as 'softfloat_shiftLeftM' with
+| 'size_words' = 4 (N = 128).
*----------------------------------------------------------------------------*/
#define softfloat_shiftLeft128M( aPtr, dist, zPtr ) softfloat_shiftLeftM( 4, aPtr, dist, zPtr )
#endif
#ifndef softfloat_shiftLeft160M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_shiftLeftM' with
-| `size_words' = 5 (N = 160).
+| This function or macro is the same as 'softfloat_shiftLeftM' with
+| 'size_words' = 5 (N = 160).
*----------------------------------------------------------------------------*/
#define softfloat_shiftLeft160M( aPtr, dist, zPtr ) softfloat_shiftLeftM( 5, aPtr, dist, zPtr )
#endif
#ifndef softfloat_shortShiftRightM
/*----------------------------------------------------------------------------
-| Shifts the N-bit unsigned integer pointed to by `aPtr' right by the number
-| of bits given in `dist', where N = `size_words' * 32. The value of `dist'
+| Shifts the N-bit unsigned integer pointed to by 'aPtr' right by the number
+| of bits given in 'dist', where N = 'size_words' * 32. The value of 'dist'
| must be in the range 1 to 31. Any nonzero bits shifted off are lost. The
-| shifted N-bit result is stored at the location pointed to by `zPtr'. Each
-| of `aPtr' and `zPtr' points to a `size_words'-long array of 32-bit elements
+| shifted N-bit result is stored at the location pointed to by 'zPtr'. Each
+| of 'aPtr' and 'zPtr' points to a 'size_words'-long array of 32-bit elements
| that concatenate in the platform's normal endian order to form an N-bit
| integer.
*----------------------------------------------------------------------------*/
@@ -776,29 +776,29 @@ void
#ifndef softfloat_shortShiftRight128M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_shortShiftRightM' with
-| `size_words' = 4 (N = 128).
+| This function or macro is the same as 'softfloat_shortShiftRightM' with
+| 'size_words' = 4 (N = 128).
*----------------------------------------------------------------------------*/
#define softfloat_shortShiftRight128M( aPtr, dist, zPtr ) softfloat_shortShiftRightM( 4, aPtr, dist, zPtr )
#endif
#ifndef softfloat_shortShiftRight160M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_shortShiftRightM' with
-| `size_words' = 5 (N = 160).
+| This function or macro is the same as 'softfloat_shortShiftRightM' with
+| 'size_words' = 5 (N = 160).
*----------------------------------------------------------------------------*/
#define softfloat_shortShiftRight160M( aPtr, dist, zPtr ) softfloat_shortShiftRightM( 5, aPtr, dist, zPtr )
#endif
#ifndef softfloat_shortShiftRightJamM
/*----------------------------------------------------------------------------
-| Shifts the N-bit unsigned integer pointed to by `aPtr' right by the number
-| of bits given in `dist', where N = `size_words' * 32. The value of `dist'
+| Shifts the N-bit unsigned integer pointed to by 'aPtr' right by the number
+| of bits given in 'dist', where N = 'size_words' * 32. The value of 'dist'
| must be in the range 1 to 31. If any nonzero bits are shifted off, they are
| "jammed" into the least-significant bit of the shifted value by setting the
| least-significant bit to 1. This shifted-and-jammed N-bit result is stored
-| at the location pointed to by `zPtr'. Each of `aPtr' and `zPtr' points
-| to a `size_words'-long array of 32-bit elements that concatenate in the
+| at the location pointed to by 'zPtr'. Each of 'aPtr' and 'zPtr' points
+| to a 'size_words'-long array of 32-bit elements that concatenate in the
| platform's normal endian order to form an N-bit integer.
*----------------------------------------------------------------------------*/
void
@@ -808,21 +808,21 @@ void
#ifndef softfloat_shortShiftRightJam160M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_shortShiftRightJamM' with
-| `size_words' = 5 (N = 160).
+| This function or macro is the same as 'softfloat_shortShiftRightJamM' with
+| 'size_words' = 5 (N = 160).
*----------------------------------------------------------------------------*/
#define softfloat_shortShiftRightJam160M( aPtr, dist, zPtr ) softfloat_shortShiftRightJamM( 5, aPtr, dist, zPtr )
#endif
#ifndef softfloat_shiftRightM
/*----------------------------------------------------------------------------
-| Shifts the N-bit unsigned integer pointed to by `aPtr' right by the number
-| of bits given in `dist', where N = `size_words' * 32. The value of `dist'
+| Shifts the N-bit unsigned integer pointed to by 'aPtr' right by the number
+| of bits given in 'dist', where N = 'size_words' * 32. The value of 'dist'
| must not be zero. Any nonzero bits shifted off are lost. The shifted
-| N-bit result is stored at the location pointed to by `zPtr'. Each of `aPtr'
-| and `zPtr' points to a `size_words'-long array of 32-bit elements that
+| N-bit result is stored at the location pointed to by 'zPtr'. Each of 'aPtr'
+| and 'zPtr' points to a 'size_words'-long array of 32-bit elements that
| concatenate in the platform's normal endian order to form an N-bit integer.
-| The value of `dist' can be arbitrarily large. In particular, if `dist' is
+| The value of 'dist' can be arbitrarily large. In particular, if 'dist' is
| greater than N, the stored result will be 0.
*----------------------------------------------------------------------------*/
void
@@ -836,23 +836,23 @@ void
#ifndef softfloat_shiftRight96M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_shiftRightM' with
-| `size_words' = 3 (N = 96).
+| This function or macro is the same as 'softfloat_shiftRightM' with
+| 'size_words' = 3 (N = 96).
*----------------------------------------------------------------------------*/
#define softfloat_shiftRight96M( aPtr, dist, zPtr ) softfloat_shiftRightM( 3, aPtr, dist, zPtr )
#endif
#ifndef softfloat_shiftRightJamM
/*----------------------------------------------------------------------------
-| Shifts the N-bit unsigned integer pointed to by `aPtr' right by the number
-| of bits given in `dist', where N = `size_words' * 32. The value of `dist'
+| Shifts the N-bit unsigned integer pointed to by 'aPtr' right by the number
+| of bits given in 'dist', where N = 'size_words' * 32. The value of 'dist'
| must not be zero. If any nonzero bits are shifted off, they are "jammed"
| into the least-significant bit of the shifted value by setting the least-
| significant bit to 1. This shifted-and-jammed N-bit result is stored
-| at the location pointed to by `zPtr'. Each of `aPtr' and `zPtr' points
-| to a `size_words'-long array of 32-bit elements that concatenate in the
+| at the location pointed to by 'zPtr'. Each of 'aPtr' and 'zPtr' points
+| to a 'size_words'-long array of 32-bit elements that concatenate in the
| platform's normal endian order to form an N-bit integer.
-| The value of `dist' can be arbitrarily large. In particular, if `dist'
+| The value of 'dist' can be arbitrarily large. In particular, if 'dist'
| is greater than N, the stored result will be either 0 or 1, depending on
| whether the original N bits are all zeros.
*----------------------------------------------------------------------------*/
@@ -867,34 +867,34 @@ void
#ifndef softfloat_shiftRightJam96M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_shiftRightJamM' with
-| `size_words' = 3 (N = 96).
+| This function or macro is the same as 'softfloat_shiftRightJamM' with
+| 'size_words' = 3 (N = 96).
*----------------------------------------------------------------------------*/
#define softfloat_shiftRightJam96M( aPtr, dist, zPtr ) softfloat_shiftRightJamM( 3, aPtr, dist, zPtr )
#endif
#ifndef softfloat_shiftRightJam128M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_shiftRightJamM' with
-| `size_words' = 4 (N = 128).
+| This function or macro is the same as 'softfloat_shiftRightJamM' with
+| 'size_words' = 4 (N = 128).
*----------------------------------------------------------------------------*/
#define softfloat_shiftRightJam128M( aPtr, dist, zPtr ) softfloat_shiftRightJamM( 4, aPtr, dist, zPtr )
#endif
#ifndef softfloat_shiftRightJam160M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_shiftRightJamM' with
-| `size_words' = 5 (N = 160).
+| This function or macro is the same as 'softfloat_shiftRightJamM' with
+| 'size_words' = 5 (N = 160).
*----------------------------------------------------------------------------*/
#define softfloat_shiftRightJam160M( aPtr, dist, zPtr ) softfloat_shiftRightJamM( 5, aPtr, dist, zPtr )
#endif
#ifndef softfloat_addM
/*----------------------------------------------------------------------------
-| Adds the two N-bit integers pointed to by `aPtr' and `bPtr', where N =
-| `size_words' * 32. The addition is modulo 2^N, so any carry out is lost.
-| The N-bit sum is stored at the location pointed to by `zPtr'. Each of
-| `aPtr', `bPtr', and `zPtr' points to a `size_words'-long array of 32-bit
+| Adds the two N-bit integers pointed to by 'aPtr' and 'bPtr', where N =
+| 'size_words' * 32. The addition is modulo 2^N, so any carry out is lost.
+| The N-bit sum is stored at the location pointed to by 'zPtr'. Each of
+| 'aPtr', 'bPtr', and 'zPtr' points to a 'size_words'-long array of 32-bit
| elements that concatenate in the platform's normal endian order to form an
| N-bit integer.
*----------------------------------------------------------------------------*/
@@ -909,7 +909,7 @@ void
#ifndef softfloat_add96M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_addM' with `size_words'
+| This function or macro is the same as 'softfloat_addM' with 'size_words'
| = 3 (N = 96).
*----------------------------------------------------------------------------*/
#define softfloat_add96M( aPtr, bPtr, zPtr ) softfloat_addM( 3, aPtr, bPtr, zPtr )
@@ -917,7 +917,7 @@ void
#ifndef softfloat_add128M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_addM' with `size_words'
+| This function or macro is the same as 'softfloat_addM' with 'size_words'
| = 4 (N = 128).
*----------------------------------------------------------------------------*/
#define softfloat_add128M( aPtr, bPtr, zPtr ) softfloat_addM( 4, aPtr, bPtr, zPtr )
@@ -925,7 +925,7 @@ void
#ifndef softfloat_add160M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_addM' with `size_words'
+| This function or macro is the same as 'softfloat_addM' with 'size_words'
| = 5 (N = 160).
*----------------------------------------------------------------------------*/
#define softfloat_add160M( aPtr, bPtr, zPtr ) softfloat_addM( 5, aPtr, bPtr, zPtr )
@@ -933,11 +933,11 @@ void
#ifndef softfloat_addCarryM
/*----------------------------------------------------------------------------
-| Adds the two N-bit unsigned integers pointed to by `aPtr' and `bPtr', where
-| N = `size_words' * 32, plus `carry', which must be either 0 or 1. The N-bit
-| sum (modulo 2^N) is stored at the location pointed to by `zPtr', and any
-| carry out is returned as the result. Each of `aPtr', `bPtr', and `zPtr'
-| points to a `size_words'-long array of 32-bit elements that concatenate in
+| Adds the two N-bit unsigned integers pointed to by 'aPtr' and 'bPtr', where
+| N = 'size_words' * 32, plus 'carry', which must be either 0 or 1. The N-bit
+| sum (modulo 2^N) is stored at the location pointed to by 'zPtr', and any
+| carry out is returned as the result. Each of 'aPtr', 'bPtr', and 'zPtr'
+| points to a 'size_words'-long array of 32-bit elements that concatenate in
| the platform's normal endian order to form an N-bit integer.
*----------------------------------------------------------------------------*/
uint_fast8_t
@@ -952,8 +952,8 @@ uint_fast8_t
#ifndef softfloat_addComplCarryM
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_addCarryM', except that
-| the value of the unsigned integer pointed to by `bPtr' is bit-wise completed
+| This function or macro is the same as 'softfloat_addCarryM', except that
+| the value of the unsigned integer pointed to by 'bPtr' is bit-wise completed
| before the addition.
*----------------------------------------------------------------------------*/
uint_fast8_t
@@ -968,17 +968,17 @@ uint_fast8_t
#ifndef softfloat_addComplCarry96M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_addComplCarryM' with
-| `size_words' = 3 (N = 96).
+| This function or macro is the same as 'softfloat_addComplCarryM' with
+| 'size_words' = 3 (N = 96).
*----------------------------------------------------------------------------*/
#define softfloat_addComplCarry96M( aPtr, bPtr, carry, zPtr ) softfloat_addComplCarryM( 3, aPtr, bPtr, carry, zPtr )
#endif
#ifndef softfloat_negXM
/*----------------------------------------------------------------------------
-| Replaces the N-bit unsigned integer pointed to by `zPtr' by the
-| 2s-complement of itself, where N = `size_words' * 32. Argument `zPtr'
-| points to a `size_words'-long array of 32-bit elements that concatenate in
+| Replaces the N-bit unsigned integer pointed to by 'zPtr' by the
+| 2s-complement of itself, where N = 'size_words' * 32. Argument 'zPtr'
+| points to a 'size_words'-long array of 32-bit elements that concatenate in
| the platform's normal endian order to form an N-bit integer.
*----------------------------------------------------------------------------*/
void softfloat_negXM( uint_fast8_t size_words, uint32_t *zPtr );
@@ -986,7 +986,7 @@ void softfloat_negXM( uint_fast8_t size_words, uint32_t *zPtr );
#ifndef softfloat_negX96M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_negXM' with `size_words'
+| This function or macro is the same as 'softfloat_negXM' with 'size_words'
| = 3 (N = 96).
*----------------------------------------------------------------------------*/
#define softfloat_negX96M( zPtr ) softfloat_negXM( 3, zPtr )
@@ -994,7 +994,7 @@ void softfloat_negXM( uint_fast8_t size_words, uint32_t *zPtr );
#ifndef softfloat_negX128M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_negXM' with `size_words'
+| This function or macro is the same as 'softfloat_negXM' with 'size_words'
| = 4 (N = 128).
*----------------------------------------------------------------------------*/
#define softfloat_negX128M( zPtr ) softfloat_negXM( 4, zPtr )
@@ -1002,7 +1002,7 @@ void softfloat_negXM( uint_fast8_t size_words, uint32_t *zPtr );
#ifndef softfloat_negX160M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_negXM' with `size_words'
+| This function or macro is the same as 'softfloat_negXM' with 'size_words'
| = 5 (N = 160).
*----------------------------------------------------------------------------*/
#define softfloat_negX160M( zPtr ) softfloat_negXM( 5, zPtr )
@@ -1010,7 +1010,7 @@ void softfloat_negXM( uint_fast8_t size_words, uint32_t *zPtr );
#ifndef softfloat_negX256M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_negXM' with `size_words'
+| This function or macro is the same as 'softfloat_negXM' with 'size_words'
| = 8 (N = 256).
*----------------------------------------------------------------------------*/
#define softfloat_negX256M( zPtr ) softfloat_negXM( 8, zPtr )
@@ -1018,9 +1018,9 @@ void softfloat_negXM( uint_fast8_t size_words, uint32_t *zPtr );
#ifndef softfloat_sub1XM
/*----------------------------------------------------------------------------
-| Subtracts 1 from the N-bit integer pointed to by `zPtr', where N =
-| `size_words' * 32. The subtraction is modulo 2^N, so any borrow out (carry
-| out) is lost. Argument `zPtr' points to a `size_words'-long array of 32-bit
+| Subtracts 1 from the N-bit integer pointed to by 'zPtr', where N =
+| 'size_words' * 32. The subtraction is modulo 2^N, so any borrow out (carry
+| out) is lost. Argument 'zPtr' points to a 'size_words'-long array of 32-bit
| elements that concatenate in the platform's normal endian order to form an
| N-bit integer.
*----------------------------------------------------------------------------*/
@@ -1029,7 +1029,7 @@ void softfloat_sub1XM( uint_fast8_t size_words, uint32_t *zPtr );
#ifndef softfloat_sub1X96M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_sub1XM' with `size_words'
+| This function or macro is the same as 'softfloat_sub1XM' with 'size_words'
| = 3 (N = 96).
*----------------------------------------------------------------------------*/
#define softfloat_sub1X96M( zPtr ) softfloat_sub1XM( 3, zPtr )
@@ -1037,7 +1037,7 @@ void softfloat_sub1XM( uint_fast8_t size_words, uint32_t *zPtr );
#ifndef softfloat_sub1X160M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_sub1XM' with `size_words'
+| This function or macro is the same as 'softfloat_sub1XM' with 'size_words'
| = 5 (N = 160).
*----------------------------------------------------------------------------*/
#define softfloat_sub1X160M( zPtr ) softfloat_sub1XM( 5, zPtr )
@@ -1045,10 +1045,10 @@ void softfloat_sub1XM( uint_fast8_t size_words, uint32_t *zPtr );
#ifndef softfloat_subM
/*----------------------------------------------------------------------------
-| Subtracts the two N-bit integers pointed to by `aPtr' and `bPtr', where N =
-| `size_words' * 32. The subtraction is modulo 2^N, so any borrow out (carry
+| Subtracts the two N-bit integers pointed to by 'aPtr' and 'bPtr', where N =
+| 'size_words' * 32. The subtraction is modulo 2^N, so any borrow out (carry
| out) is lost. The N-bit difference is stored at the location pointed to by
-| `zPtr'. Each of `aPtr', `bPtr', and `zPtr' points to a `size_words'-long
+| 'zPtr'. Each of 'aPtr', 'bPtr', and 'zPtr' points to a 'size_words'-long
| array of 32-bit elements that concatenate in the platform's normal endian
| order to form an N-bit integer.
*----------------------------------------------------------------------------*/
@@ -1063,7 +1063,7 @@ void
#ifndef softfloat_sub96M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_subM' with `size_words'
+| This function or macro is the same as 'softfloat_subM' with 'size_words'
| = 3 (N = 96).
*----------------------------------------------------------------------------*/
#define softfloat_sub96M( aPtr, bPtr, zPtr ) softfloat_subM( 3, aPtr, bPtr, zPtr )
@@ -1071,7 +1071,7 @@ void
#ifndef softfloat_sub128M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_subM' with `size_words'
+| This function or macro is the same as 'softfloat_subM' with 'size_words'
| = 4 (N = 128).
*----------------------------------------------------------------------------*/
#define softfloat_sub128M( aPtr, bPtr, zPtr ) softfloat_subM( 4, aPtr, bPtr, zPtr )
@@ -1079,7 +1079,7 @@ void
#ifndef softfloat_sub160M
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_subM' with `size_words'
+| This function or macro is the same as 'softfloat_subM' with 'size_words'
| = 5 (N = 160).
*----------------------------------------------------------------------------*/
#define softfloat_sub160M( aPtr, bPtr, zPtr ) softfloat_subM( 5, aPtr, bPtr, zPtr )
@@ -1087,8 +1087,8 @@ void
#ifndef softfloat_mul64To128M
/*----------------------------------------------------------------------------
-| Multiplies `a' and `b' and stores the 128-bit product at the location
-| pointed to by `zPtr'. Argument `zPtr' points to an array of four 32-bit
+| Multiplies 'a' and 'b' and stores the 128-bit product at the location
+| pointed to by 'zPtr'. Argument 'zPtr' points to an array of four 32-bit
| elements that concatenate in the platform's normal endian order to form a
| 128-bit integer.
*----------------------------------------------------------------------------*/
@@ -1097,11 +1097,11 @@ void softfloat_mul64To128M( uint64_t a, uint64_t b, uint32_t *zPtr );
#ifndef softfloat_mul128MTo256M
/*----------------------------------------------------------------------------
-| Multiplies the two 128-bit unsigned integers pointed to by `aPtr' and
-| `bPtr', and stores the 256-bit product at the location pointed to by `zPtr'.
-| Each of `aPtr' and `bPtr' points to an array of four 32-bit elements that
+| Multiplies the two 128-bit unsigned integers pointed to by 'aPtr' and
+| 'bPtr', and stores the 256-bit product at the location pointed to by 'zPtr'.
+| Each of 'aPtr' and 'bPtr' points to an array of four 32-bit elements that
| concatenate in the platform's normal endian order to form a 128-bit integer.
-| Argument `zPtr' points to an array of eight 32-bit elements that concatenate
+| Argument 'zPtr' points to an array of eight 32-bit elements that concatenate
| to form a 256-bit integer.
*----------------------------------------------------------------------------*/
void
@@ -1111,12 +1111,12 @@ void
#ifndef softfloat_remStepMBy32
/*----------------------------------------------------------------------------
-| Performs a "remainder reduction step" as follows: Arguments `remPtr' and
-| `bPtr' both point to N-bit unsigned integers, where N = `size_words' * 32.
-| Defining R and B as the values of those integers, the expression (R<<`dist')
+| Performs a "remainder reduction step" as follows: Arguments 'remPtr' and
+| 'bPtr' both point to N-bit unsigned integers, where N = 'size_words' * 32.
+| Defining R and B as the values of those integers, the expression (R<<'dist')
| - B * q is computed modulo 2^N, and the N-bit result is stored at the
-| location pointed to by `zPtr'. Each of `remPtr', `bPtr', and `zPtr' points
-| to a `size_words'-long array of 32-bit elements that concatenate in the
+| location pointed to by 'zPtr'. Each of 'remPtr', 'bPtr', and 'zPtr' points
+| to a 'size_words'-long array of 32-bit elements that concatenate in the
| platform's normal endian order to form an N-bit integer.
*----------------------------------------------------------------------------*/
void
@@ -1132,24 +1132,24 @@ void
#ifndef softfloat_remStep96MBy32
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_remStepMBy32' with
-| `size_words' = 3 (N = 96).
+| This function or macro is the same as 'softfloat_remStepMBy32' with
+| 'size_words' = 3 (N = 96).
*----------------------------------------------------------------------------*/
#define softfloat_remStep96MBy32( remPtr, dist, bPtr, q, zPtr ) softfloat_remStepMBy32( 3, remPtr, dist, bPtr, q, zPtr )
#endif
#ifndef softfloat_remStep128MBy32
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_remStepMBy32' with
-| `size_words' = 4 (N = 128).
+| This function or macro is the same as 'softfloat_remStepMBy32' with
+| 'size_words' = 4 (N = 128).
*----------------------------------------------------------------------------*/
#define softfloat_remStep128MBy32( remPtr, dist, bPtr, q, zPtr ) softfloat_remStepMBy32( 4, remPtr, dist, bPtr, q, zPtr )
#endif
#ifndef softfloat_remStep160MBy32
/*----------------------------------------------------------------------------
-| This function or macro is the same as `softfloat_remStepMBy32' with
-| `size_words' = 5 (N = 160).
+| This function or macro is the same as 'softfloat_remStepMBy32' with
+| 'size_words' = 5 (N = 160).
*----------------------------------------------------------------------------*/
#define softfloat_remStep160MBy32( remPtr, dist, bPtr, q, zPtr ) softfloat_remStepMBy32( 5, remPtr, dist, bPtr, q, zPtr )
#endif
diff --git a/source/include/softfloat.h b/source/include/softfloat.h
index 8f82288..da6034e 100644
--- a/source/include/softfloat.h
+++ b/source/include/softfloat.h
@@ -2,10 +2,10 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -64,7 +64,8 @@ enum {
};
/*----------------------------------------------------------------------------
-| Software floating-point rounding mode.
+| Software floating-point rounding mode. (Mode "odd" is supported only if
+| SoftFloat is compiled with macro 'SOFTFLOAT_ROUND_ODD' defined.)
*----------------------------------------------------------------------------*/
extern THREAD_LOCAL uint_fast8_t softfloat_roundingMode;
enum {
@@ -72,7 +73,8 @@ enum {
softfloat_round_minMag = 1,
softfloat_round_min = 2,
softfloat_round_max = 3,
- softfloat_round_near_maxMag = 4
+ softfloat_round_near_maxMag = 4,
+ softfloat_round_odd = 5
};
/*----------------------------------------------------------------------------
diff --git a/source/include/softfloat_types.h b/source/include/softfloat_types.h
index e882515..30c2aaf 100644
--- a/source/include/softfloat_types.h
+++ b/source/include/softfloat_types.h
@@ -2,9 +2,9 @@
/*============================================================================
This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+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
@@ -45,7 +45,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
| 16 bits, 32 bits, 64 bits, and 128 bits in size, respectively. Where a
| platform has "native" support for IEEE-Standard floating-point formats,
| the types below may, if desired, be defined as aliases for the native types
-| (typically `float' and `double', and possibly `long double').
+| (typically 'float' and 'double', and possibly 'long double').
*----------------------------------------------------------------------------*/
typedef struct { uint16_t v; } float16_t;
typedef struct { uint32_t v; } float32_t;
@@ -54,8 +54,8 @@ typedef struct { uint64_t v[2]; } float128_t;
/*----------------------------------------------------------------------------
| The format of an 80-bit extended floating-point number in memory. This
-| structure must contain a 16-bit field named `signExp' and a 64-bit field
-| named `signif'.
+| structure must contain a 16-bit field named 'signExp' and a 64-bit field
+| named 'signif'.
*----------------------------------------------------------------------------*/
#ifdef LITTLEENDIAN
struct extFloat80M { uint64_t signif; uint16_t signExp; };
@@ -66,12 +66,12 @@ struct extFloat80M { uint16_t signExp; uint64_t signif; };
/*----------------------------------------------------------------------------
| The type used to pass 80-bit extended floating-point arguments and
| results to/from functions. This type must have size identical to
-| `struct extFloat80M'. Type `extFloat80_t' can be defined as an alias for
-| `struct extFloat80M'. Alternatively, if a platform has "native" support
+| 'struct extFloat80M'. Type 'extFloat80_t' can be defined as an alias for
+| 'struct extFloat80M'. Alternatively, if a platform has "native" support
| for IEEE-Standard 80-bit extended floating-point, it may be possible,
-| if desired, to define `extFloat80_t' as an alias for the native type
-| (presumably either `long double' or a nonstandard compiler-intrinsic type).
-| In that case, the `signif' and `signExp' fields of `struct extFloat80M'
+| if desired, to define 'extFloat80_t' as an alias for the native type
+| (presumably either 'long double' or a nonstandard compiler-intrinsic type).
+| In that case, the 'signif' and 'signExp' fields of 'struct extFloat80M'
| must align exactly with the locations in memory of the sign, exponent, and
| significand of the native type.
*----------------------------------------------------------------------------*/
diff --git a/source/s_add128.c b/source/s_add128.c
index a8e3e47..d556dc9 100644
--- a/source/s_add128.c
+++ b/source/s_add128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_add256M.c b/source/s_add256M.c
index 8328e70..c60e6e8 100644
--- a/source/s_add256M.c
+++ b/source/s_add256M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_addCarryM.c b/source/s_addCarryM.c
index d798c93..fa81646 100644
--- a/source/s_addCarryM.c
+++ b/source/s_addCarryM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_addComplCarryM.c b/source/s_addComplCarryM.c
index 5a342c6..24cc798 100644
--- a/source/s_addComplCarryM.c
+++ b/source/s_addComplCarryM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_addExtF80M.c b/source/s_addExtF80M.c
index 7abdcd2..40607fb 100644
--- a/source/s_addExtF80M.c
+++ b/source/s_addExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/s_addF128M.c b/source/s_addF128M.c
index 4d6b299..e14ef39 100644
--- a/source/s_addF128M.c
+++ b/source/s_addF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/s_addM.c b/source/s_addM.c
index 66a2ccf..45e1751 100644
--- a/source/s_addM.c
+++ b/source/s_addM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_addMagsExtF80.c b/source/s_addMagsExtF80.c
index b0a0ccb..a889f59 100644
--- a/source/s_addMagsExtF80.c
+++ b/source/s_addMagsExtF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/s_addMagsF128.c b/source/s_addMagsF128.c
index 0d8b36a..2bb9871 100644
--- a/source/s_addMagsF128.c
+++ b/source/s_addMagsF128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/s_addMagsF16.c b/source/s_addMagsF16.c
index 43ae655..05644ac 100644
--- a/source/s_addMagsF16.c
+++ b/source/s_addMagsF16.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -163,6 +163,11 @@ float16_t softfloat_addMagsF16( uint_fast16_t uiA, uint_fast16_t uiB )
softfloat_flag_overflow | softfloat_flag_inexact );
}
}
+#ifdef SOFTFLOAT_ROUND_ODD
+ else if ( roundingMode == softfloat_round_odd ) {
+ uiZ |= 1;
+ }
+#endif
}
softfloat_exceptionFlags |= softfloat_flag_inexact;
goto uiZ;
diff --git a/source/s_addMagsF32.c b/source/s_addMagsF32.c
index 01a1877..8ae001d 100644
--- a/source/s_addMagsF32.c
+++ b/source/s_addMagsF32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_addMagsF64.c b/source/s_addMagsF64.c
index 72c1dd0..53a6ece 100644
--- a/source/s_addMagsF64.c
+++ b/source/s_addMagsF64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_approxRecip32_1.c b/source/s_approxRecip32_1.c
index e3ecb46..2fb603a 100644
--- a/source/s_approxRecip32_1.c
+++ b/source/s_approxRecip32_1.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_approxRecipSqrt32_1.c b/source/s_approxRecipSqrt32_1.c
index 86598d6..959c444 100644
--- a/source/s_approxRecipSqrt32_1.c
+++ b/source/s_approxRecipSqrt32_1.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_approxRecipSqrt_1Ks.c b/source/s_approxRecipSqrt_1Ks.c
index b6b5de9..9cd9f2e 100644
--- a/source/s_approxRecipSqrt_1Ks.c
+++ b/source/s_approxRecipSqrt_1Ks.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_approxRecip_1Ks.c b/source/s_approxRecip_1Ks.c
index 52d41f1..a9b1646 100644
--- a/source/s_approxRecip_1Ks.c
+++ b/source/s_approxRecip_1Ks.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_compare128M.c b/source/s_compare128M.c
index f61706d..905b595 100644
--- a/source/s_compare128M.c
+++ b/source/s_compare128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_compare96M.c b/source/s_compare96M.c
index 3928fb1..bb2642a 100644
--- a/source/s_compare96M.c
+++ b/source/s_compare96M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_compareNonnormExtF80M.c b/source/s_compareNonnormExtF80M.c
index c528024..ca3ad7a 100644
--- a/source/s_compareNonnormExtF80M.c
+++ b/source/s_compareNonnormExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/s_countLeadingZeros16.c b/source/s_countLeadingZeros16.c
index 5ae3f74..0b9faa6 100644
--- a/source/s_countLeadingZeros16.c
+++ b/source/s_countLeadingZeros16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_countLeadingZeros32.c b/source/s_countLeadingZeros32.c
index fb81de3..c85c3a8 100644
--- a/source/s_countLeadingZeros32.c
+++ b/source/s_countLeadingZeros32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_countLeadingZeros64.c b/source/s_countLeadingZeros64.c
index 4358830..f1c7245 100644
--- a/source/s_countLeadingZeros64.c
+++ b/source/s_countLeadingZeros64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_countLeadingZeros8.c b/source/s_countLeadingZeros8.c
index 038d3ca..3006dba 100644
--- a/source/s_countLeadingZeros8.c
+++ b/source/s_countLeadingZeros8.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/s_eq128.c b/source/s_eq128.c
index e3d71d8..0a90ed3 100644
--- a/source/s_eq128.c
+++ b/source/s_eq128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_invalidExtF80M.c b/source/s_invalidExtF80M.c
index dcda117..6cbada2 100644
--- a/source/s_invalidExtF80M.c
+++ b/source/s_invalidExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/s_invalidF128M.c b/source/s_invalidF128M.c
index ab1dc2b..acf3d12 100644
--- a/source/s_invalidF128M.c
+++ b/source/s_invalidF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/s_isNaNF128M.c b/source/s_isNaNF128M.c
index 6e11f1d..5d35e4b 100644
--- a/source/s_isNaNF128M.c
+++ b/source/s_isNaNF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_le128.c b/source/s_le128.c
index 5b8cf75..1a89490 100644
--- a/source/s_le128.c
+++ b/source/s_le128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_lt128.c b/source/s_lt128.c
index 398ea48..4a40ee4 100644
--- a/source/s_lt128.c
+++ b/source/s_lt128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_mul128By32.c b/source/s_mul128By32.c
index 7cf071c..95d31be 100644
--- a/source/s_mul128By32.c
+++ b/source/s_mul128By32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_mul128MTo256M.c b/source/s_mul128MTo256M.c
index ab7ac05..8c0526c 100644
--- a/source/s_mul128MTo256M.c
+++ b/source/s_mul128MTo256M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_mul128To256M.c b/source/s_mul128To256M.c
index ece78f0..264af02 100644
--- a/source/s_mul128To256M.c
+++ b/source/s_mul128To256M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_mul64ByShifted32To128.c b/source/s_mul64ByShifted32To128.c
index 6a9ce82..f2fd8c2 100644
--- a/source/s_mul64ByShifted32To128.c
+++ b/source/s_mul64ByShifted32To128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_mul64To128.c b/source/s_mul64To128.c
index 3364259..f45e9fd 100644
--- a/source/s_mul64To128.c
+++ b/source/s_mul64To128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_mul64To128M.c b/source/s_mul64To128M.c
index a7522f8..97f4c31 100644
--- a/source/s_mul64To128M.c
+++ b/source/s_mul64To128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_mulAddF128.c b/source/s_mulAddF128.c
index df2b6f6..7364828 100644
--- a/source/s_mulAddF128.c
+++ b/source/s_mulAddF128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_mulAddF128M.c b/source/s_mulAddF128M.c
index 9c9b13f..2ef708d 100644
--- a/source/s_mulAddF128M.c
+++ b/source/s_mulAddF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_mulAddF16.c b/source/s_mulAddF16.c
index 541a395..342224f 100644
--- a/source/s_mulAddF16.c
+++ b/source/s_mulAddF16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_mulAddF32.c b/source/s_mulAddF32.c
index 5da769f..211e969 100644
--- a/source/s_mulAddF32.c
+++ b/source/s_mulAddF32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_mulAddF64.c b/source/s_mulAddF64.c
index b5de29b..c189e69 100644
--- a/source/s_mulAddF64.c
+++ b/source/s_mulAddF64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_negXM.c b/source/s_negXM.c
index 21a8bfb..10047ed 100644
--- a/source/s_negXM.c
+++ b/source/s_negXM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_normExtF80SigM.c b/source/s_normExtF80SigM.c
index 0fc70a0..7083ffa 100644
--- a/source/s_normExtF80SigM.c
+++ b/source/s_normExtF80SigM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_normRoundPackMToExtF80M.c b/source/s_normRoundPackMToExtF80M.c
index 51845c5..ca81b9c 100644
--- a/source/s_normRoundPackMToExtF80M.c
+++ b/source/s_normRoundPackMToExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_normRoundPackMToF128M.c b/source/s_normRoundPackMToF128M.c
index f7085f2..631f7cd 100644
--- a/source/s_normRoundPackMToF128M.c
+++ b/source/s_normRoundPackMToF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_normRoundPackToExtF80.c b/source/s_normRoundPackToExtF80.c
index 36a11a2..34bbef3 100644
--- a/source/s_normRoundPackToExtF80.c
+++ b/source/s_normRoundPackToExtF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_normRoundPackToF128.c b/source/s_normRoundPackToF128.c
index 1142422..d7c7aa7 100644
--- a/source/s_normRoundPackToF128.c
+++ b/source/s_normRoundPackToF128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_normRoundPackToF16.c b/source/s_normRoundPackToF16.c
index 32de028..24c0c3b 100644
--- a/source/s_normRoundPackToF16.c
+++ b/source/s_normRoundPackToF16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_normRoundPackToF32.c b/source/s_normRoundPackToF32.c
index 296ce6e..1cfda60 100644
--- a/source/s_normRoundPackToF32.c
+++ b/source/s_normRoundPackToF32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_normRoundPackToF64.c b/source/s_normRoundPackToF64.c
index aa42570..ce7a3b5 100644
--- a/source/s_normRoundPackToF64.c
+++ b/source/s_normRoundPackToF64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_normSubnormalExtF80Sig.c b/source/s_normSubnormalExtF80Sig.c
index 7826b6c..f469b99 100644
--- a/source/s_normSubnormalExtF80Sig.c
+++ b/source/s_normSubnormalExtF80Sig.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_normSubnormalF128Sig.c b/source/s_normSubnormalF128Sig.c
index c58091e..05de931 100644
--- a/source/s_normSubnormalF128Sig.c
+++ b/source/s_normSubnormalF128Sig.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_normSubnormalF128SigM.c b/source/s_normSubnormalF128SigM.c
index 284a92f..4ce79df 100644
--- a/source/s_normSubnormalF128SigM.c
+++ b/source/s_normSubnormalF128SigM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_normSubnormalF16Sig.c b/source/s_normSubnormalF16Sig.c
index 1e91114..e98434f 100644
--- a/source/s_normSubnormalF16Sig.c
+++ b/source/s_normSubnormalF16Sig.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_normSubnormalF32Sig.c b/source/s_normSubnormalF32Sig.c
index 1e1220c..2c76aff 100644
--- a/source/s_normSubnormalF32Sig.c
+++ b/source/s_normSubnormalF32Sig.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_normSubnormalF64Sig.c b/source/s_normSubnormalF64Sig.c
index ac5ac96..cb78b86 100644
--- a/source/s_normSubnormalF64Sig.c
+++ b/source/s_normSubnormalF64Sig.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_remStepMBy32.c b/source/s_remStepMBy32.c
index 2849d94..7f62dba 100644
--- a/source/s_remStepMBy32.c
+++ b/source/s_remStepMBy32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_roundPackMToI64.c b/source/s_roundMToI64.c
index d49155a..76b935c 100644
--- a/source/s_roundPackMToI64.c
+++ b/source/s_roundMToI64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -42,7 +42,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "softfloat.h"
int_fast64_t
- softfloat_roundPackMToI64(
+ softfloat_roundMToI64(
bool sign, uint32_t *extSigPtr, uint_fast8_t roundingMode, bool exact )
{
bool roundNearEven;
diff --git a/source/s_roundPackMToUI64.c b/source/s_roundMToUI64.c
index 664e145..f3fd00e 100644
--- a/source/s_roundPackMToUI64.c
+++ b/source/s_roundMToUI64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -42,7 +42,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "softfloat.h"
uint_fast64_t
- softfloat_roundPackMToUI64(
+ softfloat_roundMToUI64(
bool sign, uint32_t *extSigPtr, uint_fast8_t roundingMode, bool exact )
{
bool roundNearEven;
diff --git a/source/s_roundPackMToExtF80M.c b/source/s_roundPackMToExtF80M.c
index 2326054..f03cc7d 100644
--- a/source/s_roundPackMToExtF80M.c
+++ b/source/s_roundPackMToExtF80M.c
@@ -2,9 +2,9 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+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
@@ -88,6 +88,8 @@ void
*------------------------------------------------------------------------*/
if ( 0x7FFD <= (uint32_t) (exp - 1) ) {
if ( exp <= 0 ) {
+ /*----------------------------------------------------------------
+ *----------------------------------------------------------------*/
isTiny =
(softfloat_detectTininess
== softfloat_tininess_beforeRounding)
@@ -98,6 +100,11 @@ void
if ( roundBits ) {
if ( isTiny ) softfloat_raiseFlags( softfloat_flag_underflow );
softfloat_exceptionFlags |= softfloat_flag_inexact;
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) {
+ sig |= roundMask + 1;
+ }
+#endif
}
sig += roundIncrement;
exp = ((sig & UINT64_C( 0x8000000000000000 )) != 0);
@@ -117,7 +124,15 @@ void
}
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
- if ( roundBits ) softfloat_exceptionFlags |= softfloat_flag_inexact;
+ if ( roundBits ) {
+ softfloat_exceptionFlags |= softfloat_flag_inexact;
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) {
+ sig = (sig & ~roundMask) | (roundMask + 1);
+ goto packReturn;
+ }
+#endif
+ }
sig += roundIncrement;
if ( sig < roundIncrement ) {
++exp;
@@ -143,9 +158,9 @@ void
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
if ( 0x7FFD <= (uint32_t) (exp - 1) ) {
- /*--------------------------------------------------------------------
- *--------------------------------------------------------------------*/
if ( exp <= 0 ) {
+ /*----------------------------------------------------------------
+ *----------------------------------------------------------------*/
isTiny =
(softfloat_detectTininess
== softfloat_tininess_beforeRounding)
@@ -153,25 +168,31 @@ void
|| ! doIncrement
|| (sig < UINT64_C( 0xFFFFFFFFFFFFFFFF ));
softfloat_shiftRightJam96M( extSigPtr, 1 - exp, extSigPtr );
+ exp = 0;
+ sig =
+ (uint64_t) extSigPtr[indexWord( 3, 2 )]<<32
+ | extSigPtr[indexWord( 3, 1 )];
sigExtra = extSigPtr[indexWordLo( 3 )];
if ( sigExtra ) {
if ( isTiny ) softfloat_raiseFlags( softfloat_flag_underflow );
softfloat_exceptionFlags |= softfloat_flag_inexact;
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) {
+ sig |= 1;
+ goto packReturn;
+ }
+#endif
}
doIncrement = (0x80000000 <= sigExtra);
if (
- ! roundNearEven
- && (roundingMode != softfloat_round_near_maxMag)
+ ! roundNearEven
+ && (roundingMode != softfloat_round_near_maxMag)
) {
doIncrement =
(roundingMode
== (sign ? softfloat_round_min : softfloat_round_max))
&& sigExtra;
}
- exp = 0;
- sig =
- (uint64_t) extSigPtr[indexWord( 3, 2 )]<<32
- | extSigPtr[indexWord( 3, 1 )];
if ( doIncrement ) {
++sig;
sig &= ~(uint64_t) (! (sigExtra & 0x7FFFFFFF) & roundNearEven);
@@ -179,13 +200,13 @@ void
}
goto packReturn;
}
- /*--------------------------------------------------------------------
- *--------------------------------------------------------------------*/
if (
(0x7FFE < exp)
|| ((exp == 0x7FFE) && (sig == UINT64_C( 0xFFFFFFFFFFFFFFFF ))
&& doIncrement)
) {
+ /*----------------------------------------------------------------
+ *----------------------------------------------------------------*/
roundMask = 0;
overflow:
softfloat_raiseFlags(
@@ -207,7 +228,15 @@ void
}
/*------------------------------------------------------------------------
*------------------------------------------------------------------------*/
- if ( sigExtra ) softfloat_exceptionFlags |= softfloat_flag_inexact;
+ if ( sigExtra ) {
+ softfloat_exceptionFlags |= softfloat_flag_inexact;
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) {
+ sig |= 1;
+ goto packReturn;
+ }
+#endif
+ }
if ( doIncrement ) {
++sig;
if ( ! sig ) {
diff --git a/source/s_roundPackMToF128M.c b/source/s_roundPackMToF128M.c
index f36ca8d..e66e557 100644
--- a/source/s_roundPackMToF128M.c
+++ b/source/s_roundPackMToF128M.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+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:
@@ -52,6 +52,8 @@ void
INIT_UINTM4( 0x0001FFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF );
uint32_t ui, uj;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
roundingMode = softfloat_roundingMode;
roundNearEven = (roundingMode == softfloat_round_near_even);
sigExtra = extSigPtr[indexWordLo( 5 )];
@@ -62,8 +64,12 @@ void
== (sign ? softfloat_round_min : softfloat_round_max))
&& sigExtra;
}
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
if ( 0x7FFD <= (uint32_t) exp ) {
if ( exp < 0 ) {
+ /*----------------------------------------------------------------
+ *----------------------------------------------------------------*/
isTiny =
(softfloat_detectTininess
== softfloat_tininess_beforeRounding)
@@ -95,6 +101,8 @@ void
extSigPtr + indexMultiwordHi( 5, 4 ), maxSig )
== 0))
) {
+ /*----------------------------------------------------------------
+ *----------------------------------------------------------------*/
softfloat_raiseFlags(
softfloat_flag_overflow | softfloat_flag_inexact );
if (
@@ -116,8 +124,18 @@ void
return;
}
}
- if ( sigExtra ) softfloat_exceptionFlags |= softfloat_flag_inexact;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
uj = extSigPtr[indexWord( 5, 1 )];
+ if ( sigExtra ) {
+ softfloat_exceptionFlags |= softfloat_flag_inexact;
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) {
+ uj |= 1;
+ goto noIncrementPackReturn;
+ }
+#endif
+ }
if ( doIncrement ) {
++uj;
if ( uj ) {
@@ -142,6 +160,7 @@ void
}
}
} else {
+ noIncrementPackReturn:
zWPtr[indexWord( 4, 0 )] = uj;
ui = extSigPtr[indexWord( 5, 2 )];
zWPtr[indexWord( 4, 1 )] = ui;
diff --git a/source/s_roundPackToExtF80.c b/source/s_roundPackToExtF80.c
index d06d57d..e144aea 100644
--- a/source/s_roundPackToExtF80.c
+++ b/source/s_roundPackToExtF80.c
@@ -2,9 +2,9 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+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
@@ -56,6 +56,8 @@ extFloat80_t
struct uint64_extra sig64Extra;
union { struct extFloat80M s; extFloat80_t f; } uZ;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
roundingMode = softfloat_roundingMode;
roundNearEven = (roundingMode == softfloat_round_near_even);
if ( roundingPrecision == 80 ) goto precision80;
@@ -77,8 +79,12 @@ extFloat80_t
: 0;
}
roundBits = sig & roundMask;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
if ( 0x7FFD <= (uint32_t) (exp - 1) ) {
if ( exp <= 0 ) {
+ /*----------------------------------------------------------------
+ *----------------------------------------------------------------*/
isTiny =
(softfloat_detectTininess
== softfloat_tininess_beforeRounding)
@@ -86,11 +92,14 @@ extFloat80_t
|| (sig <= (uint64_t) (sig + roundIncrement));
sig = softfloat_shiftRightJam64( sig, 1 - exp );
roundBits = sig & roundMask;
- if ( isTiny && roundBits ) {
- softfloat_raiseFlags( softfloat_flag_underflow );
- }
if ( roundBits ) {
+ if ( isTiny ) softfloat_raiseFlags( softfloat_flag_underflow );
softfloat_exceptionFlags |= softfloat_flag_inexact;
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) {
+ sig |= roundMask + 1;
+ }
+#endif
}
sig += roundIncrement;
exp = ((sig & UINT64_C( 0x8000000000000000 )) != 0);
@@ -108,7 +117,17 @@ extFloat80_t
goto overflow;
}
}
- if ( roundBits ) softfloat_exceptionFlags |= softfloat_flag_inexact;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
+ if ( roundBits ) {
+ softfloat_exceptionFlags |= softfloat_flag_inexact;
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) {
+ sig = (sig & ~roundMask) | (roundMask + 1);
+ goto packReturn;
+ }
+#endif
+ }
sig = (uint64_t) (sig + roundIncrement);
if ( sig < roundIncrement ) {
++exp;
@@ -119,8 +138,9 @@ extFloat80_t
roundMask |= roundIncrement;
}
sig &= ~roundMask;
- if ( ! sig ) exp = 0;
goto packReturn;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
precision80:
doIncrement = (UINT64_C( 0x8000000000000000 ) <= sigExtra);
if ( ! roundNearEven && (roundingMode != softfloat_round_near_maxMag) ) {
@@ -129,8 +149,12 @@ extFloat80_t
== (sign ? softfloat_round_min : softfloat_round_max))
&& sigExtra;
}
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
if ( 0x7FFD <= (uint32_t) (exp - 1) ) {
if ( exp <= 0 ) {
+ /*----------------------------------------------------------------
+ *----------------------------------------------------------------*/
isTiny =
(softfloat_detectTininess
== softfloat_tininess_beforeRounding)
@@ -139,23 +163,29 @@ extFloat80_t
|| (sig < UINT64_C( 0xFFFFFFFFFFFFFFFF ));
sig64Extra =
softfloat_shiftRightJam64Extra( sig, sigExtra, 1 - exp );
+ exp = 0;
sig = sig64Extra.v;
sigExtra = sig64Extra.extra;
- if ( isTiny && sigExtra ) {
- softfloat_raiseFlags( softfloat_flag_underflow );
+ if ( sigExtra ) {
+ if ( isTiny ) softfloat_raiseFlags( softfloat_flag_underflow );
+ softfloat_exceptionFlags |= softfloat_flag_inexact;
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) {
+ sig |= 1;
+ goto packReturn;
+ }
+#endif
}
- if ( sigExtra ) softfloat_exceptionFlags |= softfloat_flag_inexact;
doIncrement = (UINT64_C( 0x8000000000000000 ) <= sigExtra);
if (
- ! roundNearEven
- && (roundingMode != softfloat_round_near_maxMag)
+ ! roundNearEven
+ && (roundingMode != softfloat_round_near_maxMag)
) {
doIncrement =
(roundingMode
== (sign ? softfloat_round_min : softfloat_round_max))
&& sigExtra;
}
- exp = 0;
if ( doIncrement ) {
++sig;
sig &=
@@ -171,6 +201,8 @@ extFloat80_t
|| ((exp == 0x7FFE) && (sig == UINT64_C( 0xFFFFFFFFFFFFFFFF ))
&& doIncrement)
) {
+ /*----------------------------------------------------------------
+ *----------------------------------------------------------------*/
roundMask = 0;
overflow:
softfloat_raiseFlags(
@@ -190,7 +222,17 @@ extFloat80_t
goto packReturn;
}
}
- if ( sigExtra ) softfloat_exceptionFlags |= softfloat_flag_inexact;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
+ if ( sigExtra ) {
+ softfloat_exceptionFlags |= softfloat_flag_inexact;
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) {
+ sig |= 1;
+ goto packReturn;
+ }
+#endif
+ }
if ( doIncrement ) {
++sig;
if ( ! sig ) {
@@ -202,9 +244,9 @@ extFloat80_t
(! (sigExtra & UINT64_C( 0x7FFFFFFFFFFFFFFF ))
& roundNearEven);
}
- } else {
- if ( ! sig ) exp = 0;
}
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
packReturn:
uZ.s.signExp = packToExtF80UI64( sign, exp );
uZ.s.signif = sig;
diff --git a/source/s_roundPackToF128.c b/source/s_roundPackToF128.c
index 5ab5e5f..8f6d732 100644
--- a/source/s_roundPackToF128.c
+++ b/source/s_roundPackToF128.c
@@ -2,9 +2,9 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+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
@@ -56,6 +56,8 @@ float128_t
struct uint128 sig128;
union ui128_f128 uZ;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
roundingMode = softfloat_roundingMode;
roundNearEven = (roundingMode == softfloat_round_near_even);
doIncrement = (UINT64_C( 0x8000000000000000 ) <= sigExtra);
@@ -65,8 +67,12 @@ float128_t
== (sign ? softfloat_round_min : softfloat_round_max))
&& sigExtra;
}
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
if ( 0x7FFD <= (uint32_t) exp ) {
if ( exp < 0 ) {
+ /*----------------------------------------------------------------
+ *----------------------------------------------------------------*/
isTiny =
(softfloat_detectTininess
== softfloat_tininess_beforeRounding)
@@ -108,6 +114,8 @@ float128_t
)
&& doIncrement)
) {
+ /*----------------------------------------------------------------
+ *----------------------------------------------------------------*/
softfloat_raiseFlags(
softfloat_flag_overflow | softfloat_flag_inexact );
if (
@@ -127,7 +135,17 @@ float128_t
goto uiZ;
}
}
- if ( sigExtra ) softfloat_exceptionFlags |= softfloat_flag_inexact;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
+ if ( sigExtra ) {
+ softfloat_exceptionFlags |= softfloat_flag_inexact;
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) {
+ sig0 |= 1;
+ goto packReturn;
+ }
+#endif
+ }
if ( doIncrement ) {
sig128 = softfloat_add128( sig64, sig0, 0, 1 );
sig64 = sig128.v64;
@@ -139,6 +157,9 @@ float128_t
} else {
if ( ! (sig64 | sig0) ) exp = 0;
}
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
+ packReturn:
uiZ64 = packToF128UI64( sign, exp, sig64 );
uiZ0 = sig0;
uiZ:
diff --git a/source/s_roundPackToF16.c b/source/s_roundPackToF16.c
index f85b0bd..b37580a 100644
--- a/source/s_roundPackToF16.c
+++ b/source/s_roundPackToF16.c
@@ -2,9 +2,9 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+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
@@ -50,6 +50,8 @@ float16_t
uint_fast16_t uiZ;
union ui16_f16 uZ;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
roundingMode = softfloat_roundingMode;
roundNearEven = (roundingMode == softfloat_round_near_even);
roundIncrement = 0x8;
@@ -61,8 +63,12 @@ float16_t
: 0;
}
roundBits = sig & 0xF;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
if ( 0x1D <= (unsigned int) exp ) {
if ( exp < 0 ) {
+ /*----------------------------------------------------------------
+ *----------------------------------------------------------------*/
isTiny =
(softfloat_detectTininess == softfloat_tininess_beforeRounding)
|| (exp < -1) || (sig + roundIncrement < 0x8000);
@@ -73,16 +79,32 @@ float16_t
softfloat_raiseFlags( softfloat_flag_underflow );
}
} else if ( (0x1D < exp) || (0x8000 <= sig + roundIncrement) ) {
+ /*----------------------------------------------------------------
+ *----------------------------------------------------------------*/
softfloat_raiseFlags(
softfloat_flag_overflow | softfloat_flag_inexact );
uiZ = packToF16UI( sign, 0x1F, 0 ) - ! roundIncrement;
goto uiZ;
}
}
- if ( roundBits ) softfloat_exceptionFlags |= softfloat_flag_inexact;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
sig = (sig + roundIncrement)>>4;
+ if ( roundBits ) {
+ softfloat_exceptionFlags |= softfloat_flag_inexact;
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) {
+ sig |= 1;
+ goto packReturn;
+ }
+#endif
+ }
sig &= ~(uint_fast16_t) (! (roundBits ^ 8) & roundNearEven);
- uiZ = packToF16UI( sign, sig ? exp : 0, sig );
+ if ( ! sig ) exp = 0;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
+ packReturn:
+ uiZ = packToF16UI( sign, exp, sig );
uiZ:
uZ.ui = uiZ;
return uZ.f;
diff --git a/source/s_roundPackToF32.c b/source/s_roundPackToF32.c
index aa4638d..beef642 100644
--- a/source/s_roundPackToF32.c
+++ b/source/s_roundPackToF32.c
@@ -2,9 +2,9 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+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
@@ -50,6 +50,8 @@ float32_t
uint_fast32_t uiZ;
union ui32_f32 uZ;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
roundingMode = softfloat_roundingMode;
roundNearEven = (roundingMode == softfloat_round_near_even);
roundIncrement = 0x40;
@@ -61,8 +63,12 @@ float32_t
: 0;
}
roundBits = sig & 0x7F;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
if ( 0xFD <= (unsigned int) exp ) {
if ( exp < 0 ) {
+ /*----------------------------------------------------------------
+ *----------------------------------------------------------------*/
isTiny =
(softfloat_detectTininess == softfloat_tininess_beforeRounding)
|| (exp < -1) || (sig + roundIncrement < 0x80000000);
@@ -73,16 +79,32 @@ float32_t
softfloat_raiseFlags( softfloat_flag_underflow );
}
} else if ( (0xFD < exp) || (0x80000000 <= sig + roundIncrement) ) {
+ /*----------------------------------------------------------------
+ *----------------------------------------------------------------*/
softfloat_raiseFlags(
softfloat_flag_overflow | softfloat_flag_inexact );
uiZ = packToF32UI( sign, 0xFF, 0 ) - ! roundIncrement;
goto uiZ;
}
}
- if ( roundBits ) softfloat_exceptionFlags |= softfloat_flag_inexact;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
sig = (sig + roundIncrement)>>7;
+ if ( roundBits ) {
+ softfloat_exceptionFlags |= softfloat_flag_inexact;
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) {
+ sig |= 1;
+ goto packReturn;
+ }
+#endif
+ }
sig &= ~(uint_fast32_t) (! (roundBits ^ 0x40) & roundNearEven);
- uiZ = packToF32UI( sign, sig ? exp : 0, sig );
+ if ( ! sig ) exp = 0;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
+ packReturn:
+ uiZ = packToF32UI( sign, exp, sig );
uiZ:
uZ.ui = uiZ;
return uZ.f;
diff --git a/source/s_roundPackToF64.c b/source/s_roundPackToF64.c
index 158192b..9007554 100644
--- a/source/s_roundPackToF64.c
+++ b/source/s_roundPackToF64.c
@@ -2,9 +2,9 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
-Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
+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
@@ -50,6 +50,8 @@ float64_t
uint_fast64_t uiZ;
union ui64_f64 uZ;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
roundingMode = softfloat_roundingMode;
roundNearEven = (roundingMode == softfloat_round_near_even);
roundIncrement = 0x200;
@@ -61,8 +63,12 @@ float64_t
: 0;
}
roundBits = sig & 0x3FF;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
if ( 0x7FD <= (uint16_t) exp ) {
if ( exp < 0 ) {
+ /*----------------------------------------------------------------
+ *----------------------------------------------------------------*/
isTiny =
(softfloat_detectTininess == softfloat_tininess_beforeRounding)
|| (exp < -1)
@@ -77,16 +83,32 @@ float64_t
(0x7FD < exp)
|| (UINT64_C( 0x8000000000000000 ) <= sig + roundIncrement)
) {
+ /*----------------------------------------------------------------
+ *----------------------------------------------------------------*/
softfloat_raiseFlags(
softfloat_flag_overflow | softfloat_flag_inexact );
uiZ = packToF64UI( sign, 0x7FF, 0 ) - ! roundIncrement;
goto uiZ;
}
}
- if ( roundBits ) softfloat_exceptionFlags |= softfloat_flag_inexact;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
sig = (sig + roundIncrement)>>10;
+ if ( roundBits ) {
+ softfloat_exceptionFlags |= softfloat_flag_inexact;
+#ifdef SOFTFLOAT_ROUND_ODD
+ if ( roundingMode == softfloat_round_odd ) {
+ sig |= 1;
+ goto packReturn;
+ }
+#endif
+ }
sig &= ~(uint_fast64_t) (! (roundBits ^ 0x200) & roundNearEven);
- uiZ = packToF64UI( sign, sig ? exp : 0, sig );
+ if ( ! sig ) exp = 0;
+ /*------------------------------------------------------------------------
+ *------------------------------------------------------------------------*/
+ packReturn:
+ uiZ = packToF64UI( sign, exp, sig );
uiZ:
uZ.ui = uiZ;
return uZ.f;
diff --git a/source/s_roundPackToI32.c b/source/s_roundToI32.c
index e0bf4f4..634b100 100644
--- a/source/s_roundPackToI32.c
+++ b/source/s_roundToI32.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -42,7 +42,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "softfloat.h"
int_fast32_t
- softfloat_roundPackToI32(
+ softfloat_roundToI32(
bool sign, uint_fast64_t sig, uint_fast8_t roundingMode, bool exact )
{
bool roundNearEven;
diff --git a/source/s_roundPackToI64.c b/source/s_roundToI64.c
index a420826..0d60a18 100644
--- a/source/s_roundPackToI64.c
+++ b/source/s_roundToI64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -42,7 +42,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "softfloat.h"
int_fast64_t
- softfloat_roundPackToI64(
+ softfloat_roundToI64(
bool sign,
uint_fast64_t sig,
uint_fast64_t sigExtra,
diff --git a/source/s_roundPackToUI32.c b/source/s_roundToUI32.c
index 22734aa..b8b6882 100644
--- a/source/s_roundPackToUI32.c
+++ b/source/s_roundToUI32.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -42,7 +42,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "softfloat.h"
uint_fast32_t
- softfloat_roundPackToUI32(
+ softfloat_roundToUI32(
bool sign, uint_fast64_t sig, uint_fast8_t roundingMode, bool exact )
{
bool roundNearEven;
diff --git a/source/s_roundPackToUI64.c b/source/s_roundToUI64.c
index ed41153..4bcf423 100644
--- a/source/s_roundPackToUI64.c
+++ b/source/s_roundToUI64.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -42,7 +42,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "softfloat.h"
uint_fast64_t
- softfloat_roundPackToUI64(
+ softfloat_roundToUI64(
bool sign,
uint_fast64_t sig,
uint_fast64_t sigExtra,
diff --git a/source/s_shiftLeftM.c b/source/s_shiftLeftM.c
index de12610..ad84636 100644
--- a/source/s_shiftLeftM.c
+++ b/source/s_shiftLeftM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shiftNormSigF128M.c b/source/s_shiftNormSigF128M.c
index ddd913c..ad8e45d 100644
--- a/source/s_shiftNormSigF128M.c
+++ b/source/s_shiftNormSigF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shiftRightJam128.c b/source/s_shiftRightJam128.c
index ad6018e..0f2d1c1 100644
--- a/source/s_shiftRightJam128.c
+++ b/source/s_shiftRightJam128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shiftRightJam128Extra.c b/source/s_shiftRightJam128Extra.c
index ead9448..5576ec3 100644
--- a/source/s_shiftRightJam128Extra.c
+++ b/source/s_shiftRightJam128Extra.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shiftRightJam256M.c b/source/s_shiftRightJam256M.c
index ec25b55..9ad5ebb 100644
--- a/source/s_shiftRightJam256M.c
+++ b/source/s_shiftRightJam256M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shiftRightJam32.c b/source/s_shiftRightJam32.c
index a413d1a..463a21a 100644
--- a/source/s_shiftRightJam32.c
+++ b/source/s_shiftRightJam32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shiftRightJam64.c b/source/s_shiftRightJam64.c
index 240d64f..c0efc7a 100644
--- a/source/s_shiftRightJam64.c
+++ b/source/s_shiftRightJam64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shiftRightJam64Extra.c b/source/s_shiftRightJam64Extra.c
index ff961b1..69be3f8 100644
--- a/source/s_shiftRightJam64Extra.c
+++ b/source/s_shiftRightJam64Extra.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shiftRightJamM.c b/source/s_shiftRightJamM.c
index 0fc7bb1..ff54099 100644
--- a/source/s_shiftRightJamM.c
+++ b/source/s_shiftRightJamM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shiftRightM.c b/source/s_shiftRightM.c
index 6256235..19a6375 100644
--- a/source/s_shiftRightM.c
+++ b/source/s_shiftRightM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shortShiftLeft128.c b/source/s_shortShiftLeft128.c
index 030c7b4..9bd6da5 100644
--- a/source/s_shortShiftLeft128.c
+++ b/source/s_shortShiftLeft128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shortShiftLeft64To96M.c b/source/s_shortShiftLeft64To96M.c
index 9890705..1d48ff7 100644
--- a/source/s_shortShiftLeft64To96M.c
+++ b/source/s_shortShiftLeft64To96M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shortShiftLeftM.c b/source/s_shortShiftLeftM.c
index 701b1b0..aaecf89 100644
--- a/source/s_shortShiftLeftM.c
+++ b/source/s_shortShiftLeftM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shortShiftRight128.c b/source/s_shortShiftRight128.c
index 352cebb..e56e625 100644
--- a/source/s_shortShiftRight128.c
+++ b/source/s_shortShiftRight128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shortShiftRightExtendM.c b/source/s_shortShiftRightExtendM.c
index e602331..0c16176 100644
--- a/source/s_shortShiftRightExtendM.c
+++ b/source/s_shortShiftRightExtendM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shortShiftRightJam128.c b/source/s_shortShiftRightJam128.c
index 777c41a..a0b4480 100644
--- a/source/s_shortShiftRightJam128.c
+++ b/source/s_shortShiftRightJam128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shortShiftRightJam128Extra.c b/source/s_shortShiftRightJam128Extra.c
index 32246e7..c64331b 100644
--- a/source/s_shortShiftRightJam128Extra.c
+++ b/source/s_shortShiftRightJam128Extra.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shortShiftRightJam64.c b/source/s_shortShiftRightJam64.c
index 002581d..c9236a0 100644
--- a/source/s_shortShiftRightJam64.c
+++ b/source/s_shortShiftRightJam64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shortShiftRightJam64Extra.c b/source/s_shortShiftRightJam64Extra.c
index 4012bb7..0406f36 100644
--- a/source/s_shortShiftRightJam64Extra.c
+++ b/source/s_shortShiftRightJam64Extra.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shortShiftRightJamM.c b/source/s_shortShiftRightJamM.c
index 38c9995..6822d4e 100644
--- a/source/s_shortShiftRightJamM.c
+++ b/source/s_shortShiftRightJamM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_shortShiftRightM.c b/source/s_shortShiftRightM.c
index 4cfaa61..bf099c7 100644
--- a/source/s_shortShiftRightM.c
+++ b/source/s_shortShiftRightM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_sub128.c b/source/s_sub128.c
index 00070db..8372cfc 100644
--- a/source/s_sub128.c
+++ b/source/s_sub128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_sub1XM.c b/source/s_sub1XM.c
index 6675076..775e8a0 100644
--- a/source/s_sub1XM.c
+++ b/source/s_sub1XM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_sub256M.c b/source/s_sub256M.c
index 41c9922..8edfa1e 100644
--- a/source/s_sub256M.c
+++ b/source/s_sub256M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_subM.c b/source/s_subM.c
index 7190715..3b45e6e 100644
--- a/source/s_subM.c
+++ b/source/s_subM.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_subMagsExtF80.c b/source/s_subMagsExtF80.c
index 253bb89..ce7cf93 100644
--- a/source/s_subMagsExtF80.c
+++ b/source/s_subMagsExtF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_subMagsF128.c b/source/s_subMagsF128.c
index 15c9709..69e0a9d 100644
--- a/source/s_subMagsF128.c
+++ b/source/s_subMagsF128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_subMagsF16.c b/source/s_subMagsF16.c
index 6aaf7aa..565db8a 100644
--- a/source/s_subMagsF16.c
+++ b/source/s_subMagsF16.c
@@ -2,10 +2,10 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, 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, 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:
@@ -167,6 +167,11 @@ float16_t softfloat_subMagsF16( uint_fast16_t uiA, uint_fast16_t uiB )
) {
--uiZ;
}
+#ifdef SOFTFLOAT_ROUND_ODD
+ else if ( roundingMode == softfloat_round_odd ) {
+ uiZ = (uiZ - 1) | 1;
+ }
+#endif
}
softfloat_exceptionFlags |= softfloat_flag_inexact;
goto uiZ;
diff --git a/source/s_subMagsF32.c b/source/s_subMagsF32.c
index 012d4da..c7c8dae 100644
--- a/source/s_subMagsF32.c
+++ b/source/s_subMagsF32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_subMagsF64.c b/source/s_subMagsF64.c
index 9c44368..86658f7 100644
--- a/source/s_subMagsF64.c
+++ b/source/s_subMagsF64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All rights reserved.
diff --git a/source/s_tryPropagateNaNExtF80M.c b/source/s_tryPropagateNaNExtF80M.c
index 5d921f5..fa0eab3 100644
--- a/source/s_tryPropagateNaNExtF80M.c
+++ b/source/s_tryPropagateNaNExtF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/s_tryPropagateNaNF128M.c b/source/s_tryPropagateNaNF128M.c
index 3e7c2fc..fc78e40 100644
--- a/source/s_tryPropagateNaNF128M.c
+++ b/source/s_tryPropagateNaNF128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All rights reserved.
diff --git a/source/softfloat_state.c b/source/softfloat_state.c
index b61eb75..d838e65 100644
--- a/source/softfloat_state.c
+++ b/source/softfloat_state.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/source/ui32_to_extF80.c b/source/ui32_to_extF80.c
index e08a18f..198c848 100644
--- a/source/ui32_to_extF80.c
+++ b/source/ui32_to_extF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/source/ui32_to_extF80M.c b/source/ui32_to_extF80M.c
index f824d00..d9072e0 100644
--- a/source/ui32_to_extF80M.c
+++ b/source/ui32_to_extF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/source/ui32_to_f128.c b/source/ui32_to_f128.c
index 21efd03..a3a9372 100644
--- a/source/ui32_to_f128.c
+++ b/source/ui32_to_f128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/source/ui32_to_f128M.c b/source/ui32_to_f128M.c
index 62095f2..566b6bc 100644
--- a/source/ui32_to_f128M.c
+++ b/source/ui32_to_f128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/source/ui32_to_f16.c b/source/ui32_to_f16.c
index a2f7485..420ca80 100644
--- a/source/ui32_to_f16.c
+++ b/source/ui32_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/source/ui32_to_f32.c b/source/ui32_to_f32.c
index 4717de9..64c250d 100644
--- a/source/ui32_to_f32.c
+++ b/source/ui32_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All Rights Reserved.
diff --git a/source/ui32_to_f64.c b/source/ui32_to_f64.c
index a6a0439..6c3d598 100644
--- a/source/ui32_to_f64.c
+++ b/source/ui32_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/source/ui64_to_extF80.c b/source/ui64_to_extF80.c
index b92b53e..58b577a 100644
--- a/source/ui64_to_extF80.c
+++ b/source/ui64_to_extF80.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/source/ui64_to_extF80M.c b/source/ui64_to_extF80M.c
index c2c59b0..1ae99c1 100644
--- a/source/ui64_to_extF80M.c
+++ b/source/ui64_to_extF80M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/source/ui64_to_f128.c b/source/ui64_to_f128.c
index 25afc29..812259c 100644
--- a/source/ui64_to_f128.c
+++ b/source/ui64_to_f128.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/source/ui64_to_f128M.c b/source/ui64_to_f128M.c
index eecf040..0e968d4 100644
--- a/source/ui64_to_f128M.c
+++ b/source/ui64_to_f128M.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/source/ui64_to_f16.c b/source/ui64_to_f16.c
index f9ba0a8..22c5669 100644
--- a/source/ui64_to_f16.c
+++ b/source/ui64_to_f16.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/source/ui64_to_f32.c b/source/ui64_to_f32.c
index cf175fe..cf1e09a 100644
--- a/source/ui64_to_f32.c
+++ b/source/ui64_to_f32.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
California. All Rights Reserved.
diff --git a/source/ui64_to_f64.c b/source/ui64_to_f64.c
index c475e13..f02c4f7 100644
--- a/source/ui64_to_f64.c
+++ b/source/ui64_to_f64.c
@@ -2,7 +2,7 @@
/*============================================================================
This C source file is part of the SoftFloat IEEE Floating-Point Arithmetic
-Package, Release 3b, by John R. Hauser.
+Package, Release 3c, by John R. Hauser.
Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
All Rights Reserved.