1*1bb92983SJerome Forissier# SPDX-License-Identifier: BSD-3-Clause 29403c583SJens Wiklander 39403c583SJens Wiklander#============================================================================= 49403c583SJens Wiklander# 59403c583SJens Wiklander# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic 69403c583SJens Wiklander# Package, Release 3a, by John R. Hauser. 79403c583SJens Wiklander# 89403c583SJens Wiklander# Copyright 2011, 2012, 2013, 2014 The Regents of the University of 99403c583SJens Wiklander# California. All rights reserved. 109403c583SJens Wiklander# 119403c583SJens Wiklander# Redistribution and use in source and binary forms, with or without 129403c583SJens Wiklander# modification, are permitted provided that the following conditions are met: 139403c583SJens Wiklander# 149403c583SJens Wiklander# 1. Redistributions of source code must retain the above copyright notice, 159403c583SJens Wiklander# this list of conditions, and the following disclaimer. 169403c583SJens Wiklander# 179403c583SJens Wiklander# 2. Redistributions in binary form must reproduce the above copyright 189403c583SJens Wiklander# notice, this list of conditions, and the following disclaimer in the 199403c583SJens Wiklander# documentation and/or other materials provided with the distribution. 209403c583SJens Wiklander# 219403c583SJens Wiklander# 3. Neither the name of the University nor the names of its contributors 229403c583SJens Wiklander# may be used to endorse or promote products derived from this software 239403c583SJens Wiklander# without specific prior written permission. 249403c583SJens Wiklander# 259403c583SJens Wiklander# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY 269403c583SJens Wiklander# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 279403c583SJens Wiklander# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE 289403c583SJens Wiklander# DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY 299403c583SJens Wiklander# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 309403c583SJens Wiklander# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 319403c583SJens Wiklander# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 329403c583SJens Wiklander# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 339403c583SJens Wiklander# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 349403c583SJens Wiklander# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 359403c583SJens Wiklander# 369403c583SJens Wiklander#============================================================================= 379403c583SJens Wiklander 389403c583SJens WiklanderSOURCE_DIR = ../../source 399403c583SJens WiklanderSPECIALIZE_TYPE = 8086 409403c583SJens Wiklander 419403c583SJens WiklanderSOFTFLOAT_OPTS = -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV64TO32 429403c583SJens Wiklander 439403c583SJens WiklanderDELETE = rm -f 449403c583SJens WiklanderC_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include 459403c583SJens WiklanderCOMPILE_C = \ 469403c583SJens Wiklander gcc -c -Werror-implicit-function-declaration $(SOFTFLOAT_OPTS) \ 479403c583SJens Wiklander $(C_INCLUDES) -O2 -o $@ 489403c583SJens WiklanderMAKELIB = ar crs $@ 499403c583SJens Wiklander 509403c583SJens WiklanderOBJ = .o 519403c583SJens WiklanderLIB = .a 529403c583SJens Wiklander 539403c583SJens Wiklander.PHONY: all 549403c583SJens Wiklanderall: softfloat$(LIB) 559403c583SJens Wiklander 569403c583SJens WiklanderOBJS_PRIMITIVES = \ 579403c583SJens Wiklander s_compare96M$(OBJ) \ 589403c583SJens Wiklander s_compare128M$(OBJ) \ 599403c583SJens Wiklander s_shortShiftLeft64To96M$(OBJ) \ 609403c583SJens Wiklander s_shortShiftLeftM$(OBJ) \ 619403c583SJens Wiklander s_shiftLeftM$(OBJ) \ 629403c583SJens Wiklander s_shortShiftRightM$(OBJ) \ 639403c583SJens Wiklander s_shortShiftRightJam64$(OBJ) \ 649403c583SJens Wiklander s_shortShiftRightJamM$(OBJ) \ 659403c583SJens Wiklander s_shiftRightJam32$(OBJ) \ 669403c583SJens Wiklander s_shiftRightJam64$(OBJ) \ 679403c583SJens Wiklander s_shiftRightJamM$(OBJ) \ 689403c583SJens Wiklander s_shiftRightM$(OBJ) \ 699403c583SJens Wiklander s_countLeadingZeros8$(OBJ) \ 709403c583SJens Wiklander s_countLeadingZeros32$(OBJ) \ 719403c583SJens Wiklander s_countLeadingZeros64$(OBJ) \ 729403c583SJens Wiklander s_addM$(OBJ) \ 739403c583SJens Wiklander s_addCarryM$(OBJ) \ 749403c583SJens Wiklander s_addComplCarryM$(OBJ) \ 759403c583SJens Wiklander s_negXM$(OBJ) \ 769403c583SJens Wiklander s_sub1XM$(OBJ) \ 779403c583SJens Wiklander s_subM$(OBJ) \ 789403c583SJens Wiklander s_mul64To128M$(OBJ) \ 799403c583SJens Wiklander s_mul128MTo256M$(OBJ) \ 809403c583SJens Wiklander s_approxRecip32_1$(OBJ) \ 819403c583SJens Wiklander s_approxRecipSqrt32_1$(OBJ) \ 829403c583SJens Wiklander s_remStepMBy32$(OBJ) \ 839403c583SJens Wiklander 849403c583SJens WiklanderOBJS_SPECIALIZE = \ 859403c583SJens Wiklander softfloat_raiseFlags$(OBJ) \ 869403c583SJens Wiklander s_f32UIToCommonNaN$(OBJ) \ 879403c583SJens Wiklander s_commonNaNToF32UI$(OBJ) \ 889403c583SJens Wiklander s_propagateNaNF32UI$(OBJ) \ 899403c583SJens Wiklander s_f64UIToCommonNaN$(OBJ) \ 909403c583SJens Wiklander s_commonNaNToF64UI$(OBJ) \ 919403c583SJens Wiklander s_propagateNaNF64UI$(OBJ) \ 929403c583SJens Wiklander extF80M_isSignalingNaN$(OBJ) \ 939403c583SJens Wiklander s_extF80MToCommonNaN$(OBJ) \ 949403c583SJens Wiklander s_commonNaNToExtF80M$(OBJ) \ 959403c583SJens Wiklander s_propagateNaNExtF80M$(OBJ) \ 969403c583SJens Wiklander f128M_isSignalingNaN$(OBJ) \ 979403c583SJens Wiklander s_f128MToCommonNaN$(OBJ) \ 989403c583SJens Wiklander s_commonNaNToF128M$(OBJ) \ 999403c583SJens Wiklander s_propagateNaNF128M$(OBJ) \ 1009403c583SJens Wiklander 1019403c583SJens WiklanderOBJS_OTHERS = \ 1029403c583SJens Wiklander s_roundPackToUI32$(OBJ) \ 1039403c583SJens Wiklander s_roundPackMToUI64$(OBJ) \ 1049403c583SJens Wiklander s_roundPackToI32$(OBJ) \ 1059403c583SJens Wiklander s_roundPackMToI64$(OBJ) \ 1069403c583SJens Wiklander s_normSubnormalF32Sig$(OBJ) \ 1079403c583SJens Wiklander s_roundPackToF32$(OBJ) \ 1089403c583SJens Wiklander s_normRoundPackToF32$(OBJ) \ 1099403c583SJens Wiklander s_addMagsF32$(OBJ) \ 1109403c583SJens Wiklander s_subMagsF32$(OBJ) \ 1119403c583SJens Wiklander s_mulAddF32$(OBJ) \ 1129403c583SJens Wiklander s_normSubnormalF64Sig$(OBJ) \ 1139403c583SJens Wiklander s_roundPackToF64$(OBJ) \ 1149403c583SJens Wiklander s_normRoundPackToF64$(OBJ) \ 1159403c583SJens Wiklander s_addMagsF64$(OBJ) \ 1169403c583SJens Wiklander s_subMagsF64$(OBJ) \ 1179403c583SJens Wiklander s_mulAddF64$(OBJ) \ 1189403c583SJens Wiklander s_tryPropagateNaNExtF80M$(OBJ) \ 1199403c583SJens Wiklander s_invalidExtF80M$(OBJ) \ 1209403c583SJens Wiklander s_normExtF80SigM$(OBJ) \ 1219403c583SJens Wiklander s_roundPackMToExtF80M$(OBJ) \ 1229403c583SJens Wiklander s_normRoundPackMToExtF80M$(OBJ) \ 1239403c583SJens Wiklander s_addExtF80M$(OBJ) \ 1249403c583SJens Wiklander s_compareNonnormExtF80M$(OBJ) \ 1259403c583SJens Wiklander s_isNaNF128M$(OBJ) \ 1269403c583SJens Wiklander s_tryPropagateNaNF128M$(OBJ) \ 1279403c583SJens Wiklander s_invalidF128M$(OBJ) \ 1289403c583SJens Wiklander s_shiftNormSigF128M$(OBJ) \ 1299403c583SJens Wiklander s_roundPackMToF128M$(OBJ) \ 1309403c583SJens Wiklander s_normRoundPackMToF128M$(OBJ) \ 1319403c583SJens Wiklander s_addF128M$(OBJ) \ 1329403c583SJens Wiklander s_mulAddF128M$(OBJ) \ 1339403c583SJens Wiklander softfloat_state$(OBJ) \ 1349403c583SJens Wiklander ui32_to_f32$(OBJ) \ 1359403c583SJens Wiklander ui32_to_f64$(OBJ) \ 1369403c583SJens Wiklander ui32_to_extF80M$(OBJ) \ 1379403c583SJens Wiklander ui32_to_f128M$(OBJ) \ 1389403c583SJens Wiklander ui64_to_f32$(OBJ) \ 1399403c583SJens Wiklander ui64_to_f64$(OBJ) \ 1409403c583SJens Wiklander ui64_to_extF80M$(OBJ) \ 1419403c583SJens Wiklander ui64_to_f128M$(OBJ) \ 1429403c583SJens Wiklander i32_to_f32$(OBJ) \ 1439403c583SJens Wiklander i32_to_f64$(OBJ) \ 1449403c583SJens Wiklander i32_to_extF80M$(OBJ) \ 1459403c583SJens Wiklander i32_to_f128M$(OBJ) \ 1469403c583SJens Wiklander i64_to_f32$(OBJ) \ 1479403c583SJens Wiklander i64_to_f64$(OBJ) \ 1489403c583SJens Wiklander i64_to_extF80M$(OBJ) \ 1499403c583SJens Wiklander i64_to_f128M$(OBJ) \ 1509403c583SJens Wiklander f32_to_ui32$(OBJ) \ 1519403c583SJens Wiklander f32_to_ui64$(OBJ) \ 1529403c583SJens Wiklander f32_to_i32$(OBJ) \ 1539403c583SJens Wiklander f32_to_i64$(OBJ) \ 1549403c583SJens Wiklander f32_to_ui32_r_minMag$(OBJ) \ 1559403c583SJens Wiklander f32_to_ui64_r_minMag$(OBJ) \ 1569403c583SJens Wiklander f32_to_i32_r_minMag$(OBJ) \ 1579403c583SJens Wiklander f32_to_i64_r_minMag$(OBJ) \ 1589403c583SJens Wiklander f32_to_f64$(OBJ) \ 1599403c583SJens Wiklander f32_to_extF80M$(OBJ) \ 1609403c583SJens Wiklander f32_to_f128M$(OBJ) \ 1619403c583SJens Wiklander f32_roundToInt$(OBJ) \ 1629403c583SJens Wiklander f32_add$(OBJ) \ 1639403c583SJens Wiklander f32_sub$(OBJ) \ 1649403c583SJens Wiklander f32_mul$(OBJ) \ 1659403c583SJens Wiklander f32_mulAdd$(OBJ) \ 1669403c583SJens Wiklander f32_div$(OBJ) \ 1679403c583SJens Wiklander f32_rem$(OBJ) \ 1689403c583SJens Wiklander f32_sqrt$(OBJ) \ 1699403c583SJens Wiklander f32_eq$(OBJ) \ 1709403c583SJens Wiklander f32_le$(OBJ) \ 1719403c583SJens Wiklander f32_lt$(OBJ) \ 1729403c583SJens Wiklander f32_eq_signaling$(OBJ) \ 1739403c583SJens Wiklander f32_le_quiet$(OBJ) \ 1749403c583SJens Wiklander f32_lt_quiet$(OBJ) \ 1759403c583SJens Wiklander f32_isSignalingNaN$(OBJ) \ 1769403c583SJens Wiklander f64_to_ui32$(OBJ) \ 1779403c583SJens Wiklander f64_to_ui64$(OBJ) \ 1789403c583SJens Wiklander f64_to_i32$(OBJ) \ 1799403c583SJens Wiklander f64_to_i64$(OBJ) \ 1809403c583SJens Wiklander f64_to_ui32_r_minMag$(OBJ) \ 1819403c583SJens Wiklander f64_to_ui64_r_minMag$(OBJ) \ 1829403c583SJens Wiklander f64_to_i32_r_minMag$(OBJ) \ 1839403c583SJens Wiklander f64_to_i64_r_minMag$(OBJ) \ 1849403c583SJens Wiklander f64_to_f32$(OBJ) \ 1859403c583SJens Wiklander f64_to_extF80M$(OBJ) \ 1869403c583SJens Wiklander f64_to_f128M$(OBJ) \ 1879403c583SJens Wiklander f64_roundToInt$(OBJ) \ 1889403c583SJens Wiklander f64_add$(OBJ) \ 1899403c583SJens Wiklander f64_sub$(OBJ) \ 1909403c583SJens Wiklander f64_mul$(OBJ) \ 1919403c583SJens Wiklander f64_mulAdd$(OBJ) \ 1929403c583SJens Wiklander f64_div$(OBJ) \ 1939403c583SJens Wiklander f64_rem$(OBJ) \ 1949403c583SJens Wiklander f64_sqrt$(OBJ) \ 1959403c583SJens Wiklander f64_eq$(OBJ) \ 1969403c583SJens Wiklander f64_le$(OBJ) \ 1979403c583SJens Wiklander f64_lt$(OBJ) \ 1989403c583SJens Wiklander f64_eq_signaling$(OBJ) \ 1999403c583SJens Wiklander f64_le_quiet$(OBJ) \ 2009403c583SJens Wiklander f64_lt_quiet$(OBJ) \ 2019403c583SJens Wiklander f64_isSignalingNaN$(OBJ) \ 2029403c583SJens Wiklander extF80M_to_ui32$(OBJ) \ 2039403c583SJens Wiklander extF80M_to_ui64$(OBJ) \ 2049403c583SJens Wiklander extF80M_to_i32$(OBJ) \ 2059403c583SJens Wiklander extF80M_to_i64$(OBJ) \ 2069403c583SJens Wiklander extF80M_to_ui32_r_minMag$(OBJ) \ 2079403c583SJens Wiklander extF80M_to_ui64_r_minMag$(OBJ) \ 2089403c583SJens Wiklander extF80M_to_i32_r_minMag$(OBJ) \ 2099403c583SJens Wiklander extF80M_to_i64_r_minMag$(OBJ) \ 2109403c583SJens Wiklander extF80M_to_f32$(OBJ) \ 2119403c583SJens Wiklander extF80M_to_f64$(OBJ) \ 2129403c583SJens Wiklander extF80M_to_f128M$(OBJ) \ 2139403c583SJens Wiklander extF80M_roundToInt$(OBJ) \ 2149403c583SJens Wiklander extF80M_add$(OBJ) \ 2159403c583SJens Wiklander extF80M_sub$(OBJ) \ 2169403c583SJens Wiklander extF80M_mul$(OBJ) \ 2179403c583SJens Wiklander extF80M_div$(OBJ) \ 2189403c583SJens Wiklander extF80M_rem$(OBJ) \ 2199403c583SJens Wiklander extF80M_sqrt$(OBJ) \ 2209403c583SJens Wiklander extF80M_eq$(OBJ) \ 2219403c583SJens Wiklander extF80M_le$(OBJ) \ 2229403c583SJens Wiklander extF80M_lt$(OBJ) \ 2239403c583SJens Wiklander extF80M_eq_signaling$(OBJ) \ 2249403c583SJens Wiklander extF80M_le_quiet$(OBJ) \ 2259403c583SJens Wiklander extF80M_lt_quiet$(OBJ) \ 2269403c583SJens Wiklander f128M_to_ui32$(OBJ) \ 2279403c583SJens Wiklander f128M_to_ui64$(OBJ) \ 2289403c583SJens Wiklander f128M_to_i32$(OBJ) \ 2299403c583SJens Wiklander f128M_to_i64$(OBJ) \ 2309403c583SJens Wiklander f128M_to_ui32_r_minMag$(OBJ) \ 2319403c583SJens Wiklander f128M_to_ui64_r_minMag$(OBJ) \ 2329403c583SJens Wiklander f128M_to_i32_r_minMag$(OBJ) \ 2339403c583SJens Wiklander f128M_to_i64_r_minMag$(OBJ) \ 2349403c583SJens Wiklander f128M_to_f32$(OBJ) \ 2359403c583SJens Wiklander f128M_to_f64$(OBJ) \ 2369403c583SJens Wiklander f128M_to_extF80M$(OBJ) \ 2379403c583SJens Wiklander f128M_roundToInt$(OBJ) \ 2389403c583SJens Wiklander f128M_add$(OBJ) \ 2399403c583SJens Wiklander f128M_sub$(OBJ) \ 2409403c583SJens Wiklander f128M_mul$(OBJ) \ 2419403c583SJens Wiklander f128M_mulAdd$(OBJ) \ 2429403c583SJens Wiklander f128M_div$(OBJ) \ 2439403c583SJens Wiklander f128M_rem$(OBJ) \ 2449403c583SJens Wiklander f128M_sqrt$(OBJ) \ 2459403c583SJens Wiklander f128M_eq$(OBJ) \ 2469403c583SJens Wiklander f128M_le$(OBJ) \ 2479403c583SJens Wiklander f128M_lt$(OBJ) \ 2489403c583SJens Wiklander f128M_eq_signaling$(OBJ) \ 2499403c583SJens Wiklander f128M_le_quiet$(OBJ) \ 2509403c583SJens Wiklander f128M_lt_quiet$(OBJ) \ 2519403c583SJens Wiklander 2529403c583SJens WiklanderOBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_SPECIALIZE) $(OBJS_OTHERS) 2539403c583SJens Wiklander 2549403c583SJens Wiklander$(OBJS_ALL): \ 2559403c583SJens Wiklander platform.h $(SOURCE_DIR)/include/primitiveTypes.h \ 2569403c583SJens Wiklander $(SOURCE_DIR)/include/primitives.h 2579403c583SJens Wiklander$(OBJS_SPECIALIZE) $(OBJS_OTHERS): \ 2589403c583SJens Wiklander $(SOURCE_DIR)/include/softfloat_types.h $(SOURCE_DIR)/include/internals.h \ 2599403c583SJens Wiklander $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/specialize.h \ 2609403c583SJens Wiklander $(SOURCE_DIR)/include/softfloat.h 2619403c583SJens Wiklander 2629403c583SJens Wiklander$(OBJS_PRIMITIVES) $(OBJS_OTHERS): %$(OBJ): $(SOURCE_DIR)/%.c 2639403c583SJens Wiklander $(COMPILE_C) $(SOURCE_DIR)/$*.c 2649403c583SJens Wiklander 2659403c583SJens Wiklander$(OBJS_SPECIALIZE): %$(OBJ): $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/%.c 2669403c583SJens Wiklander $(COMPILE_C) $(SOURCE_DIR)/$(SPECIALIZE_TYPE)/$*.c 2679403c583SJens Wiklander 2689403c583SJens Wiklandersoftfloat$(LIB): $(OBJS_ALL) 2699403c583SJens Wiklander $(DELETE) $@ 2709403c583SJens Wiklander $(MAKELIB) $^ 2719403c583SJens Wiklander 2729403c583SJens Wiklander.PHONY: clean 2739403c583SJens Wiklanderclean: 2749403c583SJens Wiklander $(DELETE) $(OBJS_ALL) softfloat$(LIB) 2759403c583SJens Wiklander 276