blob: c99ba71b37504d154f713652115abeb9e25fca2b [file] [log] [blame]
Andrew Geissler7f40b712020-05-15 14:09:53 -05001From 3503f7f3845caba454949fdf8408e85ca4fdb943 Mon Sep 17 00:00:00 2001
2From: Zong Li <zong.li@sifive.com>
3Date: Wed, 6 May 2020 01:25:55 -0700
4Subject: [PATCH] Makefile for cross compile TestFloat 3e
Patrick Williamsb48b7b42016-08-17 15:04:38 -05005
Andrew Geissler7f40b712020-05-15 14:09:53 -05006This commit adds a Makefile for cross compile on TestFloat
73e version. Almost implementation is based on meta-oe porting
8from Fabio Berton <fabio.berton@ossystems.com.br>.
Patrick Williamsb48b7b42016-08-17 15:04:38 -05009
Andrew Geissler7f40b712020-05-15 14:09:53 -050010Signed-off-by: Zong Li <zongbox@gmail.com>
Patrick Williamsb48b7b42016-08-17 15:04:38 -050011---
Patrick Williams520786c2023-06-25 16:20:36 -050012Upstream-Status: Pending
13
Andrew Geissler7f40b712020-05-15 14:09:53 -050014 TestFloat-3e/build/Linux-Cross-Compile/Makefile | 353 ++++++++++++++++++++++
15 TestFloat-3e/build/Linux-Cross-Compile/platform.h | 48 +++
16 2 files changed, 401 insertions(+)
17 create mode 100644 TestFloat-3e/build/Linux-Cross-Compile/Makefile
18 create mode 100644 TestFloat-3e/build/Linux-Cross-Compile/platform.h
Patrick Williamsb48b7b42016-08-17 15:04:38 -050019
Andrew Geissler7f40b712020-05-15 14:09:53 -050020diff --git a/TestFloat-3e/build/Linux-Cross-Compile/Makefile b/TestFloat-3e/build/Linux-Cross-Compile/Makefile
Patrick Williamsb48b7b42016-08-17 15:04:38 -050021new file mode 100644
Andrew Geissler7f40b712020-05-15 14:09:53 -050022index 0000000..d82b9ed
Patrick Williamsb48b7b42016-08-17 15:04:38 -050023--- /dev/null
Andrew Geissler7f40b712020-05-15 14:09:53 -050024+++ b/TestFloat-3e/build/Linux-Cross-Compile/Makefile
25@@ -0,0 +1,353 @@
Patrick Williamsb48b7b42016-08-17 15:04:38 -050026+
27+#=============================================================================
28+#
Andrew Geissler7f40b712020-05-15 14:09:53 -050029+# This Makefile template is part of TestFloat, Release 3b, a package of
30+# programs for testing the correctness of floating-point arithmetic complying
31+# with the IEEE Standard for Floating-Point, by John R. Hauser.
Patrick Williamsb48b7b42016-08-17 15:04:38 -050032+#
Andrew Geissler7f40b712020-05-15 14:09:53 -050033+# Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University
34+# of California. All rights reserved.
Patrick Williamsb48b7b42016-08-17 15:04:38 -050035+#
36+# Redistribution and use in source and binary forms, with or without
37+# modification, are permitted provided that the following conditions are met:
38+#
39+# 1. Redistributions of source code must retain the above copyright notice,
40+# this list of conditions, and the following disclaimer.
41+#
42+# 2. Redistributions in binary form must reproduce the above copyright
43+# notice, this list of conditions, and the following disclaimer in the
44+# documentation and/or other materials provided with the distribution.
45+#
46+# 3. Neither the name of the University nor the names of its contributors
47+# may be used to endorse or promote products derived from this software
48+# without specific prior written permission.
49+#
50+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
51+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
52+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
53+# DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
54+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
55+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
56+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
57+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
58+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
59+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
60+#
61+#=============================================================================
62+
Andrew Geissler7f40b712020-05-15 14:09:53 -050063+SOURCE_DIR ?= ../../source
64+SOFTFLOAT_DIR ?= ../../../SoftFloat-3e
65+PLATFORM ?= Linux-Cross-Compile
66+
Patrick Williamsb48b7b42016-08-17 15:04:38 -050067+SUBJ_SOURCE_DIR = $(SOURCE_DIR)/subj-C
Patrick Williamsb48b7b42016-08-17 15:04:38 -050068+SOFTFLOAT_INCLUDE_DIR = $(SOFTFLOAT_DIR)/source/include
Patrick Williamsb48b7b42016-08-17 15:04:38 -050069+
70+SOFTFLOAT_H = \
71+ $(SOFTFLOAT_INCLUDE_DIR)/softfloat_types.h \
72+ $(SOFTFLOAT_INCLUDE_DIR)/softfloat.h
73+SOFTFLOAT_LIB = $(SOFTFLOAT_DIR)/build/$(PLATFORM)/softfloat$(LIB)
74+
Andrew Geissler7f40b712020-05-15 14:09:53 -050075+TESTFLOAT_OPTS ?= -DFLOAT16 -DFLOAT64 -DEXTFLOAT80 -DFLOAT128 -DFLOAT_ROUND_ODD
Patrick Williamsb48b7b42016-08-17 15:04:38 -050076+
77+DELETE = rm -f
78+C_INCLUDES = \
79+ -I. -I$(SUBJ_SOURCE_DIR) -I$(SOURCE_DIR) -I$(SOFTFLOAT_INCLUDE_DIR)
80+COMPILE_C = \
Andrew Geissler7f40b712020-05-15 14:09:53 -050081+ ${CC} -c -Werror-implicit-function-declaration \
82+ $(TESTFLOAT_OPTS) $(C_INCLUDES) -O2 -o $@
Patrick Williamsb48b7b42016-08-17 15:04:38 -050083+COMPILE_SLOWFLOAT_C = \
Andrew Geissler7f40b712020-05-15 14:09:53 -050084+ ${CC} -c -Werror-implicit-function-declaration \
85+ $(TESTFLOAT_OPTS) $(C_INCLUDES) -O3 -o $@
Patrick Williamsb48b7b42016-08-17 15:04:38 -050086+MAKELIB = ${AR} crs $@
Patrick Williamsddad1a12017-02-23 20:36:32 -060087+LINK = ${CC} -o $@ ${LDFLAGS}
Patrick Williamsb48b7b42016-08-17 15:04:38 -050088+OTHER_LIBS = -lm
89+
90+OBJ = .o
91+LIB = .a
92+EXE =
93+
94+.PHONY: all
95+all: \
96+ testsoftfloat$(EXE) \
97+ timesoftfloat$(EXE) \
98+ testfloat_gen$(EXE) \
99+ testfloat_ver$(EXE) \
100+ testfloat$(EXE) \
101+
102+OBJS_GENCASES = \
103+ genCases_ui32$(OBJ) \
104+ genCases_ui64$(OBJ) \
105+ genCases_i32$(OBJ) \
106+ genCases_i64$(OBJ) \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500107+ genCases_f16$(OBJ) \
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500108+ genCases_f32$(OBJ) \
109+ genCases_f64$(OBJ) \
110+ genCases_extF80$(OBJ) \
111+ genCases_f128$(OBJ) \
112+
113+OBJS_WRITECASE = \
114+ writeCase_a_ui32$(OBJ) \
115+ writeCase_a_ui64$(OBJ) \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500116+ writeCase_a_f16$(OBJ) \
117+ writeCase_ab_f16$(OBJ) \
118+ writeCase_abc_f16$(OBJ) \
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500119+ writeCase_a_f32$(OBJ) \
120+ writeCase_ab_f32$(OBJ) \
121+ writeCase_abc_f32$(OBJ) \
122+ writeCase_a_f64$(OBJ) \
123+ writeCase_ab_f64$(OBJ) \
124+ writeCase_abc_f64$(OBJ) \
125+ writeCase_a_extF80M$(OBJ) \
126+ writeCase_ab_extF80M$(OBJ) \
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500127+ writeCase_a_f128M$(OBJ) \
128+ writeCase_ab_f128M$(OBJ) \
129+ writeCase_abc_f128M$(OBJ) \
130+ writeCase_z_bool$(OBJ) \
131+ writeCase_z_ui32$(OBJ) \
132+ writeCase_z_ui64$(OBJ) \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500133+ writeCase_z_f16$(OBJ) \
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500134+ writeCase_z_f32$(OBJ) \
135+ writeCase_z_f64$(OBJ) \
136+ writeCase_z_extF80M$(OBJ) \
137+ writeCase_z_f128M$(OBJ) \
138+
139+OBJS_TEST = \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500140+ test_a_ui32_z_f16$(OBJ) \
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500141+ test_a_ui32_z_f32$(OBJ) \
142+ test_a_ui32_z_f64$(OBJ) \
143+ test_a_ui32_z_extF80$(OBJ) \
144+ test_a_ui32_z_f128$(OBJ) \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500145+ test_a_ui64_z_f16$(OBJ) \
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500146+ test_a_ui64_z_f32$(OBJ) \
147+ test_a_ui64_z_f64$(OBJ) \
148+ test_a_ui64_z_extF80$(OBJ) \
149+ test_a_ui64_z_f128$(OBJ) \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500150+ test_a_i32_z_f16$(OBJ) \
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500151+ test_a_i32_z_f32$(OBJ) \
152+ test_a_i32_z_f64$(OBJ) \
153+ test_a_i32_z_extF80$(OBJ) \
154+ test_a_i32_z_f128$(OBJ) \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500155+ test_a_i64_z_f16$(OBJ) \
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500156+ test_a_i64_z_f32$(OBJ) \
157+ test_a_i64_z_f64$(OBJ) \
158+ test_a_i64_z_extF80$(OBJ) \
159+ test_a_i64_z_f128$(OBJ) \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500160+ test_a_f16_z_ui32_rx$(OBJ) \
161+ test_a_f16_z_ui64_rx$(OBJ) \
162+ test_a_f16_z_i32_rx$(OBJ) \
163+ test_a_f16_z_i64_rx$(OBJ) \
164+ test_a_f16_z_ui32_x$(OBJ) \
165+ test_a_f16_z_ui64_x$(OBJ) \
166+ test_a_f16_z_i32_x$(OBJ) \
167+ test_a_f16_z_i64_x$(OBJ) \
168+ test_a_f16_z_f32$(OBJ) \
169+ test_a_f16_z_f64$(OBJ) \
170+ test_a_f16_z_extF80$(OBJ) \
171+ test_a_f16_z_f128$(OBJ) \
172+ test_az_f16$(OBJ) \
173+ test_az_f16_rx$(OBJ) \
174+ test_abz_f16$(OBJ) \
175+ test_abcz_f16$(OBJ) \
176+ test_ab_f16_z_bool$(OBJ) \
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500177+ test_a_f32_z_ui32_rx$(OBJ) \
178+ test_a_f32_z_ui64_rx$(OBJ) \
179+ test_a_f32_z_i32_rx$(OBJ) \
180+ test_a_f32_z_i64_rx$(OBJ) \
181+ test_a_f32_z_ui32_x$(OBJ) \
182+ test_a_f32_z_ui64_x$(OBJ) \
183+ test_a_f32_z_i32_x$(OBJ) \
184+ test_a_f32_z_i64_x$(OBJ) \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500185+ test_a_f32_z_f16$(OBJ) \
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500186+ test_a_f32_z_f64$(OBJ) \
187+ test_a_f32_z_extF80$(OBJ) \
188+ test_a_f32_z_f128$(OBJ) \
189+ test_az_f32$(OBJ) \
190+ test_az_f32_rx$(OBJ) \
191+ test_abz_f32$(OBJ) \
192+ test_abcz_f32$(OBJ) \
193+ test_ab_f32_z_bool$(OBJ) \
194+ test_a_f64_z_ui32_rx$(OBJ) \
195+ test_a_f64_z_ui64_rx$(OBJ) \
196+ test_a_f64_z_i32_rx$(OBJ) \
197+ test_a_f64_z_i64_rx$(OBJ) \
198+ test_a_f64_z_ui32_x$(OBJ) \
199+ test_a_f64_z_ui64_x$(OBJ) \
200+ test_a_f64_z_i32_x$(OBJ) \
201+ test_a_f64_z_i64_x$(OBJ) \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500202+ test_a_f64_z_f16$(OBJ) \
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500203+ test_a_f64_z_f32$(OBJ) \
204+ test_a_f64_z_extF80$(OBJ) \
205+ test_a_f64_z_f128$(OBJ) \
206+ test_az_f64$(OBJ) \
207+ test_az_f64_rx$(OBJ) \
208+ test_abz_f64$(OBJ) \
209+ test_abcz_f64$(OBJ) \
210+ test_ab_f64_z_bool$(OBJ) \
211+ test_a_extF80_z_ui32_rx$(OBJ) \
212+ test_a_extF80_z_ui64_rx$(OBJ) \
213+ test_a_extF80_z_i32_rx$(OBJ) \
214+ test_a_extF80_z_i64_rx$(OBJ) \
215+ test_a_extF80_z_ui32_x$(OBJ) \
216+ test_a_extF80_z_ui64_x$(OBJ) \
217+ test_a_extF80_z_i32_x$(OBJ) \
218+ test_a_extF80_z_i64_x$(OBJ) \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500219+ test_a_extF80_z_f16$(OBJ) \
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500220+ test_a_extF80_z_f32$(OBJ) \
221+ test_a_extF80_z_f64$(OBJ) \
222+ test_a_extF80_z_f128$(OBJ) \
223+ test_az_extF80$(OBJ) \
224+ test_az_extF80_rx$(OBJ) \
225+ test_abz_extF80$(OBJ) \
226+ test_ab_extF80_z_bool$(OBJ) \
227+ test_a_f128_z_ui32_rx$(OBJ) \
228+ test_a_f128_z_ui64_rx$(OBJ) \
229+ test_a_f128_z_i32_rx$(OBJ) \
230+ test_a_f128_z_i64_rx$(OBJ) \
231+ test_a_f128_z_ui32_x$(OBJ) \
232+ test_a_f128_z_ui64_x$(OBJ) \
233+ test_a_f128_z_i32_x$(OBJ) \
234+ test_a_f128_z_i64_x$(OBJ) \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500235+ test_a_f128_z_f16$(OBJ) \
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500236+ test_a_f128_z_f32$(OBJ) \
237+ test_a_f128_z_f64$(OBJ) \
238+ test_a_f128_z_extF80$(OBJ) \
239+ test_az_f128$(OBJ) \
240+ test_az_f128_rx$(OBJ) \
241+ test_abz_f128$(OBJ) \
242+ test_abcz_f128$(OBJ) \
243+ test_ab_f128_z_bool$(OBJ) \
244+
245+OBJS_LIB = \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500246+ uint128_inline$(OBJ) \
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500247+ uint128$(OBJ) \
248+ fail$(OBJ) \
249+ functions_common$(OBJ) \
250+ functionInfos$(OBJ) \
251+ standardFunctionInfos$(OBJ) \
252+ random$(OBJ) \
253+ genCases_common$(OBJ) \
254+ $(OBJS_GENCASES) \
255+ genCases_writeTestsTotal$(OBJ) \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500256+ verCases_inline$(OBJ) \
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500257+ verCases_common$(OBJ) \
258+ verCases_writeFunctionName$(OBJ) \
259+ readHex$(OBJ) \
260+ writeHex$(OBJ) \
261+ $(OBJS_WRITECASE) \
262+ testLoops_common$(OBJ) \
263+ $(OBJS_TEST) \
264+
265+uint128$(OBJ): $(SOURCE_DIR)/uint128.h
266+fail$(OBJ): $(SOURCE_DIR)/fail.h
267+functions_common$(OBJ): $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h
268+functionInfos$(OBJ): $(SOURCE_DIR)/functions.h
269+standardFunctionInfos$(OBJ): $(SOURCE_DIR)/functions.h
270+random$(OBJ): $(SOURCE_DIR)/random.h
271+genCases_common$(OBJ): $(SOURCE_DIR)/fail.h $(SOURCE_DIR)/genCases.h
272+$(OBJS_GENCASES): \
273+ $(SOURCE_DIR)/random.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h
274+genCases_f128$(OBJ): $(SOURCE_DIR)/uint128.h
275+genCases_writeTestsTotal$(OBJ): $(SOURCE_DIR)/genCases.h
276+verCases_common$(OBJ): $(SOURCE_DIR)/verCases.h
277+verCases_writeFunctionName$(OBJ): $(SOURCE_DIR)/verCases.h
278+readHex$(OBJ): $(SOURCE_DIR)/readHex.h
279+writeHex$(OBJ): $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h
280+$(OBJS_WRITECASE): \
281+ $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/writeCase.h
282+testLoops_common$(OBJ): $(SOURCE_DIR)/testLoops.h
283+$(OBJS_TEST): \
284+ $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h \
285+ $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/testLoops.h
286+$(OBJS_LIB): %$(OBJ): platform.h $(SOURCE_DIR)/%.c
287+ $(COMPILE_C) $(SOURCE_DIR)/$*.c
288+testfloat$(LIB): $(OBJS_LIB)
289+ $(MAKELIB) $^
290+
291+OBJS_TESTSOFTFLOAT = slowfloat$(OBJ) testsoftfloat$(OBJ)
292+
293+slowfloat$(OBJ): \
294+ platform.h $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) \
295+ $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/slowfloat.c
296+ $(COMPILE_SLOWFLOAT_C) $(SOURCE_DIR)/slowfloat.c
297+testsoftfloat$(OBJ): \
298+ platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
299+ $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/functions.h \
300+ $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
301+ $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testsoftfloat.c
302+ $(COMPILE_C) $(SOURCE_DIR)/testsoftfloat.c
303+
304+testsoftfloat$(EXE): $(OBJS_TESTSOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
305+ $(LINK) $^ $(OTHER_LIBS)
306+
307+OBJS_TIMESOFTFLOAT = timesoftfloat$(OBJ)
308+
309+timesoftfloat$(OBJ): \
310+ platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
311+ $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/timesoftfloat.c
312+ $(COMPILE_C) $(SOURCE_DIR)/timesoftfloat.c
313+
314+timesoftfloat$(EXE): $(OBJS_TIMESOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
315+ $(LINK) $^ $(OTHER_LIBS)
316+
317+OBJS_TESTFLOAT_GEN = genLoops$(OBJ) testfloat_gen$(OBJ)
318+
319+genLoops$(OBJ): \
320+ platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
321+ $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/genLoops.h \
322+ $(SOURCE_DIR)/genLoops.c
323+ $(COMPILE_C) $(SOURCE_DIR)/genLoops.c
324+testfloat_gen$(OBJ): \
325+ $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h \
326+ $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/genLoops.h \
327+ $(SOURCE_DIR)/testfloat_gen.c
328+ $(COMPILE_C) $(SOURCE_DIR)/testfloat_gen.c
329+
330+testfloat_gen$(EXE): $(OBJS_TESTFLOAT_GEN) testfloat$(LIB) $(SOFTFLOAT_LIB)
331+ $(LINK) $^ $(OTHER_LIBS)
332+
333+OBJS_TESTFLOAT_VER = verLoops$(OBJ) testfloat_ver$(OBJ)
334+
335+verLoops$(OBJ): \
336+ platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
337+ $(SOURCE_DIR)/readHex.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
338+ $(SOURCE_DIR)/verLoops.h $(SOURCE_DIR)/verLoops.c
339+ $(COMPILE_C) $(SOURCE_DIR)/verLoops.c
340+testfloat_ver$(OBJ): \
341+ platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
342+ $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/verCases.h \
343+ $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/verLoops.h \
344+ $(SOURCE_DIR)/testfloat_ver.c
345+ $(COMPILE_C) $(SOURCE_DIR)/testfloat_ver.c
346+
347+testfloat_ver$(EXE): $(OBJS_TESTFLOAT_VER) testfloat$(LIB) $(SOFTFLOAT_LIB)
348+ $(LINK) $^ $(OTHER_LIBS)
349+
350+OBJS_TESTFLOAT = subjfloat$(OBJ) subjfloat_functions$(OBJ) testfloat$(OBJ)
351+
352+subjfloat$(OBJ): \
353+ platform.h $(SOFTFLOAT_H) $(SUBJ_SOURCE_DIR)/subjfloat_config.h \
354+ $(SOURCE_DIR)/subjfloat.h $(SUBJ_SOURCE_DIR)/subjfloat.c
355+ $(COMPILE_C) $(SUBJ_SOURCE_DIR)/subjfloat.c
356+subjfloat_functions$(OBJ): \
357+ platform.h $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
358+ $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/subjfloat_functions.c
359+ $(COMPILE_C) $(SOURCE_DIR)/subjfloat_functions.c
360+testfloat$(OBJ): \
361+ platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
362+ $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
363+ $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h \
364+ $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testfloat.c
365+ $(COMPILE_C) $(SOURCE_DIR)/testfloat.c
366+
367+testfloat$(EXE): $(OBJS_TESTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
368+ $(LINK) $^ $(OTHER_LIBS)
369+
370+.PHONY: clean
371+clean:
372+ $(DELETE) $(OBJS_LIB) testfloat$(LIB)
373+ $(DELETE) $(OBJS_TESTSOFTFLOAT) testsoftfloat$(EXE)
374+ $(DELETE) $(OBJS_TIMESOFTFLOAT) timesoftfloat$(EXE)
375+ $(DELETE) $(OBJS_TESTFLOAT_GEN) testfloat_gen$(EXE)
376+ $(DELETE) $(OBJS_TESTFLOAT_VER) testfloat_ver$(EXE)
377+ $(DELETE) $(OBJS_TESTFLOAT) testfloat$(EXE)
378+
Andrew Geissler7f40b712020-05-15 14:09:53 -0500379diff --git a/TestFloat-3e/build/Linux-Cross-Compile/platform.h b/TestFloat-3e/build/Linux-Cross-Compile/platform.h
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500380new file mode 100644
Andrew Geissler7f40b712020-05-15 14:09:53 -0500381index 0000000..487a43b
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500382--- /dev/null
Andrew Geissler7f40b712020-05-15 14:09:53 -0500383+++ b/TestFloat-3e/build/Linux-Cross-Compile/platform.h
384@@ -0,0 +1,48 @@
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500385+
386+/*============================================================================
387+
Andrew Geissler7f40b712020-05-15 14:09:53 -0500388+This C header template is part of TestFloat, Release 3e, a package of programs
389+for testing the correctness of floating-point arithmetic complying with the
390+IEEE Standard for Floating-Point, by John R. Hauser.
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500391+
Andrew Geissler7f40b712020-05-15 14:09:53 -0500392+Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
393+California. All rights reserved.
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500394+
395+Redistribution and use in source and binary forms, with or without
396+modification, are permitted provided that the following conditions are met:
397+
398+ 1. Redistributions of source code must retain the above copyright notice,
399+ this list of conditions, and the following disclaimer.
400+
401+ 2. Redistributions in binary form must reproduce the above copyright notice,
402+ this list of conditions, and the following disclaimer in the documentation
403+ and/or other materials provided with the distribution.
404+
405+ 3. Neither the name of the University nor the names of its contributors may
406+ be used to endorse or promote products derived from this software without
407+ specific prior written permission.
408+
409+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
410+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
411+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
412+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
413+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
414+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
415+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
416+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
417+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
418+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
419+
420+=============================================================================*/
421+
422+/*----------------------------------------------------------------------------
423+*----------------------------------------------------------------------------*/
424+#define LITTLEENDIAN 1
425+
426+/*----------------------------------------------------------------------------
427+*----------------------------------------------------------------------------*/
Andrew Geissler7f40b712020-05-15 14:09:53 -0500428+#ifdef __GNUC_STDC_INLINE__
429+#define INLINE inline
430+#else
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500431+#define INLINE extern inline
Andrew Geissler7f40b712020-05-15 14:09:53 -0500432+#endif
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500433--
Andrew Geissler7f40b712020-05-15 14:09:53 -05004342.7.4
Patrick Williamsb48b7b42016-08-17 15:04:38 -0500435