-
Notifications
You must be signed in to change notification settings - Fork 12
Changed Functions
The following Softfloat 3a functions have been changed to support the requirements of Binary Floating Point support in Hercules. All changes are enclosed by the preprocessor directives #ifdef IBM_IEEE/#else/#endif. The preprocessor variable IBM_IEEE is defined in softfloat.h.
Commentary at the beginning of each changed routine identifies the functionality changed. Generally, the same changes were made to each "flavor" of routine. For example, changes to f64_to_ui64.c are mirrored in f32_to_ui64.c and f128_to_ui128.c. The 128-bit versions are a fair bit more complex in the original and with respect to modifications than the 32-bit and 64-bit routines because any arithmetic must be done in c code; no attempt is made to exploit any 128-bit unsigned integer hardware support.
f32_to_ui64.c Convert float to unsigned 64-bit integer
f64_to_ui64.c
f128_to_ui64.c
f32_roundToInt.c Round float value to floating point integer
f64_roundToInt.c
f128_roundToInt.c
s_addMagsF32.c Add magnitudes (significands)
s_addMagsF64.c
s_addMagsF128.c
s_mulAddF32.c Fused multiply and add
s_mulAddF64.c
s_roundPackToF32.c Round and pack to floating point interchange format
s_roundPackToF64.c
s_roundPackToF128.c
s_roundPackToI32.c Round and pack to signed integer
s_roundPackToI64.c
s_roundPackToUI32.c Round and pack to unsigned integer
s_roundPackToUI64.c
softfloat_state.c Softfloat 3a Global State
include/softfloat.h Softfloat 3a declarations, including global state variables
8086-SSE/specialize.h Default NaNs
8086-SSE/s_propagateNaNF32UI NaN propagation
8086-SSE/s_propagateNaNF64UI
8086-SSE/s_propagateNaNF128UI
This Wiki Copyright © 2016 by Stephen R. Orso. This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.