From 3503f7f3845caba454949fdf8408e85ca4fdb943 Mon Sep 17 00:00:00 2001
|
From: Zong Li <zong.li@sifive.com>
|
Date: Wed, 6 May 2020 01:25:55 -0700
|
Subject: [PATCH] Makefile for cross compile TestFloat 3e
|
|
This commit adds a Makefile for cross compile on TestFloat
|
3e version. Almost implementation is based on meta-oe porting
|
from Fabio Berton <fabio.berton@ossystems.com.br>.
|
|
Signed-off-by: Zong Li <zongbox@gmail.com>
|
---
|
TestFloat-3e/build/Linux-Cross-Compile/Makefile | 353 ++++++++++++++++++++++
|
TestFloat-3e/build/Linux-Cross-Compile/platform.h | 48 +++
|
2 files changed, 401 insertions(+)
|
create mode 100644 TestFloat-3e/build/Linux-Cross-Compile/Makefile
|
create mode 100644 TestFloat-3e/build/Linux-Cross-Compile/platform.h
|
|
diff --git a/TestFloat-3e/build/Linux-Cross-Compile/Makefile b/TestFloat-3e/build/Linux-Cross-Compile/Makefile
|
new file mode 100644
|
index 0000000..d82b9ed
|
--- /dev/null
|
+++ b/TestFloat-3e/build/Linux-Cross-Compile/Makefile
|
@@ -0,0 +1,353 @@
|
+
|
+#=============================================================================
|
+#
|
+# This Makefile template is part of TestFloat, Release 3b, 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, 2015, 2016 The Regents of the University
|
+# of California. All rights reserved.
|
+#
|
+# Redistribution and use in source and binary forms, with or without
|
+# modification, are permitted provided that the following conditions are met:
|
+#
|
+# 1. Redistributions of source code must retain the above copyright notice,
|
+# this list of conditions, and the following disclaimer.
|
+#
|
+# 2. Redistributions in binary form must reproduce the above copyright
|
+# notice, this list of conditions, and the following disclaimer in the
|
+# documentation and/or other materials provided with the distribution.
|
+#
|
+# 3. Neither the name of the University nor the names of its contributors
|
+# may be used to endorse or promote products derived from this software
|
+# without specific prior written permission.
|
+#
|
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
|
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
|
+# DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
|
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
+#
|
+#=============================================================================
|
+
|
+SOURCE_DIR ?= ../../source
|
+SOFTFLOAT_DIR ?= ../../../SoftFloat-3e
|
+PLATFORM ?= Linux-Cross-Compile
|
+
|
+SUBJ_SOURCE_DIR = $(SOURCE_DIR)/subj-C
|
+SOFTFLOAT_INCLUDE_DIR = $(SOFTFLOAT_DIR)/source/include
|
+
|
+SOFTFLOAT_H = \
|
+ $(SOFTFLOAT_INCLUDE_DIR)/softfloat_types.h \
|
+ $(SOFTFLOAT_INCLUDE_DIR)/softfloat.h
|
+SOFTFLOAT_LIB = $(SOFTFLOAT_DIR)/build/$(PLATFORM)/softfloat$(LIB)
|
+
|
+TESTFLOAT_OPTS ?= -DFLOAT16 -DFLOAT64 -DEXTFLOAT80 -DFLOAT128 -DFLOAT_ROUND_ODD
|
+
|
+DELETE = rm -f
|
+C_INCLUDES = \
|
+ -I. -I$(SUBJ_SOURCE_DIR) -I$(SOURCE_DIR) -I$(SOFTFLOAT_INCLUDE_DIR)
|
+COMPILE_C = \
|
+ ${CC} -c -Werror-implicit-function-declaration \
|
+ $(TESTFLOAT_OPTS) $(C_INCLUDES) -O2 -o $@
|
+COMPILE_SLOWFLOAT_C = \
|
+ ${CC} -c -Werror-implicit-function-declaration \
|
+ $(TESTFLOAT_OPTS) $(C_INCLUDES) -O3 -o $@
|
+MAKELIB = ${AR} crs $@
|
+LINK = ${CC} -o $@ ${LDFLAGS}
|
+OTHER_LIBS = -lm
|
+
|
+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_f16$(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_f16$(OBJ) \
|
+ writeCase_ab_f16$(OBJ) \
|
+ writeCase_abc_f16$(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_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_f16$(OBJ) \
|
+ writeCase_z_f32$(OBJ) \
|
+ writeCase_z_f64$(OBJ) \
|
+ writeCase_z_extF80M$(OBJ) \
|
+ writeCase_z_f128M$(OBJ) \
|
+
|
+OBJS_TEST = \
|
+ test_a_ui32_z_f16$(OBJ) \
|
+ 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_f16$(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_f16$(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_f16$(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_f16_z_ui32_rx$(OBJ) \
|
+ test_a_f16_z_ui64_rx$(OBJ) \
|
+ test_a_f16_z_i32_rx$(OBJ) \
|
+ test_a_f16_z_i64_rx$(OBJ) \
|
+ test_a_f16_z_ui32_x$(OBJ) \
|
+ test_a_f16_z_ui64_x$(OBJ) \
|
+ test_a_f16_z_i32_x$(OBJ) \
|
+ test_a_f16_z_i64_x$(OBJ) \
|
+ test_a_f16_z_f32$(OBJ) \
|
+ test_a_f16_z_f64$(OBJ) \
|
+ test_a_f16_z_extF80$(OBJ) \
|
+ test_a_f16_z_f128$(OBJ) \
|
+ test_az_f16$(OBJ) \
|
+ test_az_f16_rx$(OBJ) \
|
+ test_abz_f16$(OBJ) \
|
+ test_abcz_f16$(OBJ) \
|
+ test_ab_f16_z_bool$(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_f16$(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_f16$(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_f16$(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_f16$(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_inline$(OBJ) \
|
+ uint128$(OBJ) \
|
+ fail$(OBJ) \
|
+ functions_common$(OBJ) \
|
+ functionInfos$(OBJ) \
|
+ standardFunctionInfos$(OBJ) \
|
+ random$(OBJ) \
|
+ genCases_common$(OBJ) \
|
+ $(OBJS_GENCASES) \
|
+ genCases_writeTestsTotal$(OBJ) \
|
+ verCases_inline$(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) $^ $(OTHER_LIBS)
|
+
|
+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) $^ $(OTHER_LIBS)
|
+
|
+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) $^ $(OTHER_LIBS)
|
+
|
+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) $^ $(OTHER_LIBS)
|
+
|
+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) $^ $(OTHER_LIBS)
|
+
|
+.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/TestFloat-3e/build/Linux-Cross-Compile/platform.h b/TestFloat-3e/build/Linux-Cross-Compile/platform.h
|
new file mode 100644
|
index 0000000..487a43b
|
--- /dev/null
|
+++ b/TestFloat-3e/build/Linux-Cross-Compile/platform.h
|
@@ -0,0 +1,48 @@
|
+
|
+/*============================================================================
|
+
|
+This C header template is part of TestFloat, Release 3e, 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, 2015, 2016 The Regents of the University of
|
+California. All rights reserved.
|
+
|
+Redistribution and use in source and binary forms, with or without
|
+modification, are permitted provided that the following conditions are met:
|
+
|
+ 1. Redistributions of source code must retain the above copyright notice,
|
+ this list of conditions, and the following disclaimer.
|
+
|
+ 2. Redistributions in binary form must reproduce the above copyright notice,
|
+ this list of conditions, and the following disclaimer in the documentation
|
+ and/or other materials provided with the distribution.
|
+
|
+ 3. Neither the name of the University nor the names of its contributors may
|
+ be used to endorse or promote products derived from this software without
|
+ specific prior written permission.
|
+
|
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
|
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
|
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
|
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
+
|
+=============================================================================*/
|
+
|
+/*----------------------------------------------------------------------------
|
+*----------------------------------------------------------------------------*/
|
+#define LITTLEENDIAN 1
|
+
|
+/*----------------------------------------------------------------------------
|
+*----------------------------------------------------------------------------*/
|
+#ifdef __GNUC_STDC_INLINE__
|
+#define INLINE inline
|
+#else
|
+#define INLINE extern inline
|
+#endif
|
--
|
2.7.4
|