From 8753324adafb47e1a76209d030eb246fc2274843 Mon Sep 17 00:00:00 2001 From: ant6n Date: Sat, 21 Sep 2019 00:39:26 +0000 Subject: [PATCH] allow omitting fixuns(s/d)fsi, which may be provided by gcc already --- Makefile | 12 ++++++++++-- src/ieeelib.c | 4 ++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index ed66fbe..836f649 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,8 @@ SRC_DIR := src BIN_DIR := bin CC := gcc -C_FLAGS := -c -O2 -msoft-float +C_FLAGS := -c -O2 -msoft-float +# The INCLUDE must provide the required header files (longlong.h etc.), in the form INCLUDE=I INCLUDE := AR := ar OUTPUT := libsoft-fp.a @@ -13,7 +14,8 @@ SRC_FILES := $(patsubst %, $(GEN_DIR)/%.c, $(FILES)) OBJ_FILES := $(patsubst %, $(BIN_DIR)/%.o, $(FILES)) # defintions -BIG_ENDIAN := 0 +BIG_ENDIAN := 0 +OMIT_FIXUNSFFSI := 0 # Definitions for float types and operations F_COMPUTE_TYPE := unsigned long @@ -60,6 +62,9 @@ $(GEN_DIR)/sfieeelib.c: $(SRC_DIR)/ieeelib.c echo '#define MSB_IMPLICIT true' >>$(GEN_DIR)/sfieeelib.c ifeq ($(BIG_ENDIAN),1) echo '#define FLOAT_WORDS_BIG_ENDIAN' >>$(GEN_DIR)/sfieeelib.c +endif +ifeq ($(OMIT_FIXUNSFFSI),1) + echo '#define OMIT_FIXUNSFFSI' >>$(GEN_DIR)/sfieeelib.c endif cat $(SRC_DIR)/ieeelib.c >>$(GEN_DIR)/sfieeelib.c @@ -76,6 +81,9 @@ $(GEN_DIR)/dfieeelib.c: $(SRC_DIR)/ieeelib.c echo '#define MSB_IMPLICIT true' >>$(GEN_DIR)/dfieeelib.c ifeq ($(BIG_ENDIAN),1) echo '#define FLOAT_WORDS_BIG_ENDIAN' >>$(GEN_DIR)/sfieeelib.c +endif +ifeq ($(OMIT_FIXUNSFFSI),1) + echo '#define OMIT_FIXUNSFFSI' >>$(GEN_DIR)/sfieeelib.c endif cat $(SRC_DIR)/ieeelib.c >>$(GEN_DIR)/dfieeelib.c diff --git a/src/ieeelib.c b/src/ieeelib.c index c79a626..a29199b 100644 --- a/src/ieeelib.c +++ b/src/ieeelib.c @@ -1945,6 +1945,7 @@ fixfpsi_2 (FLOATING_TYPE u) #endif /*-----------------------------------------------------------------------------------------*/ #ifdef fixunsfpsi_1 +#ifndef OMIT_FIXUNSFFSI USItype fixunsfpsi_1 (FLOATING_TYPE u) { @@ -1961,8 +1962,10 @@ fixunsfpsi_1 (FLOATING_TYPE u) return ((um | UP_MSB) >> (COMPUTE_TYPE_BITS - 1 - ue)); } #endif +#endif #ifdef fixunsfpsi_2 +#ifndef OMIT_FIXUNSFFSI USItype fixunsfpsi_2 (FLOATING_TYPE u) { @@ -1979,6 +1982,7 @@ fixunsfpsi_2 (FLOATING_TYPE u) return ((uh | UP_MSB) >> (COMPUTE_TYPE_BITS - 1 - ue)); } #endif +#endif /*-----------------------------------------------------------------------------------------*/ #define N_QUOTIENT_BITS (MANTISSA_BITS+1)