Update in RC for Release 3, fixing some bugs and improving the documentation.
diff --git a/build/Linux-386-GCC/Makefile b/build/Linux-386-GCC/Makefile
index ceaebb2..e543382 100644
--- a/build/Linux-386-GCC/Makefile
+++ b/build/Linux-386-GCC/Makefile
@@ -1,4 +1,37 @@
 
+#=============================================================================
+#
+# This Makefile is part of TestFloat, Release 3, a package of programs for
+# testing the correctness of floating-point arithmetic complying with the IEEE
+# Standard for Floating-Point, by John R. Hauser.
+#
+# Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
+# (Regents).  All Rights Reserved.  Redistribution and use in source and
+# binary forms, with or without modification, are permitted provided that the
+# following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice,
+# this list of conditions, and the following two paragraphs of disclaimer.
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions, and the following two paragraphs of disclaimer in
+# the documentation and/or other materials provided with the distribution.
+# Neither the name of the Regents nor the names of its contributors may be
+# used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+# SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
+# ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
+# REGENTS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE.  THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
+# HEREUNDER IS PROVIDED "AS IS".  REGENTS HAS NO OBLIGATION TO PROVIDE
+# MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+#
+#=============================================================================
+
 SOURCE_DIR = ../../source
 SUBJ_SOURCE_DIR = $(SOURCE_DIR)/subj-C
 SOFTFLOAT_DIR = ../../../berkeley-softfloat-rc3
@@ -10,19 +43,19 @@
   $(SOFTFLOAT_INCLUDE_DIR)/softfloat.h
 SOFTFLOAT_LIB = $(SOFTFLOAT_DIR)/build/$(PLATFORM)/softfloat$(LIB)
 
-TYPE_OPTS = -DEXTFLOAT80 -DFLOAT128
+TESTFLOAT_OPTS = -DEXTFLOAT80 -DFLOAT128 -DLONG_DOUBLE_IS_EXTFLOAT80
 
 DELETE = rm -f
 C_INCLUDES = \
   -I. -I$(SUBJ_SOURCE_DIR) -I$(SOURCE_DIR) -I$(SOFTFLOAT_INCLUDE_DIR)
 COMPILE_C = \
-  gcc -c -Werror-implicit-function-declaration $(TYPE_OPTS) $(C_INCLUDES) -O2 \
-    -o $@
+  gcc -c -Werror-implicit-function-declaration $(TESTFLOAT_OPTS) \
+    $(C_INCLUDES) -O2 -o $@
 COMPILE_SLOWFLOAT_C = \
-  gcc -c -Werror-implicit-function-declaration $(TYPE_OPTS) $(C_INCLUDES) -O3 \
-    -o $@
+  gcc -c -Werror-implicit-function-declaration $(TESTFLOAT_OPTS) \
+    $(C_INCLUDES) -O3 -o $@
 MAKELIB = ar crs $@
-LINK = gcc -o $@
+LINK = gcc -lm -o $@
 
 OBJ = .o
 LIB = .a
@@ -155,6 +188,7 @@
   fail$(OBJ) \
   functions_common$(OBJ) \
   functionInfos$(OBJ) \
+  standardFunctionInfos$(OBJ) \
   random$(OBJ) \
   genCases_common$(OBJ) \
   $(OBJS_GENCASES) \
@@ -166,11 +200,8 @@
   $(OBJS_WRITECASE) \
   testLoops_common$(OBJ) \
   $(OBJS_TEST) \
-  standardFunctionInfos$(OBJ) \
 
-#*** EVERYBODY SHOULD INCLUDE "platform.h", RIGHT?
-
-uint128$(OBJ): platform.h $(SOURCE_DIR)/uint128.h
+uint128$(OBJ): $(SOURCE_DIR)/uint128.h
 fail$(OBJ): $(SOURCE_DIR)/fail.h
 functions_common$(OBJ): $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h
 functionInfos$(OBJ): $(SOURCE_DIR)/functions.h
@@ -179,22 +210,19 @@
 genCases_common$(OBJ): $(SOURCE_DIR)/fail.h $(SOURCE_DIR)/genCases.h
 $(OBJS_GENCASES): \
   $(SOURCE_DIR)/random.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h
-genCases_f128$(OBJ): platform.h $(SOURCE_DIR)/uint128.h
+genCases_f128$(OBJ): $(SOURCE_DIR)/uint128.h
 genCases_writeTestsTotal$(OBJ): $(SOURCE_DIR)/genCases.h
 verCases_common$(OBJ): $(SOURCE_DIR)/verCases.h
 verCases_writeFunctionName$(OBJ): $(SOURCE_DIR)/verCases.h
 readHex$(OBJ): $(SOURCE_DIR)/readHex.h
-writeHex$(OBJ): \
-  platform.h $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h
-writeCase_common$(OBJ): $(SOURCE_DIR)/writeCase.h
+writeHex$(OBJ): $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h
 $(OBJS_WRITECASE): \
   $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/writeCase.h
 testLoops_common$(OBJ): $(SOURCE_DIR)/testLoops.h
 $(OBJS_TEST): \
-  platform.h $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) \
-  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
-  $(SOURCE_DIR)/testLoops.h
-$(OBJS_LIB): %$(OBJ): $(SOURCE_DIR)/%.c
+  $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h \
+  $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/testLoops.h
+$(OBJS_LIB): %$(OBJ): platform.h $(SOURCE_DIR)/%.c
 	$(COMPILE_C) $(SOURCE_DIR)/$*.c
 testfloat$(LIB): $(OBJS_LIB)
 	$(MAKELIB) $^
@@ -261,11 +289,11 @@
 OBJS_TESTFLOAT = subjfloat$(OBJ) subjfloat_functions$(OBJ) testfloat$(OBJ)
 
 subjfloat$(OBJ): \
-  $(SOFTFLOAT_H) $(SUBJ_SOURCE_DIR)/subjfloat_config.h \
+  platform.h $(SOFTFLOAT_H) $(SUBJ_SOURCE_DIR)/subjfloat_config.h \
   $(SOURCE_DIR)/subjfloat.h $(SUBJ_SOURCE_DIR)/subjfloat.c
 	$(COMPILE_C) $(SUBJ_SOURCE_DIR)/subjfloat.c
 subjfloat_functions$(OBJ): \
-  $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
+  platform.h $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
   $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/subjfloat_functions.c
 	$(COMPILE_C) $(SOURCE_DIR)/subjfloat_functions.c
 testfloat$(OBJ): \
@@ -276,7 +304,7 @@
 	$(COMPILE_C) $(SOURCE_DIR)/testfloat.c
 
 testfloat$(EXE): $(OBJS_TESTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
-	$(LINK) $^ -lm
+	$(LINK) $^
 
 .PHONY: clean
 clean:
diff --git a/build/Linux-386-GCC/platform.h b/build/Linux-386-GCC/platform.h
index 2ea4f73..4b38236 100644
--- a/build/Linux-386-GCC/platform.h
+++ b/build/Linux-386-GCC/platform.h
@@ -1,34 +1,34 @@
 
 /*============================================================================
 
-*** FIX.
+This C header file is part of TestFloat, Release 3, a package of programs for
+testing the correctness of floating-point arithmetic complying with the IEEE
+Standard for Floating-Point, by John R. Hauser.
 
-This C source fragment is part of the SoftFloat IEC/IEEE Floating-point
-Arithmetic Package, Release 2b.
+Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
+(Regents).  All Rights Reserved.  Redistribution and use in source and binary
+forms, with or without modification, are permitted provided that the following
+conditions are met:
 
-Written by John R. Hauser.  This work was made possible in part by the
-International Computer Science Institute, located at Suite 600, 1947 Center
-Street, Berkeley, California 94704.  Funding was partially provided by the
-National Science Foundation under grant MIP-9311980.  The original version
-of this code was written as part of a project to build a fixed-point vector
-processor in collaboration with the University of California at Berkeley,
-overseen by Profs. Nelson Morgan and John Wawrzynek.  More information
-is available through the Web page `http://www.cs.berkeley.edu/~jhauser/
-arithmetic/SoftFloat.html'.
+Redistributions of source code must retain the above copyright notice,
+this list of conditions, and the following two paragraphs of disclaimer.
+Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions, and the following two paragraphs of disclaimer in the
+documentation and/or other materials provided with the distribution.  Neither
+the name of the Regents nor the names of its contributors may be used to
+endorse or promote products derived from this software without specific prior
+written permission.
 
-THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE.  Although reasonable effort has
-been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES
-RESULT IN INCORRECT BEHAVIOR.  USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS
-AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES,
-COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE
-EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE
-INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR
-OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE.
+IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING
+OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF REGENTS HAS
+BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-Derivative works are acceptable, even for commercial purposes, so long as
-(1) the source code for the derivative work includes prominent notice that
-the work is derivative, and (2) the source code includes prominent notice with
-these four paragraphs for those parts of this code that are retained.
+REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
+HEREUNDER IS PROVIDED "AS IS".  REGENTS HAS NO OBLIGATION TO PROVIDE
+MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 
 =============================================================================*/
 
diff --git a/build/Linux-x86_64-GCC/Makefile b/build/Linux-x86_64-GCC/Makefile
new file mode 100644
index 0000000..86407ee
--- /dev/null
+++ b/build/Linux-x86_64-GCC/Makefile
@@ -0,0 +1,317 @@
+
+#=============================================================================
+#
+# This Makefile is part of TestFloat, Release 3, a package of programs for
+# testing the correctness of floating-point arithmetic complying with the IEEE
+# Standard for Floating-Point, by John R. Hauser.
+#
+# Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
+# (Regents).  All Rights Reserved.  Redistribution and use in source and
+# binary forms, with or without modification, are permitted provided that the
+# following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice,
+# this list of conditions, and the following two paragraphs of disclaimer.
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions, and the following two paragraphs of disclaimer in
+# the documentation and/or other materials provided with the distribution.
+# Neither the name of the Regents nor the names of its contributors may be
+# used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+# SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
+# ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
+# REGENTS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE.  THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
+# HEREUNDER IS PROVIDED "AS IS".  REGENTS HAS NO OBLIGATION TO PROVIDE
+# MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+#
+#=============================================================================
+
+SOURCE_DIR = ../../source
+SUBJ_SOURCE_DIR = $(SOURCE_DIR)/subj-C
+SOFTFLOAT_DIR = ../../../berkeley-softfloat-rc3
+SOFTFLOAT_INCLUDE_DIR = $(SOFTFLOAT_DIR)/source/include
+PLATFORM = Linux-x86_64-GCC
+
+SOFTFLOAT_H = \
+  $(SOFTFLOAT_INCLUDE_DIR)/softfloat_types.h \
+  $(SOFTFLOAT_INCLUDE_DIR)/softfloat.h
+SOFTFLOAT_LIB = $(SOFTFLOAT_DIR)/build/$(PLATFORM)/softfloat$(LIB)
+
+TESTFLOAT_OPTS = -DEXTFLOAT80 -DFLOAT128 -DLONG_DOUBLE_IS_EXTFLOAT80
+
+DELETE = rm -f
+C_INCLUDES = \
+  -I. -I$(SUBJ_SOURCE_DIR) -I$(SOURCE_DIR) -I$(SOFTFLOAT_INCLUDE_DIR)
+COMPILE_C = \
+  gcc -c -Werror-implicit-function-declaration $(TESTFLOAT_OPTS) \
+    $(C_INCLUDES) -O2 -o $@
+COMPILE_SLOWFLOAT_C = \
+  gcc -c -Werror-implicit-function-declaration $(TESTFLOAT_OPTS) \
+    $(C_INCLUDES) -O3 -o $@
+MAKELIB = ar crs $@
+LINK = gcc -lm -o $@
+
+OBJ = .o
+LIB = .a
+EXE =
+
+.PHONY: all
+all: \
+  testsoftfloat$(EXE) \
+  timesoftfloat$(EXE) \
+  testfloat_gen$(EXE) \
+  testfloat_ver$(EXE) \
+  testfloat$(EXE) \
+
+OBJS_GENCASES = \
+  genCases_ui32$(OBJ) \
+  genCases_ui64$(OBJ) \
+  genCases_i32$(OBJ) \
+  genCases_i64$(OBJ) \
+  genCases_f32$(OBJ) \
+  genCases_f64$(OBJ) \
+  genCases_extF80$(OBJ) \
+  genCases_f128$(OBJ) \
+
+OBJS_WRITECASE = \
+  writeCase_a_ui32$(OBJ) \
+  writeCase_a_ui64$(OBJ) \
+  writeCase_a_f32$(OBJ) \
+  writeCase_ab_f32$(OBJ) \
+  writeCase_abc_f32$(OBJ) \
+  writeCase_a_f64$(OBJ) \
+  writeCase_ab_f64$(OBJ) \
+  writeCase_abc_f64$(OBJ) \
+  writeCase_a_extF80M$(OBJ) \
+  writeCase_ab_extF80M$(OBJ) \
+  writeCase_abc_extF80M$(OBJ) \
+  writeCase_a_f128M$(OBJ) \
+  writeCase_ab_f128M$(OBJ) \
+  writeCase_abc_f128M$(OBJ) \
+  writeCase_z_bool$(OBJ) \
+  writeCase_z_ui32$(OBJ) \
+  writeCase_z_ui64$(OBJ) \
+  writeCase_z_f32$(OBJ) \
+  writeCase_z_f64$(OBJ) \
+  writeCase_z_extF80M$(OBJ) \
+  writeCase_z_f128M$(OBJ) \
+
+OBJS_TEST = \
+  test_a_ui32_z_f32$(OBJ) \
+  test_a_ui32_z_f64$(OBJ) \
+  test_a_ui32_z_extF80$(OBJ) \
+  test_a_ui32_z_f128$(OBJ) \
+  test_a_ui64_z_f32$(OBJ) \
+  test_a_ui64_z_f64$(OBJ) \
+  test_a_ui64_z_extF80$(OBJ) \
+  test_a_ui64_z_f128$(OBJ) \
+  test_a_i32_z_f32$(OBJ) \
+  test_a_i32_z_f64$(OBJ) \
+  test_a_i32_z_extF80$(OBJ) \
+  test_a_i32_z_f128$(OBJ) \
+  test_a_i64_z_f32$(OBJ) \
+  test_a_i64_z_f64$(OBJ) \
+  test_a_i64_z_extF80$(OBJ) \
+  test_a_i64_z_f128$(OBJ) \
+  test_a_f32_z_ui32_rx$(OBJ) \
+  test_a_f32_z_ui64_rx$(OBJ) \
+  test_a_f32_z_i32_rx$(OBJ) \
+  test_a_f32_z_i64_rx$(OBJ) \
+  test_a_f32_z_ui32_x$(OBJ) \
+  test_a_f32_z_ui64_x$(OBJ) \
+  test_a_f32_z_i32_x$(OBJ) \
+  test_a_f32_z_i64_x$(OBJ) \
+  test_a_f32_z_f64$(OBJ) \
+  test_a_f32_z_extF80$(OBJ) \
+  test_a_f32_z_f128$(OBJ) \
+  test_az_f32$(OBJ) \
+  test_az_f32_rx$(OBJ) \
+  test_abz_f32$(OBJ) \
+  test_abcz_f32$(OBJ) \
+  test_ab_f32_z_bool$(OBJ) \
+  test_a_f64_z_ui32_rx$(OBJ) \
+  test_a_f64_z_ui64_rx$(OBJ) \
+  test_a_f64_z_i32_rx$(OBJ) \
+  test_a_f64_z_i64_rx$(OBJ) \
+  test_a_f64_z_ui32_x$(OBJ) \
+  test_a_f64_z_ui64_x$(OBJ) \
+  test_a_f64_z_i32_x$(OBJ) \
+  test_a_f64_z_i64_x$(OBJ) \
+  test_a_f64_z_f32$(OBJ) \
+  test_a_f64_z_extF80$(OBJ) \
+  test_a_f64_z_f128$(OBJ) \
+  test_az_f64$(OBJ) \
+  test_az_f64_rx$(OBJ) \
+  test_abz_f64$(OBJ) \
+  test_abcz_f64$(OBJ) \
+  test_ab_f64_z_bool$(OBJ) \
+  test_a_extF80_z_ui32_rx$(OBJ) \
+  test_a_extF80_z_ui64_rx$(OBJ) \
+  test_a_extF80_z_i32_rx$(OBJ) \
+  test_a_extF80_z_i64_rx$(OBJ) \
+  test_a_extF80_z_ui32_x$(OBJ) \
+  test_a_extF80_z_ui64_x$(OBJ) \
+  test_a_extF80_z_i32_x$(OBJ) \
+  test_a_extF80_z_i64_x$(OBJ) \
+  test_a_extF80_z_f32$(OBJ) \
+  test_a_extF80_z_f64$(OBJ) \
+  test_a_extF80_z_f128$(OBJ) \
+  test_az_extF80$(OBJ) \
+  test_az_extF80_rx$(OBJ) \
+  test_abz_extF80$(OBJ) \
+  test_ab_extF80_z_bool$(OBJ) \
+  test_a_f128_z_ui32_rx$(OBJ) \
+  test_a_f128_z_ui64_rx$(OBJ) \
+  test_a_f128_z_i32_rx$(OBJ) \
+  test_a_f128_z_i64_rx$(OBJ) \
+  test_a_f128_z_ui32_x$(OBJ) \
+  test_a_f128_z_ui64_x$(OBJ) \
+  test_a_f128_z_i32_x$(OBJ) \
+  test_a_f128_z_i64_x$(OBJ) \
+  test_a_f128_z_f32$(OBJ) \
+  test_a_f128_z_f64$(OBJ) \
+  test_a_f128_z_extF80$(OBJ) \
+  test_az_f128$(OBJ) \
+  test_az_f128_rx$(OBJ) \
+  test_abz_f128$(OBJ) \
+  test_abcz_f128$(OBJ) \
+  test_ab_f128_z_bool$(OBJ) \
+
+OBJS_LIB = \
+  uint128$(OBJ) \
+  fail$(OBJ) \
+  functions_common$(OBJ) \
+  functionInfos$(OBJ) \
+  standardFunctionInfos$(OBJ) \
+  random$(OBJ) \
+  genCases_common$(OBJ) \
+  $(OBJS_GENCASES) \
+  genCases_writeTestsTotal$(OBJ) \
+  verCases_common$(OBJ) \
+  verCases_writeFunctionName$(OBJ) \
+  readHex$(OBJ) \
+  writeHex$(OBJ) \
+  $(OBJS_WRITECASE) \
+  testLoops_common$(OBJ) \
+  $(OBJS_TEST) \
+
+uint128$(OBJ): $(SOURCE_DIR)/uint128.h
+fail$(OBJ): $(SOURCE_DIR)/fail.h
+functions_common$(OBJ): $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h
+functionInfos$(OBJ): $(SOURCE_DIR)/functions.h
+standardFunctionInfos$(OBJ): $(SOURCE_DIR)/functions.h
+random$(OBJ): $(SOURCE_DIR)/random.h
+genCases_common$(OBJ): $(SOURCE_DIR)/fail.h $(SOURCE_DIR)/genCases.h
+$(OBJS_GENCASES): \
+  $(SOURCE_DIR)/random.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h
+genCases_f128$(OBJ): $(SOURCE_DIR)/uint128.h
+genCases_writeTestsTotal$(OBJ): $(SOURCE_DIR)/genCases.h
+verCases_common$(OBJ): $(SOURCE_DIR)/verCases.h
+verCases_writeFunctionName$(OBJ): $(SOURCE_DIR)/verCases.h
+readHex$(OBJ): $(SOURCE_DIR)/readHex.h
+writeHex$(OBJ): $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h
+$(OBJS_WRITECASE): \
+  $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/writeCase.h
+testLoops_common$(OBJ): $(SOURCE_DIR)/testLoops.h
+$(OBJS_TEST): \
+  $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h \
+  $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/testLoops.h
+$(OBJS_LIB): %$(OBJ): platform.h $(SOURCE_DIR)/%.c
+	$(COMPILE_C) $(SOURCE_DIR)/$*.c
+testfloat$(LIB): $(OBJS_LIB)
+	$(MAKELIB) $^
+
+OBJS_TESTSOFTFLOAT = slowfloat$(OBJ) testsoftfloat$(OBJ)
+
+slowfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/slowfloat.c
+	$(COMPILE_SLOWFLOAT_C) $(SOURCE_DIR)/slowfloat.c
+testsoftfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/functions.h \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
+  $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testsoftfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/testsoftfloat.c
+
+testsoftfloat$(EXE): $(OBJS_TESTSOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+OBJS_TIMESOFTFLOAT = timesoftfloat$(OBJ)
+
+timesoftfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/timesoftfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/timesoftfloat.c
+
+timesoftfloat$(EXE): $(OBJS_TIMESOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+OBJS_TESTFLOAT_GEN = genLoops$(OBJ) testfloat_gen$(OBJ)
+
+genLoops$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/genLoops.h \
+  $(SOURCE_DIR)/genLoops.c
+	$(COMPILE_C) $(SOURCE_DIR)/genLoops.c
+testfloat_gen$(OBJ): \
+  $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/genLoops.h \
+  $(SOURCE_DIR)/testfloat_gen.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat_gen.c
+
+testfloat_gen$(EXE): $(OBJS_TESTFLOAT_GEN) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+OBJS_TESTFLOAT_VER = verLoops$(OBJ) testfloat_ver$(OBJ)
+
+verLoops$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/readHex.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
+  $(SOURCE_DIR)/verLoops.h $(SOURCE_DIR)/verLoops.c
+	$(COMPILE_C) $(SOURCE_DIR)/verLoops.c
+testfloat_ver$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/verCases.h \
+  $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/verLoops.h \
+  $(SOURCE_DIR)/testfloat_ver.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat_ver.c
+
+testfloat_ver$(EXE): $(OBJS_TESTFLOAT_VER) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+OBJS_TESTFLOAT = subjfloat$(OBJ) subjfloat_functions$(OBJ) testfloat$(OBJ)
+
+subjfloat$(OBJ): \
+  platform.h $(SOFTFLOAT_H) $(SUBJ_SOURCE_DIR)/subjfloat_config.h \
+  $(SOURCE_DIR)/subjfloat.h $(SUBJ_SOURCE_DIR)/subjfloat.c
+	$(COMPILE_C) $(SUBJ_SOURCE_DIR)/subjfloat.c
+subjfloat_functions$(OBJ): \
+  platform.h $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/subjfloat_functions.c
+	$(COMPILE_C) $(SOURCE_DIR)/subjfloat_functions.c
+testfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h \
+  $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat.c
+
+testfloat$(EXE): $(OBJS_TESTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+.PHONY: clean
+clean:
+	$(DELETE) $(OBJS_LIB) testfloat$(LIB)
+	$(DELETE) $(OBJS_TESTSOFTFLOAT) testsoftfloat$(EXE)
+	$(DELETE) $(OBJS_TIMESOFTFLOAT) timesoftfloat$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT_GEN) testfloat_gen$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT_VER) testfloat_ver$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT) testfloat$(EXE)
+
diff --git a/build/Linux-x86_64-GCC/platform.h b/build/Linux-x86_64-GCC/platform.h
new file mode 100644
index 0000000..4b38236
--- /dev/null
+++ b/build/Linux-x86_64-GCC/platform.h
@@ -0,0 +1,42 @@
+
+/*============================================================================
+
+This C header file is part of TestFloat, Release 3, a package of programs for
+testing the correctness of floating-point arithmetic complying with the IEEE
+Standard for Floating-Point, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
+(Regents).  All Rights Reserved.  Redistribution and use in source and binary
+forms, with or without modification, are permitted provided that the following
+conditions are met:
+
+Redistributions of source code must retain the above copyright notice,
+this list of conditions, and the following two paragraphs of disclaimer.
+Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions, and the following two paragraphs of disclaimer in the
+documentation and/or other materials provided with the distribution.  Neither
+the name of the Regents nor the names of its contributors may be used to
+endorse or promote products derived from this software without specific prior
+written permission.
+
+IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING
+OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF REGENTS HAS
+BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
+HEREUNDER IS PROVIDED "AS IS".  REGENTS HAS NO OBLIGATION TO PROVIDE
+MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+=============================================================================*/
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
+#define LITTLEENDIAN 1
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
+#define INLINE extern inline
+
diff --git a/build/Win32-MinGW/Makefile b/build/Win32-MinGW/Makefile
new file mode 100644
index 0000000..58f2a4e
--- /dev/null
+++ b/build/Win32-MinGW/Makefile
@@ -0,0 +1,317 @@
+
+#=============================================================================
+#
+# This Makefile is part of TestFloat, Release 3, a package of programs for
+# testing the correctness of floating-point arithmetic complying with the IEEE
+# Standard for Floating-Point, by John R. Hauser.
+#
+# Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
+# (Regents).  All Rights Reserved.  Redistribution and use in source and
+# binary forms, with or without modification, are permitted provided that the
+# following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice,
+# this list of conditions, and the following two paragraphs of disclaimer.
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions, and the following two paragraphs of disclaimer in
+# the documentation and/or other materials provided with the distribution.
+# Neither the name of the Regents nor the names of its contributors may be
+# used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+# SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
+# ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
+# REGENTS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE.  THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
+# HEREUNDER IS PROVIDED "AS IS".  REGENTS HAS NO OBLIGATION TO PROVIDE
+# MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+#
+#=============================================================================
+
+SOURCE_DIR = ../../source
+SUBJ_SOURCE_DIR = $(SOURCE_DIR)/subj-C
+SOFTFLOAT_DIR = ../../../berkeley-softfloat-rc3
+SOFTFLOAT_INCLUDE_DIR = $(SOFTFLOAT_DIR)/source/include
+PLATFORM = Win32-MinGW
+
+SOFTFLOAT_H = \
+  $(SOFTFLOAT_INCLUDE_DIR)/softfloat_types.h \
+  $(SOFTFLOAT_INCLUDE_DIR)/softfloat.h
+SOFTFLOAT_LIB = $(SOFTFLOAT_DIR)/build/$(PLATFORM)/softfloat$(LIB)
+
+TESTFLOAT_OPTS = -DEXTFLOAT80 -DFLOAT128 -DLONG_DOUBLE_IS_EXTFLOAT80
+
+DELETE = rm -f
+C_INCLUDES = \
+  -I. -I$(SUBJ_SOURCE_DIR) -I$(SOURCE_DIR) -I$(SOFTFLOAT_INCLUDE_DIR)
+COMPILE_C = \
+  gcc -c -Werror-implicit-function-declaration $(TESTFLOAT_OPTS) \
+    $(C_INCLUDES) -O2 -o $@
+COMPILE_SLOWFLOAT_C = \
+  gcc -c -Werror-implicit-function-declaration $(TESTFLOAT_OPTS) \
+    $(C_INCLUDES) -O3 -o $@
+MAKELIB = ar crs $@
+LINK = gcc -lm -o $@
+
+OBJ = .o
+LIB = .a
+EXE = .exe
+
+.PHONY: all
+all: \
+  testsoftfloat$(EXE) \
+  timesoftfloat$(EXE) \
+  testfloat_gen$(EXE) \
+  testfloat_ver$(EXE) \
+  testfloat$(EXE) \
+
+OBJS_GENCASES = \
+  genCases_ui32$(OBJ) \
+  genCases_ui64$(OBJ) \
+  genCases_i32$(OBJ) \
+  genCases_i64$(OBJ) \
+  genCases_f32$(OBJ) \
+  genCases_f64$(OBJ) \
+  genCases_extF80$(OBJ) \
+  genCases_f128$(OBJ) \
+
+OBJS_WRITECASE = \
+  writeCase_a_ui32$(OBJ) \
+  writeCase_a_ui64$(OBJ) \
+  writeCase_a_f32$(OBJ) \
+  writeCase_ab_f32$(OBJ) \
+  writeCase_abc_f32$(OBJ) \
+  writeCase_a_f64$(OBJ) \
+  writeCase_ab_f64$(OBJ) \
+  writeCase_abc_f64$(OBJ) \
+  writeCase_a_extF80M$(OBJ) \
+  writeCase_ab_extF80M$(OBJ) \
+  writeCase_abc_extF80M$(OBJ) \
+  writeCase_a_f128M$(OBJ) \
+  writeCase_ab_f128M$(OBJ) \
+  writeCase_abc_f128M$(OBJ) \
+  writeCase_z_bool$(OBJ) \
+  writeCase_z_ui32$(OBJ) \
+  writeCase_z_ui64$(OBJ) \
+  writeCase_z_f32$(OBJ) \
+  writeCase_z_f64$(OBJ) \
+  writeCase_z_extF80M$(OBJ) \
+  writeCase_z_f128M$(OBJ) \
+
+OBJS_TEST = \
+  test_a_ui32_z_f32$(OBJ) \
+  test_a_ui32_z_f64$(OBJ) \
+  test_a_ui32_z_extF80$(OBJ) \
+  test_a_ui32_z_f128$(OBJ) \
+  test_a_ui64_z_f32$(OBJ) \
+  test_a_ui64_z_f64$(OBJ) \
+  test_a_ui64_z_extF80$(OBJ) \
+  test_a_ui64_z_f128$(OBJ) \
+  test_a_i32_z_f32$(OBJ) \
+  test_a_i32_z_f64$(OBJ) \
+  test_a_i32_z_extF80$(OBJ) \
+  test_a_i32_z_f128$(OBJ) \
+  test_a_i64_z_f32$(OBJ) \
+  test_a_i64_z_f64$(OBJ) \
+  test_a_i64_z_extF80$(OBJ) \
+  test_a_i64_z_f128$(OBJ) \
+  test_a_f32_z_ui32_rx$(OBJ) \
+  test_a_f32_z_ui64_rx$(OBJ) \
+  test_a_f32_z_i32_rx$(OBJ) \
+  test_a_f32_z_i64_rx$(OBJ) \
+  test_a_f32_z_ui32_x$(OBJ) \
+  test_a_f32_z_ui64_x$(OBJ) \
+  test_a_f32_z_i32_x$(OBJ) \
+  test_a_f32_z_i64_x$(OBJ) \
+  test_a_f32_z_f64$(OBJ) \
+  test_a_f32_z_extF80$(OBJ) \
+  test_a_f32_z_f128$(OBJ) \
+  test_az_f32$(OBJ) \
+  test_az_f32_rx$(OBJ) \
+  test_abz_f32$(OBJ) \
+  test_abcz_f32$(OBJ) \
+  test_ab_f32_z_bool$(OBJ) \
+  test_a_f64_z_ui32_rx$(OBJ) \
+  test_a_f64_z_ui64_rx$(OBJ) \
+  test_a_f64_z_i32_rx$(OBJ) \
+  test_a_f64_z_i64_rx$(OBJ) \
+  test_a_f64_z_ui32_x$(OBJ) \
+  test_a_f64_z_ui64_x$(OBJ) \
+  test_a_f64_z_i32_x$(OBJ) \
+  test_a_f64_z_i64_x$(OBJ) \
+  test_a_f64_z_f32$(OBJ) \
+  test_a_f64_z_extF80$(OBJ) \
+  test_a_f64_z_f128$(OBJ) \
+  test_az_f64$(OBJ) \
+  test_az_f64_rx$(OBJ) \
+  test_abz_f64$(OBJ) \
+  test_abcz_f64$(OBJ) \
+  test_ab_f64_z_bool$(OBJ) \
+  test_a_extF80_z_ui32_rx$(OBJ) \
+  test_a_extF80_z_ui64_rx$(OBJ) \
+  test_a_extF80_z_i32_rx$(OBJ) \
+  test_a_extF80_z_i64_rx$(OBJ) \
+  test_a_extF80_z_ui32_x$(OBJ) \
+  test_a_extF80_z_ui64_x$(OBJ) \
+  test_a_extF80_z_i32_x$(OBJ) \
+  test_a_extF80_z_i64_x$(OBJ) \
+  test_a_extF80_z_f32$(OBJ) \
+  test_a_extF80_z_f64$(OBJ) \
+  test_a_extF80_z_f128$(OBJ) \
+  test_az_extF80$(OBJ) \
+  test_az_extF80_rx$(OBJ) \
+  test_abz_extF80$(OBJ) \
+  test_ab_extF80_z_bool$(OBJ) \
+  test_a_f128_z_ui32_rx$(OBJ) \
+  test_a_f128_z_ui64_rx$(OBJ) \
+  test_a_f128_z_i32_rx$(OBJ) \
+  test_a_f128_z_i64_rx$(OBJ) \
+  test_a_f128_z_ui32_x$(OBJ) \
+  test_a_f128_z_ui64_x$(OBJ) \
+  test_a_f128_z_i32_x$(OBJ) \
+  test_a_f128_z_i64_x$(OBJ) \
+  test_a_f128_z_f32$(OBJ) \
+  test_a_f128_z_f64$(OBJ) \
+  test_a_f128_z_extF80$(OBJ) \
+  test_az_f128$(OBJ) \
+  test_az_f128_rx$(OBJ) \
+  test_abz_f128$(OBJ) \
+  test_abcz_f128$(OBJ) \
+  test_ab_f128_z_bool$(OBJ) \
+
+OBJS_LIB = \
+  uint128$(OBJ) \
+  fail$(OBJ) \
+  functions_common$(OBJ) \
+  functionInfos$(OBJ) \
+  standardFunctionInfos$(OBJ) \
+  random$(OBJ) \
+  genCases_common$(OBJ) \
+  $(OBJS_GENCASES) \
+  genCases_writeTestsTotal$(OBJ) \
+  verCases_common$(OBJ) \
+  verCases_writeFunctionName$(OBJ) \
+  readHex$(OBJ) \
+  writeHex$(OBJ) \
+  $(OBJS_WRITECASE) \
+  testLoops_common$(OBJ) \
+  $(OBJS_TEST) \
+
+uint128$(OBJ): $(SOURCE_DIR)/uint128.h
+fail$(OBJ): $(SOURCE_DIR)/fail.h
+functions_common$(OBJ): $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h
+functionInfos$(OBJ): $(SOURCE_DIR)/functions.h
+standardFunctionInfos$(OBJ): $(SOURCE_DIR)/functions.h
+random$(OBJ): $(SOURCE_DIR)/random.h
+genCases_common$(OBJ): $(SOURCE_DIR)/fail.h $(SOURCE_DIR)/genCases.h
+$(OBJS_GENCASES): \
+  $(SOURCE_DIR)/random.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h
+genCases_f128$(OBJ): $(SOURCE_DIR)/uint128.h
+genCases_writeTestsTotal$(OBJ): $(SOURCE_DIR)/genCases.h
+verCases_common$(OBJ): $(SOURCE_DIR)/verCases.h
+verCases_writeFunctionName$(OBJ): $(SOURCE_DIR)/verCases.h
+readHex$(OBJ): $(SOURCE_DIR)/readHex.h
+writeHex$(OBJ): $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h
+$(OBJS_WRITECASE): \
+  $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/writeCase.h
+testLoops_common$(OBJ): $(SOURCE_DIR)/testLoops.h
+$(OBJS_TEST): \
+  $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h \
+  $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/testLoops.h
+$(OBJS_LIB): %$(OBJ): platform.h $(SOURCE_DIR)/%.c
+	$(COMPILE_C) $(SOURCE_DIR)/$*.c
+testfloat$(LIB): $(OBJS_LIB)
+	$(MAKELIB) $^
+
+OBJS_TESTSOFTFLOAT = slowfloat$(OBJ) testsoftfloat$(OBJ)
+
+slowfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/slowfloat.c
+	$(COMPILE_SLOWFLOAT_C) $(SOURCE_DIR)/slowfloat.c
+testsoftfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/functions.h \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
+  $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testsoftfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/testsoftfloat.c
+
+testsoftfloat$(EXE): $(OBJS_TESTSOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+OBJS_TIMESOFTFLOAT = timesoftfloat$(OBJ)
+
+timesoftfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/timesoftfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/timesoftfloat.c
+
+timesoftfloat$(EXE): $(OBJS_TIMESOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+OBJS_TESTFLOAT_GEN = genLoops$(OBJ) testfloat_gen$(OBJ)
+
+genLoops$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/genLoops.h \
+  $(SOURCE_DIR)/genLoops.c
+	$(COMPILE_C) $(SOURCE_DIR)/genLoops.c
+testfloat_gen$(OBJ): \
+  $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/genLoops.h \
+  $(SOURCE_DIR)/testfloat_gen.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat_gen.c
+
+testfloat_gen$(EXE): $(OBJS_TESTFLOAT_GEN) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+OBJS_TESTFLOAT_VER = verLoops$(OBJ) testfloat_ver$(OBJ)
+
+verLoops$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/readHex.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
+  $(SOURCE_DIR)/verLoops.h $(SOURCE_DIR)/verLoops.c
+	$(COMPILE_C) $(SOURCE_DIR)/verLoops.c
+testfloat_ver$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/verCases.h \
+  $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/verLoops.h \
+  $(SOURCE_DIR)/testfloat_ver.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat_ver.c
+
+testfloat_ver$(EXE): $(OBJS_TESTFLOAT_VER) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+OBJS_TESTFLOAT = subjfloat$(OBJ) subjfloat_functions$(OBJ) testfloat$(OBJ)
+
+subjfloat$(OBJ): \
+  platform.h $(SOFTFLOAT_H) $(SUBJ_SOURCE_DIR)/subjfloat_config.h \
+  $(SOURCE_DIR)/subjfloat.h $(SUBJ_SOURCE_DIR)/subjfloat.c
+	$(COMPILE_C) $(SUBJ_SOURCE_DIR)/subjfloat.c
+subjfloat_functions$(OBJ): \
+  platform.h $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/subjfloat_functions.c
+	$(COMPILE_C) $(SOURCE_DIR)/subjfloat_functions.c
+testfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h \
+  $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat.c
+
+testfloat$(EXE): $(OBJS_TESTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+.PHONY: clean
+clean:
+	$(DELETE) $(OBJS_LIB) testfloat$(LIB)
+	$(DELETE) $(OBJS_TESTSOFTFLOAT) testsoftfloat$(EXE)
+	$(DELETE) $(OBJS_TIMESOFTFLOAT) timesoftfloat$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT_GEN) testfloat_gen$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT_VER) testfloat_ver$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT) testfloat$(EXE)
+
diff --git a/build/Win32-MinGW/platform.h b/build/Win32-MinGW/platform.h
new file mode 100644
index 0000000..4b38236
--- /dev/null
+++ b/build/Win32-MinGW/platform.h
@@ -0,0 +1,42 @@
+
+/*============================================================================
+
+This C header file is part of TestFloat, Release 3, a package of programs for
+testing the correctness of floating-point arithmetic complying with the IEEE
+Standard for Floating-Point, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
+(Regents).  All Rights Reserved.  Redistribution and use in source and binary
+forms, with or without modification, are permitted provided that the following
+conditions are met:
+
+Redistributions of source code must retain the above copyright notice,
+this list of conditions, and the following two paragraphs of disclaimer.
+Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions, and the following two paragraphs of disclaimer in the
+documentation and/or other materials provided with the distribution.  Neither
+the name of the Regents nor the names of its contributors may be used to
+endorse or promote products derived from this software without specific prior
+written permission.
+
+IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING
+OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF REGENTS HAS
+BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
+HEREUNDER IS PROVIDED "AS IS".  REGENTS HAS NO OBLIGATION TO PROVIDE
+MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+=============================================================================*/
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
+#define LITTLEENDIAN 1
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
+#define INLINE extern inline
+
diff --git a/build/Win64-MinGW-w64/Makefile b/build/Win64-MinGW-w64/Makefile
new file mode 100644
index 0000000..8040540
--- /dev/null
+++ b/build/Win64-MinGW-w64/Makefile
@@ -0,0 +1,317 @@
+
+#=============================================================================
+#
+# This Makefile is part of TestFloat, Release 3, a package of programs for
+# testing the correctness of floating-point arithmetic complying with the IEEE
+# Standard for Floating-Point, by John R. Hauser.
+#
+# Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
+# (Regents).  All Rights Reserved.  Redistribution and use in source and
+# binary forms, with or without modification, are permitted provided that the
+# following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice,
+# this list of conditions, and the following two paragraphs of disclaimer.
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions, and the following two paragraphs of disclaimer in
+# the documentation and/or other materials provided with the distribution.
+# Neither the name of the Regents nor the names of its contributors may be
+# used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+# SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
+# ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
+# REGENTS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE.  THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
+# HEREUNDER IS PROVIDED "AS IS".  REGENTS HAS NO OBLIGATION TO PROVIDE
+# MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+#
+#=============================================================================
+
+SOURCE_DIR = ../../source
+SUBJ_SOURCE_DIR = $(SOURCE_DIR)/subj-C
+SOFTFLOAT_DIR = ../../../berkeley-softfloat-rc3
+SOFTFLOAT_INCLUDE_DIR = $(SOFTFLOAT_DIR)/source/include
+PLATFORM = Win64-MinGW-w64
+
+SOFTFLOAT_H = \
+  $(SOFTFLOAT_INCLUDE_DIR)/softfloat_types.h \
+  $(SOFTFLOAT_INCLUDE_DIR)/softfloat.h
+SOFTFLOAT_LIB = $(SOFTFLOAT_DIR)/build/$(PLATFORM)/softfloat$(LIB)
+
+TESTFLOAT_OPTS = -DEXTFLOAT80 -DFLOAT128 -DLONG_DOUBLE_IS_EXTFLOAT80
+
+DELETE = rm -f
+C_INCLUDES = \
+  -I. -I$(SUBJ_SOURCE_DIR) -I$(SOURCE_DIR) -I$(SOFTFLOAT_INCLUDE_DIR)
+COMPILE_C = \
+  x86_64-w64-mingw32-gcc -c -Werror-implicit-function-declaration \
+    $(TESTFLOAT_OPTS) $(C_INCLUDES) -O2 -o $@
+COMPILE_SLOWFLOAT_C = \
+  x86_64-w64-mingw32-gcc -c -Werror-implicit-function-declaration \
+    $(TESTFLOAT_OPTS) $(C_INCLUDES) -O3 -o $@
+MAKELIB = x86_64-w64-mingw32-ar crs $@
+LINK = x86_64-w64-mingw32-gcc -lm -o $@
+
+OBJ = .o
+LIB = .a
+EXE = .exe
+
+.PHONY: all
+all: \
+  testsoftfloat$(EXE) \
+  timesoftfloat$(EXE) \
+  testfloat_gen$(EXE) \
+  testfloat_ver$(EXE) \
+  testfloat$(EXE) \
+
+OBJS_GENCASES = \
+  genCases_ui32$(OBJ) \
+  genCases_ui64$(OBJ) \
+  genCases_i32$(OBJ) \
+  genCases_i64$(OBJ) \
+  genCases_f32$(OBJ) \
+  genCases_f64$(OBJ) \
+  genCases_extF80$(OBJ) \
+  genCases_f128$(OBJ) \
+
+OBJS_WRITECASE = \
+  writeCase_a_ui32$(OBJ) \
+  writeCase_a_ui64$(OBJ) \
+  writeCase_a_f32$(OBJ) \
+  writeCase_ab_f32$(OBJ) \
+  writeCase_abc_f32$(OBJ) \
+  writeCase_a_f64$(OBJ) \
+  writeCase_ab_f64$(OBJ) \
+  writeCase_abc_f64$(OBJ) \
+  writeCase_a_extF80M$(OBJ) \
+  writeCase_ab_extF80M$(OBJ) \
+  writeCase_abc_extF80M$(OBJ) \
+  writeCase_a_f128M$(OBJ) \
+  writeCase_ab_f128M$(OBJ) \
+  writeCase_abc_f128M$(OBJ) \
+  writeCase_z_bool$(OBJ) \
+  writeCase_z_ui32$(OBJ) \
+  writeCase_z_ui64$(OBJ) \
+  writeCase_z_f32$(OBJ) \
+  writeCase_z_f64$(OBJ) \
+  writeCase_z_extF80M$(OBJ) \
+  writeCase_z_f128M$(OBJ) \
+
+OBJS_TEST = \
+  test_a_ui32_z_f32$(OBJ) \
+  test_a_ui32_z_f64$(OBJ) \
+  test_a_ui32_z_extF80$(OBJ) \
+  test_a_ui32_z_f128$(OBJ) \
+  test_a_ui64_z_f32$(OBJ) \
+  test_a_ui64_z_f64$(OBJ) \
+  test_a_ui64_z_extF80$(OBJ) \
+  test_a_ui64_z_f128$(OBJ) \
+  test_a_i32_z_f32$(OBJ) \
+  test_a_i32_z_f64$(OBJ) \
+  test_a_i32_z_extF80$(OBJ) \
+  test_a_i32_z_f128$(OBJ) \
+  test_a_i64_z_f32$(OBJ) \
+  test_a_i64_z_f64$(OBJ) \
+  test_a_i64_z_extF80$(OBJ) \
+  test_a_i64_z_f128$(OBJ) \
+  test_a_f32_z_ui32_rx$(OBJ) \
+  test_a_f32_z_ui64_rx$(OBJ) \
+  test_a_f32_z_i32_rx$(OBJ) \
+  test_a_f32_z_i64_rx$(OBJ) \
+  test_a_f32_z_ui32_x$(OBJ) \
+  test_a_f32_z_ui64_x$(OBJ) \
+  test_a_f32_z_i32_x$(OBJ) \
+  test_a_f32_z_i64_x$(OBJ) \
+  test_a_f32_z_f64$(OBJ) \
+  test_a_f32_z_extF80$(OBJ) \
+  test_a_f32_z_f128$(OBJ) \
+  test_az_f32$(OBJ) \
+  test_az_f32_rx$(OBJ) \
+  test_abz_f32$(OBJ) \
+  test_abcz_f32$(OBJ) \
+  test_ab_f32_z_bool$(OBJ) \
+  test_a_f64_z_ui32_rx$(OBJ) \
+  test_a_f64_z_ui64_rx$(OBJ) \
+  test_a_f64_z_i32_rx$(OBJ) \
+  test_a_f64_z_i64_rx$(OBJ) \
+  test_a_f64_z_ui32_x$(OBJ) \
+  test_a_f64_z_ui64_x$(OBJ) \
+  test_a_f64_z_i32_x$(OBJ) \
+  test_a_f64_z_i64_x$(OBJ) \
+  test_a_f64_z_f32$(OBJ) \
+  test_a_f64_z_extF80$(OBJ) \
+  test_a_f64_z_f128$(OBJ) \
+  test_az_f64$(OBJ) \
+  test_az_f64_rx$(OBJ) \
+  test_abz_f64$(OBJ) \
+  test_abcz_f64$(OBJ) \
+  test_ab_f64_z_bool$(OBJ) \
+  test_a_extF80_z_ui32_rx$(OBJ) \
+  test_a_extF80_z_ui64_rx$(OBJ) \
+  test_a_extF80_z_i32_rx$(OBJ) \
+  test_a_extF80_z_i64_rx$(OBJ) \
+  test_a_extF80_z_ui32_x$(OBJ) \
+  test_a_extF80_z_ui64_x$(OBJ) \
+  test_a_extF80_z_i32_x$(OBJ) \
+  test_a_extF80_z_i64_x$(OBJ) \
+  test_a_extF80_z_f32$(OBJ) \
+  test_a_extF80_z_f64$(OBJ) \
+  test_a_extF80_z_f128$(OBJ) \
+  test_az_extF80$(OBJ) \
+  test_az_extF80_rx$(OBJ) \
+  test_abz_extF80$(OBJ) \
+  test_ab_extF80_z_bool$(OBJ) \
+  test_a_f128_z_ui32_rx$(OBJ) \
+  test_a_f128_z_ui64_rx$(OBJ) \
+  test_a_f128_z_i32_rx$(OBJ) \
+  test_a_f128_z_i64_rx$(OBJ) \
+  test_a_f128_z_ui32_x$(OBJ) \
+  test_a_f128_z_ui64_x$(OBJ) \
+  test_a_f128_z_i32_x$(OBJ) \
+  test_a_f128_z_i64_x$(OBJ) \
+  test_a_f128_z_f32$(OBJ) \
+  test_a_f128_z_f64$(OBJ) \
+  test_a_f128_z_extF80$(OBJ) \
+  test_az_f128$(OBJ) \
+  test_az_f128_rx$(OBJ) \
+  test_abz_f128$(OBJ) \
+  test_abcz_f128$(OBJ) \
+  test_ab_f128_z_bool$(OBJ) \
+
+OBJS_LIB = \
+  uint128$(OBJ) \
+  fail$(OBJ) \
+  functions_common$(OBJ) \
+  functionInfos$(OBJ) \
+  standardFunctionInfos$(OBJ) \
+  random$(OBJ) \
+  genCases_common$(OBJ) \
+  $(OBJS_GENCASES) \
+  genCases_writeTestsTotal$(OBJ) \
+  verCases_common$(OBJ) \
+  verCases_writeFunctionName$(OBJ) \
+  readHex$(OBJ) \
+  writeHex$(OBJ) \
+  $(OBJS_WRITECASE) \
+  testLoops_common$(OBJ) \
+  $(OBJS_TEST) \
+
+uint128$(OBJ): $(SOURCE_DIR)/uint128.h
+fail$(OBJ): $(SOURCE_DIR)/fail.h
+functions_common$(OBJ): $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h
+functionInfos$(OBJ): $(SOURCE_DIR)/functions.h
+standardFunctionInfos$(OBJ): $(SOURCE_DIR)/functions.h
+random$(OBJ): $(SOURCE_DIR)/random.h
+genCases_common$(OBJ): $(SOURCE_DIR)/fail.h $(SOURCE_DIR)/genCases.h
+$(OBJS_GENCASES): \
+  $(SOURCE_DIR)/random.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h
+genCases_f128$(OBJ): $(SOURCE_DIR)/uint128.h
+genCases_writeTestsTotal$(OBJ): $(SOURCE_DIR)/genCases.h
+verCases_common$(OBJ): $(SOURCE_DIR)/verCases.h
+verCases_writeFunctionName$(OBJ): $(SOURCE_DIR)/verCases.h
+readHex$(OBJ): $(SOURCE_DIR)/readHex.h
+writeHex$(OBJ): $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h
+$(OBJS_WRITECASE): \
+  $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/writeCase.h
+testLoops_common$(OBJ): $(SOURCE_DIR)/testLoops.h
+$(OBJS_TEST): \
+  $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h \
+  $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/testLoops.h
+$(OBJS_LIB): %$(OBJ): platform.h $(SOURCE_DIR)/%.c
+	$(COMPILE_C) $(SOURCE_DIR)/$*.c
+testfloat$(LIB): $(OBJS_LIB)
+	$(MAKELIB) $^
+
+OBJS_TESTSOFTFLOAT = slowfloat$(OBJ) testsoftfloat$(OBJ)
+
+slowfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/slowfloat.c
+	$(COMPILE_SLOWFLOAT_C) $(SOURCE_DIR)/slowfloat.c
+testsoftfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/functions.h \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
+  $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testsoftfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/testsoftfloat.c
+
+testsoftfloat$(EXE): $(OBJS_TESTSOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+OBJS_TIMESOFTFLOAT = timesoftfloat$(OBJ)
+
+timesoftfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/timesoftfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/timesoftfloat.c
+
+timesoftfloat$(EXE): $(OBJS_TIMESOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+OBJS_TESTFLOAT_GEN = genLoops$(OBJ) testfloat_gen$(OBJ)
+
+genLoops$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/genLoops.h \
+  $(SOURCE_DIR)/genLoops.c
+	$(COMPILE_C) $(SOURCE_DIR)/genLoops.c
+testfloat_gen$(OBJ): \
+  $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/genLoops.h \
+  $(SOURCE_DIR)/testfloat_gen.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat_gen.c
+
+testfloat_gen$(EXE): $(OBJS_TESTFLOAT_GEN) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+OBJS_TESTFLOAT_VER = verLoops$(OBJ) testfloat_ver$(OBJ)
+
+verLoops$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/readHex.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
+  $(SOURCE_DIR)/verLoops.h $(SOURCE_DIR)/verLoops.c
+	$(COMPILE_C) $(SOURCE_DIR)/verLoops.c
+testfloat_ver$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/verCases.h \
+  $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/verLoops.h \
+  $(SOURCE_DIR)/testfloat_ver.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat_ver.c
+
+testfloat_ver$(EXE): $(OBJS_TESTFLOAT_VER) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+OBJS_TESTFLOAT = subjfloat$(OBJ) subjfloat_functions$(OBJ) testfloat$(OBJ)
+
+subjfloat$(OBJ): \
+  platform.h $(SOFTFLOAT_H) $(SUBJ_SOURCE_DIR)/subjfloat_config.h \
+  $(SOURCE_DIR)/subjfloat.h $(SUBJ_SOURCE_DIR)/subjfloat.c
+	$(COMPILE_C) $(SUBJ_SOURCE_DIR)/subjfloat.c
+subjfloat_functions$(OBJ): \
+  platform.h $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/subjfloat_functions.c
+	$(COMPILE_C) $(SOURCE_DIR)/subjfloat_functions.c
+testfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h \
+  $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat.c
+
+testfloat$(EXE): $(OBJS_TESTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+.PHONY: clean
+clean:
+	$(DELETE) $(OBJS_LIB) testfloat$(LIB)
+	$(DELETE) $(OBJS_TESTSOFTFLOAT) testsoftfloat$(EXE)
+	$(DELETE) $(OBJS_TIMESOFTFLOAT) timesoftfloat$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT_GEN) testfloat_gen$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT_VER) testfloat_ver$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT) testfloat$(EXE)
+
diff --git a/build/Win64-MinGW-w64/platform.h b/build/Win64-MinGW-w64/platform.h
new file mode 100644
index 0000000..4b38236
--- /dev/null
+++ b/build/Win64-MinGW-w64/platform.h
@@ -0,0 +1,42 @@
+
+/*============================================================================
+
+This C header file is part of TestFloat, Release 3, a package of programs for
+testing the correctness of floating-point arithmetic complying with the IEEE
+Standard for Floating-Point, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
+(Regents).  All Rights Reserved.  Redistribution and use in source and binary
+forms, with or without modification, are permitted provided that the following
+conditions are met:
+
+Redistributions of source code must retain the above copyright notice,
+this list of conditions, and the following two paragraphs of disclaimer.
+Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions, and the following two paragraphs of disclaimer in the
+documentation and/or other materials provided with the distribution.  Neither
+the name of the Regents nor the names of its contributors may be used to
+endorse or promote products derived from this software without specific prior
+written permission.
+
+IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING
+OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF REGENTS HAS
+BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
+HEREUNDER IS PROVIDED "AS IS".  REGENTS HAS NO OBLIGATION TO PROVIDE
+MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+=============================================================================*/
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
+#define LITTLEENDIAN 1
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
+#define INLINE extern inline
+
diff --git a/build/template/Makefile b/build/template/Makefile
new file mode 100644
index 0000000..69ae812
--- /dev/null
+++ b/build/template/Makefile
@@ -0,0 +1,315 @@
+
+#=============================================================================
+#
+# This Makefile template is part of TestFloat, Release 3, a package of
+# programs for testing the correctness of floating-point arithmetic complying
+# with the IEEE Standard for Floating-Point, by John R. Hauser.
+#
+# Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
+# (Regents).  All Rights Reserved.  Redistribution and use in source and
+# binary forms, with or without modification, are permitted provided that the
+# following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice,
+# this list of conditions, and the following two paragraphs of disclaimer.
+# Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions, and the following two paragraphs of disclaimer in
+# the documentation and/or other materials provided with the distribution.
+# Neither the name of the Regents nor the names of its contributors may be
+# used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+# SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
+# ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
+# REGENTS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE.  THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
+# HEREUNDER IS PROVIDED "AS IS".  REGENTS HAS NO OBLIGATION TO PROVIDE
+# MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+#
+#=============================================================================
+
+# Edit lines marked with `==>'.  See "TestFloat-source.html".
+
+==> SOURCE_DIR = ../../source
+==> SUBJ_SOURCE_DIR = $(SOURCE_DIR)/subj-C
+==> SOFTFLOAT_DIR = ../../../SoftFloat-3
+==> SOFTFLOAT_INCLUDE_DIR = $(SOFTFLOAT_DIR)/source/include
+==> PLATFORM = Win32-MinGW
+
+==> SOFTFLOAT_H = \
+==>   $(SOFTFLOAT_INCLUDE_DIR)/softfloat_types.h \
+==>   $(SOFTFLOAT_INCLUDE_DIR)/softfloat.h
+==> SOFTFLOAT_LIB = $(SOFTFLOAT_DIR)/build/$(PLATFORM)/softfloat$(LIB)
+
+==> TESTFLOAT_OPTS = -DEXTFLOAT80 -DFLOAT128 -DLONG_DOUBLE_IS_EXTFLOAT80
+
+==> DELETE = rm -f
+==> C_INCLUDES = \
+==>   -I. -I$(SUBJ_SOURCE_DIR) -I$(SOURCE_DIR) -I$(SOFTFLOAT_INCLUDE_DIR)
+==> COMPILE_C = cc -c $(TESTFLOAT_OPTS) $(C_INCLUDES) -O2 -o $@
+==> COMPILE_SLOWFLOAT_C = cc -c $(TESTFLOAT_OPTS) $(C_INCLUDES) -O3 -o $@
+==> MAKELIB = ar crs $@
+==> LINK = ld -o $@
+
+==> OBJ = .o
+==> LIB = .a
+==> EXE = .exe
+
+.PHONY: all
+all: \
+  testsoftfloat$(EXE) \
+  timesoftfloat$(EXE) \
+  testfloat_gen$(EXE) \
+  testfloat_ver$(EXE) \
+  testfloat$(EXE) \
+
+OBJS_GENCASES = \
+  genCases_ui32$(OBJ) \
+  genCases_ui64$(OBJ) \
+  genCases_i32$(OBJ) \
+  genCases_i64$(OBJ) \
+  genCases_f32$(OBJ) \
+  genCases_f64$(OBJ) \
+  genCases_extF80$(OBJ) \
+  genCases_f128$(OBJ) \
+
+OBJS_WRITECASE = \
+  writeCase_a_ui32$(OBJ) \
+  writeCase_a_ui64$(OBJ) \
+  writeCase_a_f32$(OBJ) \
+  writeCase_ab_f32$(OBJ) \
+  writeCase_abc_f32$(OBJ) \
+  writeCase_a_f64$(OBJ) \
+  writeCase_ab_f64$(OBJ) \
+  writeCase_abc_f64$(OBJ) \
+  writeCase_a_extF80M$(OBJ) \
+  writeCase_ab_extF80M$(OBJ) \
+  writeCase_abc_extF80M$(OBJ) \
+  writeCase_a_f128M$(OBJ) \
+  writeCase_ab_f128M$(OBJ) \
+  writeCase_abc_f128M$(OBJ) \
+  writeCase_z_bool$(OBJ) \
+  writeCase_z_ui32$(OBJ) \
+  writeCase_z_ui64$(OBJ) \
+  writeCase_z_f32$(OBJ) \
+  writeCase_z_f64$(OBJ) \
+  writeCase_z_extF80M$(OBJ) \
+  writeCase_z_f128M$(OBJ) \
+
+OBJS_TEST = \
+  test_a_ui32_z_f32$(OBJ) \
+  test_a_ui32_z_f64$(OBJ) \
+  test_a_ui32_z_extF80$(OBJ) \
+  test_a_ui32_z_f128$(OBJ) \
+  test_a_ui64_z_f32$(OBJ) \
+  test_a_ui64_z_f64$(OBJ) \
+  test_a_ui64_z_extF80$(OBJ) \
+  test_a_ui64_z_f128$(OBJ) \
+  test_a_i32_z_f32$(OBJ) \
+  test_a_i32_z_f64$(OBJ) \
+  test_a_i32_z_extF80$(OBJ) \
+  test_a_i32_z_f128$(OBJ) \
+  test_a_i64_z_f32$(OBJ) \
+  test_a_i64_z_f64$(OBJ) \
+  test_a_i64_z_extF80$(OBJ) \
+  test_a_i64_z_f128$(OBJ) \
+  test_a_f32_z_ui32_rx$(OBJ) \
+  test_a_f32_z_ui64_rx$(OBJ) \
+  test_a_f32_z_i32_rx$(OBJ) \
+  test_a_f32_z_i64_rx$(OBJ) \
+  test_a_f32_z_ui32_x$(OBJ) \
+  test_a_f32_z_ui64_x$(OBJ) \
+  test_a_f32_z_i32_x$(OBJ) \
+  test_a_f32_z_i64_x$(OBJ) \
+  test_a_f32_z_f64$(OBJ) \
+  test_a_f32_z_extF80$(OBJ) \
+  test_a_f32_z_f128$(OBJ) \
+  test_az_f32$(OBJ) \
+  test_az_f32_rx$(OBJ) \
+  test_abz_f32$(OBJ) \
+  test_abcz_f32$(OBJ) \
+  test_ab_f32_z_bool$(OBJ) \
+  test_a_f64_z_ui32_rx$(OBJ) \
+  test_a_f64_z_ui64_rx$(OBJ) \
+  test_a_f64_z_i32_rx$(OBJ) \
+  test_a_f64_z_i64_rx$(OBJ) \
+  test_a_f64_z_ui32_x$(OBJ) \
+  test_a_f64_z_ui64_x$(OBJ) \
+  test_a_f64_z_i32_x$(OBJ) \
+  test_a_f64_z_i64_x$(OBJ) \
+  test_a_f64_z_f32$(OBJ) \
+  test_a_f64_z_extF80$(OBJ) \
+  test_a_f64_z_f128$(OBJ) \
+  test_az_f64$(OBJ) \
+  test_az_f64_rx$(OBJ) \
+  test_abz_f64$(OBJ) \
+  test_abcz_f64$(OBJ) \
+  test_ab_f64_z_bool$(OBJ) \
+  test_a_extF80_z_ui32_rx$(OBJ) \
+  test_a_extF80_z_ui64_rx$(OBJ) \
+  test_a_extF80_z_i32_rx$(OBJ) \
+  test_a_extF80_z_i64_rx$(OBJ) \
+  test_a_extF80_z_ui32_x$(OBJ) \
+  test_a_extF80_z_ui64_x$(OBJ) \
+  test_a_extF80_z_i32_x$(OBJ) \
+  test_a_extF80_z_i64_x$(OBJ) \
+  test_a_extF80_z_f32$(OBJ) \
+  test_a_extF80_z_f64$(OBJ) \
+  test_a_extF80_z_f128$(OBJ) \
+  test_az_extF80$(OBJ) \
+  test_az_extF80_rx$(OBJ) \
+  test_abz_extF80$(OBJ) \
+  test_ab_extF80_z_bool$(OBJ) \
+  test_a_f128_z_ui32_rx$(OBJ) \
+  test_a_f128_z_ui64_rx$(OBJ) \
+  test_a_f128_z_i32_rx$(OBJ) \
+  test_a_f128_z_i64_rx$(OBJ) \
+  test_a_f128_z_ui32_x$(OBJ) \
+  test_a_f128_z_ui64_x$(OBJ) \
+  test_a_f128_z_i32_x$(OBJ) \
+  test_a_f128_z_i64_x$(OBJ) \
+  test_a_f128_z_f32$(OBJ) \
+  test_a_f128_z_f64$(OBJ) \
+  test_a_f128_z_extF80$(OBJ) \
+  test_az_f128$(OBJ) \
+  test_az_f128_rx$(OBJ) \
+  test_abz_f128$(OBJ) \
+  test_abcz_f128$(OBJ) \
+  test_ab_f128_z_bool$(OBJ) \
+
+OBJS_LIB = \
+  uint128$(OBJ) \
+  fail$(OBJ) \
+  functions_common$(OBJ) \
+  functionInfos$(OBJ) \
+  standardFunctionInfos$(OBJ) \
+  random$(OBJ) \
+  genCases_common$(OBJ) \
+  $(OBJS_GENCASES) \
+  genCases_writeTestsTotal$(OBJ) \
+  verCases_common$(OBJ) \
+  verCases_writeFunctionName$(OBJ) \
+  readHex$(OBJ) \
+  writeHex$(OBJ) \
+  $(OBJS_WRITECASE) \
+  testLoops_common$(OBJ) \
+  $(OBJS_TEST) \
+
+uint128$(OBJ): $(SOURCE_DIR)/uint128.h
+fail$(OBJ): $(SOURCE_DIR)/fail.h
+functions_common$(OBJ): $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h
+functionInfos$(OBJ): $(SOURCE_DIR)/functions.h
+standardFunctionInfos$(OBJ): $(SOURCE_DIR)/functions.h
+random$(OBJ): $(SOURCE_DIR)/random.h
+genCases_common$(OBJ): $(SOURCE_DIR)/fail.h $(SOURCE_DIR)/genCases.h
+$(OBJS_GENCASES): \
+  $(SOURCE_DIR)/random.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h
+genCases_f128$(OBJ): $(SOURCE_DIR)/uint128.h
+genCases_writeTestsTotal$(OBJ): $(SOURCE_DIR)/genCases.h
+verCases_common$(OBJ): $(SOURCE_DIR)/verCases.h
+verCases_writeFunctionName$(OBJ): $(SOURCE_DIR)/verCases.h
+readHex$(OBJ): $(SOURCE_DIR)/readHex.h
+writeHex$(OBJ): $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h
+$(OBJS_WRITECASE): \
+  $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/writeCase.h
+testLoops_common$(OBJ): $(SOURCE_DIR)/testLoops.h
+$(OBJS_TEST): \
+  $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h \
+  $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/testLoops.h
+$(OBJS_LIB): %$(OBJ): platform.h $(SOURCE_DIR)/%.c
+	$(COMPILE_C) $(SOURCE_DIR)/$*.c
+testfloat$(LIB): $(OBJS_LIB)
+	$(MAKELIB) $^
+
+OBJS_TESTSOFTFLOAT = slowfloat$(OBJ) testsoftfloat$(OBJ)
+
+slowfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/slowfloat.c
+	$(COMPILE_SLOWFLOAT_C) $(SOURCE_DIR)/slowfloat.c
+testsoftfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/functions.h \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
+  $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testsoftfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/testsoftfloat.c
+
+testsoftfloat$(EXE): $(OBJS_TESTSOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+OBJS_TIMESOFTFLOAT = timesoftfloat$(OBJ)
+
+timesoftfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/timesoftfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/timesoftfloat.c
+
+timesoftfloat$(EXE): $(OBJS_TIMESOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+OBJS_TESTFLOAT_GEN = genLoops$(OBJ) testfloat_gen$(OBJ)
+
+genLoops$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/genLoops.h \
+  $(SOURCE_DIR)/genLoops.c
+	$(COMPILE_C) $(SOURCE_DIR)/genLoops.c
+testfloat_gen$(OBJ): \
+  $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/genLoops.h \
+  $(SOURCE_DIR)/testfloat_gen.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat_gen.c
+
+testfloat_gen$(EXE): $(OBJS_TESTFLOAT_GEN) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+OBJS_TESTFLOAT_VER = verLoops$(OBJ) testfloat_ver$(OBJ)
+
+verLoops$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/readHex.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
+  $(SOURCE_DIR)/verLoops.h $(SOURCE_DIR)/verLoops.c
+	$(COMPILE_C) $(SOURCE_DIR)/verLoops.c
+testfloat_ver$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/verCases.h \
+  $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/verLoops.h \
+  $(SOURCE_DIR)/testfloat_ver.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat_ver.c
+
+testfloat_ver$(EXE): $(OBJS_TESTFLOAT_VER) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+OBJS_TESTFLOAT = subjfloat$(OBJ) subjfloat_functions$(OBJ) testfloat$(OBJ)
+
+subjfloat$(OBJ): \
+  platform.h $(SOFTFLOAT_H) $(SUBJ_SOURCE_DIR)/subjfloat_config.h \
+  $(SOURCE_DIR)/subjfloat.h $(SUBJ_SOURCE_DIR)/subjfloat.c
+	$(COMPILE_C) $(SUBJ_SOURCE_DIR)/subjfloat.c
+subjfloat_functions$(OBJ): \
+  platform.h $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/subjfloat_functions.c
+	$(COMPILE_C) $(SOURCE_DIR)/subjfloat_functions.c
+testfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h \
+  $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat.c
+
+testfloat$(EXE): $(OBJS_TESTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^
+
+.PHONY: clean
+clean:
+	$(DELETE) $(OBJS_LIB) testfloat$(LIB)
+	$(DELETE) $(OBJS_TESTSOFTFLOAT) testsoftfloat$(EXE)
+	$(DELETE) $(OBJS_TIMESOFTFLOAT) timesoftfloat$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT_GEN) testfloat_gen$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT_VER) testfloat_ver$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT) testfloat$(EXE)
+
diff --git a/build/template/platform.h b/build/template/platform.h
new file mode 100644
index 0000000..cc8f97b
--- /dev/null
+++ b/build/template/platform.h
@@ -0,0 +1,44 @@
+
+/*============================================================================
+
+This C header template is part of TestFloat, Release 3, a package of programs
+for testing the correctness of floating-point arithmetic complying with the
+IEEE Standard for Floating-Point, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014 The Regents of the University of California
+(Regents).  All Rights Reserved.  Redistribution and use in source and binary
+forms, with or without modification, are permitted provided that the following
+conditions are met:
+
+Redistributions of source code must retain the above copyright notice,
+this list of conditions, and the following two paragraphs of disclaimer.
+Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions, and the following two paragraphs of disclaimer in the
+documentation and/or other materials provided with the distribution.  Neither
+the name of the Regents nor the names of its contributors may be used to
+endorse or promote products derived from this software without specific prior
+written permission.
+
+IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING
+OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF REGENTS HAS
+BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
+HEREUNDER IS PROVIDED "AS IS".  REGENTS HAS NO OBLIGATION TO PROVIDE
+MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+=============================================================================*/
+
+// Edit lines marked with `==>'.  See "TestFloat-source.html".
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
+==> #define LITTLEENDIAN 1
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
+==> #define INLINE inline
+
diff --git a/doc/TestFloat-source.html b/doc/TestFloat-source.html
index a875479..9c42e59 100644
--- a/doc/TestFloat-source.html
+++ b/doc/TestFloat-source.html
@@ -60,7 +60,7 @@
 <P>
 The source code for TestFloat is intended to be relatively machine-independent.
 Most programs in the TestFloat package should be compilable with any
-ISO-standard C compiler that also supports <NOBR>64-bit</NOBR> integers.
+ISO-Standard C compiler that also supports <NOBR>64-bit</NOBR> integers.
 If the all-in-one <CODE>testfloat</CODE> program will be used to test a new
 floating-point implementation, additional effort will likely be required to
 retarget that program to invoke the new floating-point operations.
@@ -205,8 +205,10 @@
          subj-C
      build
          template
-         Win32-MinGW
          Linux-386-GCC
+         Linux-x86_64-GCC
+         Win32-MinGW
+         Win64-MinGW-w64
 </PRE>
 The majority of the TestFloat sources are provided in the <CODE>source</CODE>
 directory.
@@ -240,9 +242,11 @@
 are intended to follow a naming system of
 <NOBR><CODE>&lt;execution-environment&gt;-&lt;compiler&gt;</CODE></NOBR>.
 For the example targets,
-<NOBR><CODE>&lt;execution-environment&gt;</CODE></NOBR> is <CODE>Win32</CODE>
-and <CODE>Linux-386</CODE>, and <NOBR><CODE>&lt;compiler&gt;</CODE></NOBR> is
-<CODE>MinGW</CODE> and <CODE>GCC</CODE>, respectively.
+<NOBR><CODE>&lt;execution-environment&gt;</CODE></NOBR> is
+<NOBR><CODE>Linux-386</CODE></NOBR>, <NOBR><CODE>Linux-x86_64</CODE></NOBR>,
+<CODE>Win32</CODE>, or <CODE>Win64</CODE>, and
+<NOBR><CODE>&lt;compiler&gt;</CODE></NOBR> is <CODE>GCC</CODE>,
+<CODE>MinGW</CODE>, or <NOBR><CODE>MinGW-w64</CODE></NOBR>.
 </P>
 
 <P>
@@ -311,7 +315,7 @@
 <DT><CODE>SOFTFLOAT_LIB</CODE>
 <DD>
 The full path of the compiled SoftFloat library (usually
-<CODE>softfloat.a</CODE>).
+<CODE>softfloat.a</CODE> or <CODE>libsoftfloat.a</CODE>).
 </DL>
 </BLOCKQUOTE>
 </P>
@@ -521,7 +525,7 @@
 wasting time as well.
 If <CODE>rand</CODE> is better on a given target platform, or if another,
 better random number generator is available (such as <CODE>rand48</CODE> on
-most UNIX-derived systems), TestFloat can be improved by overriding the given
+UNIX-derived systems), TestFloat can be improved by overriding the given
 <CODE>random.c</CODE> with a target-specific one.
 </P>
 
diff --git a/source/genCases.h b/source/genCases.h
index d186592..56ef52a 100644
--- a/source/genCases.h
+++ b/source/genCases.h
@@ -45,19 +45,19 @@
 
 void genCases_ui32_a_init( void );
 void genCases_ui32_a_next( void );
-extern uint_fast32_t genCases_ui32_a;
+extern uint32_t genCases_ui32_a;
 
 void genCases_ui64_a_init( void );
 void genCases_ui64_a_next( void );
-extern uint_fast64_t genCases_ui64_a;
+extern uint64_t genCases_ui64_a;
 
 void genCases_i32_a_init( void );
 void genCases_i32_a_next( void );
-extern int_fast32_t genCases_i32_a;
+extern int32_t genCases_i32_a;
 
 void genCases_i64_a_init( void );
 void genCases_i64_a_next( void );
-extern int_fast64_t genCases_i64_a;
+extern int64_t genCases_i64_a;
 
 void genCases_f32_a_init( void );
 void genCases_f32_a_next( void );
diff --git a/source/genCases_i32.c b/source/genCases_i32.c
index bc3287a..2e03881 100644
--- a/source/genCases_i32.c
+++ b/source/genCases_i32.c
@@ -173,7 +173,7 @@
     0x00000003
 };
 
-static int_fast32_t i32NextP1( struct sequence *sequencePtr )
+static int32_t i32NextP1( struct sequence *sequencePtr )
 {
     int termNum;
     union ui32_i32 uZ;
@@ -192,7 +192,7 @@
 
 static const int_fast32_t i32NumP2 = (i32NumP1 * i32NumP1 + i32NumP1) / 2;
 
-static int_fast32_t i32NextP2( struct sequence *sequencePtr )
+static int32_t i32NextP2( struct sequence *sequencePtr )
 {
     int term1Num, term2Num;
     union ui32_i32 uZ;
@@ -215,7 +215,7 @@
 
 }
 
-static int_fast32_t i32RandomP3( void )
+static int32_t i32RandomP3( void )
 {
     union ui32_i32 uZ;
 
@@ -290,7 +290,7 @@
     0xFFFFFFF8
 };
 
-static int_fast32_t i32RandomPInf( void )
+static int32_t i32RandomPInf( void )
 {
     int weightMaskNum;
     union ui32_i32 uZ;
@@ -306,7 +306,7 @@
 static struct sequence sequenceA;
 static int subcase;
 
-int_fast32_t genCases_i32_a;
+int32_t genCases_i32_a;
 
 void genCases_i32_a_init( void )
 {
diff --git a/source/genCases_i64.c b/source/genCases_i64.c
index b98df8d..f912570 100644
--- a/source/genCases_i64.c
+++ b/source/genCases_i64.c
@@ -301,7 +301,7 @@
     UINT64_C( 0x0000000000000003 )
 };
 
-static int_fast64_t i64NextP1( struct sequence *sequencePtr )
+static int64_t i64NextP1( struct sequence *sequencePtr )
 {
     int termNum;
     union ui64_i64 uZ;
@@ -320,7 +320,7 @@
 
 static const int_fast64_t i64NumP2 = (i64NumP1 * i64NumP1 + i64NumP1) / 2;
 
-static int_fast64_t i64NextP2( struct sequence *sequencePtr )
+static int64_t i64NextP2( struct sequence *sequencePtr )
 {
     int term1Num, term2Num;
     union ui64_i64 uZ;
@@ -343,7 +343,7 @@
 
 }
 
-static int_fast64_t i64RandomP3( void )
+static int64_t i64RandomP3( void )
 {
     union ui64_i64 uZ;
 
@@ -482,7 +482,7 @@
     UINT64_C( 0xFFFFFFFFFFFFFFF8 )
 };
 
-static int_fast64_t i64RandomPInf( void )
+static int64_t i64RandomPInf( void )
 {
     int weightMaskNum;
     union ui64_i64 uZ;
@@ -498,7 +498,7 @@
 static struct sequence sequenceA;
 static int subcase;
 
-int_fast64_t genCases_i64_a;
+int64_t genCases_i64_a;
 
 void genCases_i64_a_init( void )
 {
diff --git a/source/genCases_ui32.c b/source/genCases_ui32.c
index 3b890cb..cbc6e58 100644
--- a/source/genCases_ui32.c
+++ b/source/genCases_ui32.c
@@ -171,10 +171,10 @@
     0x00000003
 };
 
-static uint_fast32_t ui32NextP1( struct sequence *sequencePtr )
+static uint32_t ui32NextP1( struct sequence *sequencePtr )
 {
     int termNum;
-    uint_fast32_t z;
+    uint32_t z;
 
     termNum = sequencePtr->term1Num;
     z = ui32P1[termNum];
@@ -190,10 +190,10 @@
 
 static const uint_fast32_t ui32NumP2 = (ui32NumP1 * ui32NumP1 + ui32NumP1) / 2;
 
-static uint_fast32_t ui32NextP2( struct sequence *sequencePtr )
+static uint32_t ui32NextP2( struct sequence *sequencePtr )
 {
     int term1Num, term2Num;
-    uint_fast32_t z;
+    uint32_t z;
 
     term2Num = sequencePtr->term2Num;
     term1Num = sequencePtr->term1Num;
@@ -213,7 +213,7 @@
 
 }
 
-static uint_fast32_t ui32RandomP3( void )
+static uint32_t ui32RandomP3( void )
 {
 
     return
@@ -255,7 +255,7 @@
     0x0000000F
 };
 
-static uint_fast32_t ui32RandomPInf( void )
+static uint32_t ui32RandomPInf( void )
 {
     int weightMaskNum;
 
@@ -267,7 +267,7 @@
 static struct sequence sequenceA;
 static int subcase;
 
-uint_fast32_t genCases_ui32_a;
+uint32_t genCases_ui32_a;
 
 void genCases_ui32_a_init( void )
 {
diff --git a/source/genCases_ui64.c b/source/genCases_ui64.c
index 51dc428..c3526f3 100644
--- a/source/genCases_ui64.c
+++ b/source/genCases_ui64.c
@@ -299,10 +299,10 @@
     UINT64_C( 0x0000000000000003 )
 };
 
-static uint_fast64_t ui64NextP1( struct sequence *sequencePtr )
+static uint64_t ui64NextP1( struct sequence *sequencePtr )
 {
     int termNum;
-    uint_fast64_t z;
+    uint64_t z;
 
     termNum = sequencePtr->term1Num;
     z = ui64P1[termNum];
@@ -318,10 +318,10 @@
 
 static const uint_fast64_t ui64NumP2 = (ui64NumP1 * ui64NumP1 + ui64NumP1) / 2;
 
-static uint_fast64_t ui64NextP2( struct sequence *sequencePtr )
+static uint64_t ui64NextP2( struct sequence *sequencePtr )
 {
     int term1Num, term2Num;
-    uint_fast64_t z;
+    uint64_t z;
 
     term2Num = sequencePtr->term2Num;
     term1Num = sequencePtr->term1Num;
@@ -341,7 +341,7 @@
 
 }
 
-static uint_fast64_t ui64RandomP3( void )
+static uint64_t ui64RandomP3( void )
 {
 
     return
@@ -415,7 +415,7 @@
     UINT64_C( 0x000000000000000F )
 };
 
-static uint_fast64_t ui64RandomPInf( void )
+static uint64_t ui64RandomPInf( void )
 {
     int weightMaskNum;
 
@@ -427,7 +427,7 @@
 static struct sequence sequenceA;
 static int subcase;
 
-uint_fast64_t genCases_ui64_a;
+uint64_t genCases_ui64_a;
 
 void genCases_ui64_a_init( void )
 {
diff --git a/source/genLoops.c b/source/genLoops.c
index 893c344..179ebea 100644
--- a/source/genLoops.c
+++ b/source/genLoops.c
@@ -474,7 +474,7 @@
 
 #endif
 
-void gen_a_ui32_z_f32( float32_t trueFunction( uint_fast32_t ) )
+void gen_a_ui32_z_f32( float32_t trueFunction( uint32_t ) )
 {
     union ui32_f32 uTrueZ;
     uint_fast8_t trueFlags;
@@ -492,7 +492,7 @@
 
 }
 
-void gen_a_ui32_z_f64( float64_t trueFunction( uint_fast32_t ) )
+void gen_a_ui32_z_f64( float64_t trueFunction( uint32_t ) )
 {
     union ui64_f64 uTrueZ;
     uint_fast8_t trueFlags;
@@ -512,7 +512,7 @@
 
 #ifdef EXTFLOAT80
 
-void gen_a_ui32_z_extF80( void trueFunction( uint_fast32_t, extFloat80_t * ) )
+void gen_a_ui32_z_extF80( void trueFunction( uint32_t, extFloat80_t * ) )
 {
     extFloat80_t trueZ;
     uint_fast8_t trueFlags;
@@ -534,7 +534,7 @@
 
 #ifdef FLOAT128
 
-void gen_a_ui32_z_f128( void trueFunction( uint_fast32_t, float128_t * ) )
+void gen_a_ui32_z_f128( void trueFunction( uint32_t, float128_t * ) )
 {
     float128_t trueZ;
     uint_fast8_t trueFlags;
@@ -554,7 +554,7 @@
 
 #endif
 
-void gen_a_ui64_z_f32( float32_t trueFunction( uint_fast64_t ) )
+void gen_a_ui64_z_f32( float32_t trueFunction( uint64_t ) )
 {
     union ui32_f32 uTrueZ;
     uint_fast8_t trueFlags;
@@ -572,7 +572,7 @@
 
 }
 
-void gen_a_ui64_z_f64( float64_t trueFunction( uint_fast64_t ) )
+void gen_a_ui64_z_f64( float64_t trueFunction( uint64_t ) )
 {
     union ui64_f64 uTrueZ;
     uint_fast8_t trueFlags;
@@ -592,7 +592,7 @@
 
 #ifdef EXTFLOAT80
 
-void gen_a_ui64_z_extF80( void trueFunction( uint_fast64_t, extFloat80_t * ) )
+void gen_a_ui64_z_extF80( void trueFunction( uint64_t, extFloat80_t * ) )
 {
     extFloat80_t trueZ;
     uint_fast8_t trueFlags;
@@ -614,7 +614,7 @@
 
 #ifdef FLOAT128
 
-void gen_a_ui64_z_f128( void trueFunction( uint_fast64_t, float128_t * ) )
+void gen_a_ui64_z_f128( void trueFunction( uint64_t, float128_t * ) )
 {
     float128_t trueZ;
     uint_fast8_t trueFlags;
@@ -634,7 +634,7 @@
 
 #endif
 
-void gen_a_i32_z_f32( float32_t trueFunction( int_fast32_t ) )
+void gen_a_i32_z_f32( float32_t trueFunction( int32_t ) )
 {
     union ui32_f32 uTrueZ;
     uint_fast8_t trueFlags;
@@ -652,7 +652,7 @@
 
 }
 
-void gen_a_i32_z_f64( float64_t trueFunction( int_fast32_t ) )
+void gen_a_i32_z_f64( float64_t trueFunction( int32_t ) )
 {
     union ui64_f64 uTrueZ;
     uint_fast8_t trueFlags;
@@ -672,7 +672,7 @@
 
 #ifdef EXTFLOAT80
 
-void gen_a_i32_z_extF80( void trueFunction( int_fast32_t, extFloat80_t * ) )
+void gen_a_i32_z_extF80( void trueFunction( int32_t, extFloat80_t * ) )
 {
     extFloat80_t trueZ;
     uint_fast8_t trueFlags;
@@ -694,7 +694,7 @@
 
 #ifdef FLOAT128
 
-void gen_a_i32_z_f128( void trueFunction( int_fast32_t, float128_t * ) )
+void gen_a_i32_z_f128( void trueFunction( int32_t, float128_t * ) )
 {
     float128_t trueZ;
     uint_fast8_t trueFlags;
@@ -714,7 +714,7 @@
 
 #endif
 
-void gen_a_i64_z_f32( float32_t trueFunction( int_fast64_t ) )
+void gen_a_i64_z_f32( float32_t trueFunction( int64_t ) )
 {
     union ui32_f32 uTrueZ;
     uint_fast8_t trueFlags;
@@ -732,7 +732,7 @@
 
 }
 
-void gen_a_i64_z_f64( float64_t trueFunction( int_fast64_t ) )
+void gen_a_i64_z_f64( float64_t trueFunction( int64_t ) )
 {
     union ui64_f64 uTrueZ;
     uint_fast8_t trueFlags;
@@ -752,7 +752,7 @@
 
 #ifdef EXTFLOAT80
 
-void gen_a_i64_z_extF80( void trueFunction( int_fast64_t, extFloat80_t * ) )
+void gen_a_i64_z_extF80( void trueFunction( int64_t, extFloat80_t * ) )
 {
     extFloat80_t trueZ;
     uint_fast8_t trueFlags;
@@ -774,7 +774,7 @@
 
 #ifdef FLOAT128
 
-void gen_a_i64_z_f128( void trueFunction( int_fast64_t, float128_t * ) )
+void gen_a_i64_z_f128( void trueFunction( int64_t, float128_t * ) )
 {
     float128_t trueZ;
     uint_fast8_t trueFlags;
diff --git a/source/genLoops.h b/source/genLoops.h
index 74ac42e..8cb5ded 100644
--- a/source/genLoops.h
+++ b/source/genLoops.h
@@ -64,37 +64,37 @@
 void gen_abc_f128( void );
 #endif
 
-void gen_a_ui32_z_f32( float32_t ( uint_fast32_t ) );
-void gen_a_ui32_z_f64( float64_t ( uint_fast32_t ) );
+void gen_a_ui32_z_f32( float32_t ( uint32_t ) );
+void gen_a_ui32_z_f64( float64_t ( uint32_t ) );
 #ifdef EXTFLOAT80
-void gen_a_ui32_z_extF80( void ( uint_fast32_t, extFloat80_t * ) );
+void gen_a_ui32_z_extF80( void ( uint32_t, extFloat80_t * ) );
 #endif
 #ifdef FLOAT128
-void gen_a_ui32_z_f128( void ( uint_fast32_t, float128_t * ) );
+void gen_a_ui32_z_f128( void ( uint32_t, float128_t * ) );
 #endif
-void gen_a_ui64_z_f32( float32_t ( uint_fast64_t ) );
-void gen_a_ui64_z_f64( float64_t ( uint_fast64_t ) );
+void gen_a_ui64_z_f32( float32_t ( uint64_t ) );
+void gen_a_ui64_z_f64( float64_t ( uint64_t ) );
 #ifdef EXTFLOAT80
-void gen_a_ui64_z_extF80( void ( uint_fast64_t, extFloat80_t * ) );
+void gen_a_ui64_z_extF80( void ( uint64_t, extFloat80_t * ) );
 #endif
 #ifdef FLOAT128
-void gen_a_ui64_z_f128( void ( uint_fast64_t, float128_t * ) );
+void gen_a_ui64_z_f128( void ( uint64_t, float128_t * ) );
 #endif
-void gen_a_i32_z_f32( float32_t ( int_fast32_t ) );
-void gen_a_i32_z_f64( float64_t ( int_fast32_t ) );
+void gen_a_i32_z_f32( float32_t ( int32_t ) );
+void gen_a_i32_z_f64( float64_t ( int32_t ) );
 #ifdef EXTFLOAT80
-void gen_a_i32_z_extF80( void ( int_fast32_t, extFloat80_t * ) );
+void gen_a_i32_z_extF80( void ( int32_t, extFloat80_t * ) );
 #endif
 #ifdef FLOAT128
-void gen_a_i32_z_f128( void ( int_fast32_t, float128_t * ) );
+void gen_a_i32_z_f128( void ( int32_t, float128_t * ) );
 #endif
-void gen_a_i64_z_f32( float32_t ( int_fast64_t ) );
-void gen_a_i64_z_f64( float64_t ( int_fast64_t ) );
+void gen_a_i64_z_f32( float32_t ( int64_t ) );
+void gen_a_i64_z_f64( float64_t ( int64_t ) );
 #ifdef EXTFLOAT80
-void gen_a_i64_z_extF80( void ( int_fast64_t, extFloat80_t * ) );
+void gen_a_i64_z_extF80( void ( int64_t, extFloat80_t * ) );
 #endif
 #ifdef FLOAT128
-void gen_a_i64_z_f128( void ( int_fast64_t, float128_t * ) );
+void gen_a_i64_z_f128( void ( int64_t, float128_t * ) );
 #endif
 
 void
diff --git a/source/subj-C/subjfloat.c b/source/subj-C/subjfloat.c
index 4d1a0d6..52a5911 100644
--- a/source/subj-C/subjfloat.c
+++ b/source/subj-C/subjfloat.c
@@ -94,7 +94,7 @@
 union f32_f { float32_t f32; float f; };
 union f64_d { float64_t f64; double d; };
 
-float32_t subj_ui32_to_f32( uint_fast32_t a )
+float32_t subj_ui32_to_f32( uint32_t a )
 {
     union f32_f uZ;
 
@@ -103,7 +103,7 @@
 
 }
 
-float64_t subj_ui32_to_f64( uint_fast32_t a )
+float64_t subj_ui32_to_f64( uint32_t a )
 {
     union f64_d uZ;
 
@@ -112,7 +112,7 @@
 
 }
 
-float32_t subj_ui64_to_f32( uint_fast64_t a )
+float32_t subj_ui64_to_f32( uint64_t a )
 {
     union f32_f uZ;
 
@@ -121,7 +121,7 @@
 
 }
 
-float64_t subj_ui64_to_f64( uint_fast64_t a )
+float64_t subj_ui64_to_f64( uint64_t a )
 {
     union f64_d uZ;
 
@@ -130,7 +130,7 @@
 
 }
 
-float32_t subj_i32_to_f32( int_fast32_t a )
+float32_t subj_i32_to_f32( int32_t a )
 {
     union f32_f uZ;
 
@@ -139,7 +139,7 @@
 
 }
 
-float64_t subj_i32_to_f64( int_fast32_t a )
+float64_t subj_i32_to_f64( int32_t a )
 {
     union f64_d uZ;
 
@@ -148,7 +148,7 @@
 
 }
 
-float32_t subj_i64_to_f32( int_fast64_t a )
+float32_t subj_i64_to_f32( int64_t a )
 {
     union f32_f uZ;
 
@@ -157,7 +157,7 @@
 
 }
 
-float64_t subj_i64_to_f64( int_fast64_t a )
+float64_t subj_i64_to_f64( int64_t a )
 {
     union f64_d uZ;
 
@@ -420,28 +420,28 @@
 
 #if defined EXTFLOAT80 && defined LONG_DOUBLE_IS_EXTFLOAT80
 
-void subj_ui32_to_extF80M( uint_fast32_t a, extFloat80_t *zPtr )
+void subj_ui32_to_extF80M( uint32_t a, extFloat80_t *zPtr )
 {
 
     *((long double *) zPtr) = a;
 
 }
 
-void subj_ui64_to_extF80M( uint_fast64_t a, extFloat80_t *zPtr )
+void subj_ui64_to_extF80M( uint64_t a, extFloat80_t *zPtr )
 {
 
     *((long double *) zPtr) = a;
 
 }
 
-void subj_i32_to_extF80M( int_fast32_t a, extFloat80_t *zPtr )
+void subj_i32_to_extF80M( int32_t a, extFloat80_t *zPtr )
 {
 
     *((long double *) zPtr) = a;
 
 }
 
-void subj_i64_to_extF80M( int_fast64_t a, extFloat80_t *zPtr )
+void subj_i64_to_extF80M( int64_t a, extFloat80_t *zPtr )
 {
 
     *((long double *) zPtr) = a;
@@ -577,28 +577,28 @@
 
 #if defined FLOAT128 && defined LONG_DOUBLE_IS_FLOAT128
 
-void subj_ui32_to_f128M( uint_fast32_t a, float128_t *zPtr )
+void subj_ui32_to_f128M( uint32_t a, float128_t *zPtr )
 {
 
     *((long double *) zPtr) = a;
 
 }
 
-void subj_ui64_to_f128M( uint_fast64_t a, float128_t *zPtr )
+void subj_ui64_to_f128M( uint64_t a, float128_t *zPtr )
 {
 
     *((long double *) zPtr) = a;
 
 }
 
-void subj_i32_to_f128M( int_fast32_t a, float128_t *zPtr )
+void subj_i32_to_f128M( int32_t a, float128_t *zPtr )
 {
 
     *((long double *) zPtr) = a;
 
 }
 
-void subj_i64_to_f128M( int_fast64_t a, float128_t *zPtr )
+void subj_i64_to_f128M( int64_t a, float128_t *zPtr )
 {
 
     *((long double *) zPtr) = a;
diff --git a/source/subjfloat.h b/source/subjfloat.h
index 4423944..44d6964 100644
--- a/source/subjfloat.h
+++ b/source/subjfloat.h
@@ -51,37 +51,37 @@
 
 /*----------------------------------------------------------------------------
 *----------------------------------------------------------------------------*/
-float32_t subj_ui32_to_f32( uint_fast32_t );
-float64_t subj_ui32_to_f64( uint_fast32_t );
+float32_t subj_ui32_to_f32( uint32_t );
+float64_t subj_ui32_to_f64( uint32_t );
 #ifdef EXTFLOAT80
-void subj_ui32_to_extF80M( uint_fast32_t, extFloat80_t * );
+void subj_ui32_to_extF80M( uint32_t, extFloat80_t * );
 #endif
 #ifdef FLOAT128
-void subj_ui32_to_f128M( uint_fast32_t, float128_t * );
+void subj_ui32_to_f128M( uint32_t, float128_t * );
 #endif
-float32_t subj_ui64_to_f32( uint_fast64_t );
-float64_t subj_ui64_to_f64( uint_fast64_t );
+float32_t subj_ui64_to_f32( uint64_t );
+float64_t subj_ui64_to_f64( uint64_t );
 #ifdef EXTFLOAT80
-void subj_ui64_to_extF80M( uint_fast64_t, extFloat80_t * );
+void subj_ui64_to_extF80M( uint64_t, extFloat80_t * );
 #endif
 #ifdef FLOAT128
-void subj_ui64_to_f128M( uint_fast64_t, float128_t * );
+void subj_ui64_to_f128M( uint64_t, float128_t * );
 #endif
-float32_t subj_i32_to_f32( int_fast32_t );
-float64_t subj_i32_to_f64( int_fast32_t );
+float32_t subj_i32_to_f32( int32_t );
+float64_t subj_i32_to_f64( int32_t );
 #ifdef EXTFLOAT80
-void subj_i32_to_extF80M( int_fast32_t, extFloat80_t * );
+void subj_i32_to_extF80M( int32_t, extFloat80_t * );
 #endif
 #ifdef FLOAT128
-void subj_i32_to_f128M( int_fast32_t, float128_t * );
+void subj_i32_to_f128M( int32_t, float128_t * );
 #endif
-float32_t subj_i64_to_f32( int_fast64_t );
-float64_t subj_i64_to_f64( int_fast64_t );
+float32_t subj_i64_to_f32( int64_t );
+float64_t subj_i64_to_f64( int64_t );
 #ifdef EXTFLOAT80
-void subj_i64_to_extF80M( int_fast64_t, extFloat80_t * );
+void subj_i64_to_extF80M( int64_t, extFloat80_t * );
 #endif
 #ifdef FLOAT128
-void subj_i64_to_f128M( int_fast64_t, float128_t * );
+void subj_i64_to_f128M( int64_t, float128_t * );
 #endif
 
 /*----------------------------------------------------------------------------
diff --git a/source/test_a_extF80_z_ui64_rx.c b/source/test_a_extF80_z_ui64_rx.c
index 83dff24..71bf340 100644
--- a/source/test_a_extF80_z_ui64_rx.c
+++ b/source/test_a_extF80_z_ui64_rx.c
@@ -92,7 +92,7 @@
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
-                writeCase_a_extF80M( &genCases_extF80_a, "  " );
+                writeCase_a_extF80M( &genCases_extF80_a, "\n\t" );
                 writeCase_z_ui64( trueZ, trueFlags, subjZ, subjFlags );
                 if ( verCases_errorCount == verCases_maxErrorCount ) break;
             }
diff --git a/source/testfloat.c b/source/testfloat.c
index 73044f8..bc8e820 100644
--- a/source/testfloat.c
+++ b/source/testfloat.c
@@ -58,37 +58,37 @@
 
 static void (*subjFunctionPtr)();
 
-typedef float32_t funcType_a_ui32_z_f32( uint_fast32_t );
-typedef float64_t funcType_a_ui32_z_f64( uint_fast32_t );
+typedef float32_t funcType_a_ui32_z_f32( uint32_t );
+typedef float64_t funcType_a_ui32_z_f64( uint32_t );
 #ifdef EXTFLOAT80
-typedef void funcType_a_ui32_z_extF80( uint_fast32_t, extFloat80_t * );
+typedef void funcType_a_ui32_z_extF80( uint32_t, extFloat80_t * );
 #endif
 #ifdef FLOAT128
-typedef void funcType_a_ui32_z_f128( uint_fast32_t, float128_t * );
+typedef void funcType_a_ui32_z_f128( uint32_t, float128_t * );
 #endif
-typedef float32_t funcType_a_ui64_z_f32( uint_fast64_t );
-typedef float64_t funcType_a_ui64_z_f64( uint_fast64_t );
+typedef float32_t funcType_a_ui64_z_f32( uint64_t );
+typedef float64_t funcType_a_ui64_z_f64( uint64_t );
 #ifdef EXTFLOAT80
-typedef void funcType_a_ui64_z_extF80( uint_fast64_t, extFloat80_t * );
+typedef void funcType_a_ui64_z_extF80( uint64_t, extFloat80_t * );
 #endif
 #ifdef FLOAT128
-typedef void funcType_a_ui64_z_f128( uint_fast64_t, float128_t * );
+typedef void funcType_a_ui64_z_f128( uint64_t, float128_t * );
 #endif
-typedef float32_t funcType_a_i32_z_f32( int_fast32_t );
-typedef float64_t funcType_a_i32_z_f64( int_fast32_t );
+typedef float32_t funcType_a_i32_z_f32( int32_t );
+typedef float64_t funcType_a_i32_z_f64( int32_t );
 #ifdef EXTFLOAT80
-typedef void funcType_a_i32_z_extF80( int_fast32_t, extFloat80_t * );
+typedef void funcType_a_i32_z_extF80( int32_t, extFloat80_t * );
 #endif
 #ifdef FLOAT128
-typedef void funcType_a_i32_z_f128( int_fast32_t, float128_t * );
+typedef void funcType_a_i32_z_f128( int32_t, float128_t * );
 #endif
-typedef float32_t funcType_a_i64_z_f32( int_fast64_t );
-typedef float64_t funcType_a_i64_z_f64( int_fast64_t );
+typedef float32_t funcType_a_i64_z_f32( int64_t );
+typedef float64_t funcType_a_i64_z_f64( int64_t );
 #ifdef EXTFLOAT80
-typedef void funcType_a_i64_z_extF80( int_fast64_t, extFloat80_t * );
+typedef void funcType_a_i64_z_extF80( int64_t, extFloat80_t * );
 #endif
 #ifdef FLOAT128
-typedef void funcType_a_i64_z_f128( int_fast64_t, float128_t * );
+typedef void funcType_a_i64_z_f128( int64_t, float128_t * );
 #endif
 
 typedef uint_fast32_t funcType_a_f32_z_ui32( float32_t );
diff --git a/source/verLoops.c b/source/verLoops.c
index b607a4d..fe162b4 100644
--- a/source/verLoops.c
+++ b/source/verLoops.c
@@ -184,7 +184,7 @@
 
 /*----------------------------------------------------------------------------
 *----------------------------------------------------------------------------*/
-void ver_a_ui32_z_f32( float32_t trueFunction( uint_fast32_t ) )
+void ver_a_ui32_z_f32( float32_t trueFunction( uint32_t ) )
 {
     int count;
     uint_fast32_t a;
@@ -228,7 +228,7 @@
 
 }
 
-void ver_a_ui32_z_f64( float64_t trueFunction( uint_fast32_t ) )
+void ver_a_ui32_z_f64( float64_t trueFunction( uint32_t ) )
 {
     int count;
     uint_fast32_t a;
@@ -274,7 +274,7 @@
 
 #ifdef EXTFLOAT80
 
-void ver_a_ui32_z_extF80( void trueFunction( uint_fast32_t, extFloat80_t * ) )
+void ver_a_ui32_z_extF80( void trueFunction( uint32_t, extFloat80_t * ) )
 {
     int count;
     uint_fast32_t a;
@@ -322,7 +322,7 @@
 
 #ifdef FLOAT128
 
-void ver_a_ui32_z_f128( void trueFunction( uint_fast32_t, float128_t * ) )
+void ver_a_ui32_z_f128( void trueFunction( uint32_t, float128_t * ) )
 {
     int count;
     uint_fast32_t a;
@@ -370,7 +370,7 @@
 
 /*----------------------------------------------------------------------------
 *----------------------------------------------------------------------------*/
-void ver_a_ui64_z_f32( float32_t trueFunction( uint_fast64_t ) )
+void ver_a_ui64_z_f32( float32_t trueFunction( uint64_t ) )
 {
     int count;
     uint_fast64_t a;
@@ -414,7 +414,7 @@
 
 }
 
-void ver_a_ui64_z_f64( float64_t trueFunction( uint_fast64_t ) )
+void ver_a_ui64_z_f64( float64_t trueFunction( uint64_t ) )
 {
     int count;
     uint_fast64_t a;
@@ -460,7 +460,7 @@
 
 #ifdef EXTFLOAT80
 
-void ver_a_ui64_z_extF80( void trueFunction( uint_fast64_t, extFloat80_t * ) )
+void ver_a_ui64_z_extF80( void trueFunction( uint64_t, extFloat80_t * ) )
 {
     int count;
     uint_fast64_t a;
@@ -508,7 +508,7 @@
 
 #ifdef FLOAT128
 
-void ver_a_ui64_z_f128( void trueFunction( uint_fast64_t, float128_t * ) )
+void ver_a_ui64_z_f128( void trueFunction( uint64_t, float128_t * ) )
 {
     int count;
     uint_fast64_t a;
@@ -556,7 +556,7 @@
 
 /*----------------------------------------------------------------------------
 *----------------------------------------------------------------------------*/
-void ver_a_i32_z_f32( float32_t trueFunction( int_fast32_t ) )
+void ver_a_i32_z_f32( float32_t trueFunction( int32_t ) )
 {
     int count;
     int_fast32_t a;
@@ -600,7 +600,7 @@
 
 }
 
-void ver_a_i32_z_f64( float64_t trueFunction( int_fast32_t ) )
+void ver_a_i32_z_f64( float64_t trueFunction( int32_t ) )
 {
     int count;
     int_fast32_t a;
@@ -646,7 +646,7 @@
 
 #ifdef EXTFLOAT80
 
-void ver_a_i32_z_extF80( void trueFunction( int_fast32_t, extFloat80_t * ) )
+void ver_a_i32_z_extF80( void trueFunction( int32_t, extFloat80_t * ) )
 {
     int count;
     int_fast32_t a;
@@ -694,7 +694,7 @@
 
 #ifdef FLOAT128
 
-void ver_a_i32_z_f128( void trueFunction( int_fast32_t, float128_t * ) )
+void ver_a_i32_z_f128( void trueFunction( int32_t, float128_t * ) )
 {
     int count;
     int_fast32_t a;
@@ -742,7 +742,7 @@
 
 /*----------------------------------------------------------------------------
 *----------------------------------------------------------------------------*/
-void ver_a_i64_z_f32( float32_t trueFunction( int_fast64_t ) )
+void ver_a_i64_z_f32( float32_t trueFunction( int64_t ) )
 {
     int count;
     int_fast64_t a;
@@ -786,7 +786,7 @@
 
 }
 
-void ver_a_i64_z_f64( float64_t trueFunction( int_fast64_t ) )
+void ver_a_i64_z_f64( float64_t trueFunction( int64_t ) )
 {
     int count;
     int_fast64_t a;
@@ -832,7 +832,7 @@
 
 #ifdef EXTFLOAT80
 
-void ver_a_i64_z_extF80( void trueFunction( int_fast64_t, extFloat80_t * ) )
+void ver_a_i64_z_extF80( void trueFunction( int64_t, extFloat80_t * ) )
 {
     int count;
     int_fast64_t a;
@@ -880,7 +880,7 @@
 
 #ifdef FLOAT128
 
-void ver_a_i64_z_f128( void trueFunction( int_fast64_t, float128_t * ) )
+void ver_a_i64_z_f128( void trueFunction( int64_t, float128_t * ) )
 {
     int count;
     int_fast64_t a;
diff --git a/source/verLoops.h b/source/verLoops.h
index b575641..63fae3d 100644
--- a/source/verLoops.h
+++ b/source/verLoops.h
@@ -38,37 +38,37 @@
 
 extern uint_fast8_t *verLoops_trueFlagsPtr;
 
-void ver_a_ui32_z_f32( float32_t ( uint_fast32_t ) );
-void ver_a_ui32_z_f64( float64_t ( uint_fast32_t ) );
+void ver_a_ui32_z_f32( float32_t ( uint32_t ) );
+void ver_a_ui32_z_f64( float64_t ( uint32_t ) );
 #ifdef EXTFLOAT80
-void ver_a_ui32_z_extF80( void ( uint_fast32_t, extFloat80_t * ) );
+void ver_a_ui32_z_extF80( void ( uint32_t, extFloat80_t * ) );
 #endif
 #ifdef FLOAT128
-void ver_a_ui32_z_f128( void ( uint_fast32_t, float128_t * ) );
+void ver_a_ui32_z_f128( void ( uint32_t, float128_t * ) );
 #endif
-void ver_a_ui64_z_f32( float32_t ( uint_fast64_t ) );
-void ver_a_ui64_z_f64( float64_t ( uint_fast64_t ) );
+void ver_a_ui64_z_f32( float32_t ( uint64_t ) );
+void ver_a_ui64_z_f64( float64_t ( uint64_t ) );
 #ifdef EXTFLOAT80
-void ver_a_ui64_z_extF80( void ( uint_fast64_t, extFloat80_t * ) );
+void ver_a_ui64_z_extF80( void ( uint64_t, extFloat80_t * ) );
 #endif
 #ifdef FLOAT128
-void ver_a_ui64_z_f128( void ( uint_fast64_t, float128_t * ) );
+void ver_a_ui64_z_f128( void ( uint64_t, float128_t * ) );
 #endif
-void ver_a_i32_z_f32( float32_t ( int_fast32_t ) );
-void ver_a_i32_z_f64( float64_t ( int_fast32_t ) );
+void ver_a_i32_z_f32( float32_t ( int32_t ) );
+void ver_a_i32_z_f64( float64_t ( int32_t ) );
 #ifdef EXTFLOAT80
-void ver_a_i32_z_extF80( void ( int_fast32_t, extFloat80_t * ) );
+void ver_a_i32_z_extF80( void ( int32_t, extFloat80_t * ) );
 #endif
 #ifdef FLOAT128
-void ver_a_i32_z_f128( void ( int_fast32_t, float128_t * ) );
+void ver_a_i32_z_f128( void ( int32_t, float128_t * ) );
 #endif
-void ver_a_i64_z_f32( float32_t ( int_fast64_t ) );
-void ver_a_i64_z_f64( float64_t ( int_fast64_t ) );
+void ver_a_i64_z_f32( float32_t ( int64_t ) );
+void ver_a_i64_z_f64( float64_t ( int64_t ) );
 #ifdef EXTFLOAT80
-void ver_a_i64_z_extF80( void ( int_fast64_t, extFloat80_t * ) );
+void ver_a_i64_z_extF80( void ( int64_t, extFloat80_t * ) );
 #endif
 #ifdef FLOAT128
-void ver_a_i64_z_f128( void ( int_fast64_t, float128_t * ) );
+void ver_a_i64_z_f128( void ( int64_t, float128_t * ) );
 #endif
 
 void