diff options
author | liuhongt <hongtao.liu@intel.com> | 2021-09-03 13:06:57 +0800 |
---|---|---|
committer | liuhongt <hongtao.liu@intel.com> | 2021-09-06 15:13:14 +0800 |
commit | 637dfcf43cfd2f01f4757abfd84d376d4011b0b2 (patch) | |
tree | 540e0dce3f1edc40bdcb93e603fbb2828414664c /libgcc | |
parent | a3fb781d4b341c0d50ef1b92cd3e8734e673ef18 (diff) | |
download | gcc-637dfcf43cfd2f01f4757abfd84d376d4011b0b2.zip gcc-637dfcf43cfd2f01f4757abfd84d376d4011b0b2.tar.gz gcc-637dfcf43cfd2f01f4757abfd84d376d4011b0b2.tar.bz2 |
Explicitly add -msse2 to compile HF related libgcc source file.
For 32-bit libgcc configure w/o sse2, there's would be an error since
GCC only support _Float16 under sse2. Explicitly add -msse2 for those
HF related libgcc functions, so users can still link them w/ the
upper configuration.
libgcc/ChangeLog:
* Makefile.in: Adjust to support specific CFLAGS for each
libgcc source file.
* config/i386/64/t-softfp: Explicitly add -msse2 for HF
related libgcc source files.
* config/i386/t-softfp: Ditto.
* config/i386/_divhc3.c: New file.
* config/i386/_mulhc3.c: New file.
Diffstat (limited to 'libgcc')
-rw-r--r-- | libgcc/Makefile.in | 2 | ||||
-rw-r--r-- | libgcc/config/i386/64/t-softfp | 5 | ||||
-rw-r--r-- | libgcc/config/i386/_divhc3.c | 4 | ||||
-rw-r--r-- | libgcc/config/i386/_mulhc3.c | 4 | ||||
-rw-r--r-- | libgcc/config/i386/t-softfp | 22 |
5 files changed, 35 insertions, 2 deletions
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in index 7ec9758..32e329f 100644 --- a/libgcc/Makefile.in +++ b/libgcc/Makefile.in @@ -314,7 +314,7 @@ MULTIOSSUBDIR := $(shell if test $(MULTIOSDIR) != .; then echo /$(MULTIOSDIR); f inst_libdir = $(libsubdir)$(MULTISUBDIR) inst_slibdir = $(slibdir)$(MULTIOSSUBDIR) -gcc_compile_bare = $(CC) $(INTERNAL_CFLAGS) +gcc_compile_bare = $(CC) $(INTERNAL_CFLAGS) $(CFLAGS-$(<F)) compile_deps = -MT $@ -MD -MP -MF $(basename $@).dep gcc_compile = $(gcc_compile_bare) -o $@ $(compile_deps) gcc_s_compile = $(gcc_compile) -DSHARED diff --git a/libgcc/config/i386/64/t-softfp b/libgcc/config/i386/64/t-softfp index f9d8b3a..3bec464 100644 --- a/libgcc/config/i386/64/t-softfp +++ b/libgcc/config/i386/64/t-softfp @@ -1 +1,6 @@ softfp_extras := fixhfti fixunshfti floattihf floatuntihf + +CFLAGS-fixhfti.c += -msse2 +CFLAGS-fixunshfti.c += -msse2 +CFLAGS-floattihf.c += -msse2 +CFLAGS-floatunstihf.c += -msse2 diff --git a/libgcc/config/i386/_divhc3.c b/libgcc/config/i386/_divhc3.c new file mode 100644 index 0000000..4cf92aa --- /dev/null +++ b/libgcc/config/i386/_divhc3.c @@ -0,0 +1,4 @@ +#ifdef __SSE2__ +#define L_divhc3 +#include "libgcc2.c" +#endif diff --git a/libgcc/config/i386/_mulhc3.c b/libgcc/config/i386/_mulhc3.c new file mode 100644 index 0000000..85a8a2f --- /dev/null +++ b/libgcc/config/i386/_mulhc3.c @@ -0,0 +1,4 @@ +#ifdef __SSE2__ +#define L_mulhc3 +#include "libgcc2.c" +#endif diff --git a/libgcc/config/i386/t-softfp b/libgcc/config/i386/t-softfp index 4ac214e..2363ea1 100644 --- a/libgcc/config/i386/t-softfp +++ b/libgcc/config/i386/t-softfp @@ -1,6 +1,26 @@ LIB2ADD += $(srcdir)/config/i386/sfp-exceptions.c +# Replace _divhc3 and _mulhc3. +libgcc2-hf-functions = _divhc3 _mulhc3 +LIB2FUNCS_EXCLUDE += $(libgcc2-hf-functions) +libgcc2-hf-extras = $(addsuffix .c, $(libgcc2-hf-functions)) +LIB2ADD_ST += $(addprefix $(srcdir)/config/i386/, $(libgcc2-hf-extras)) + softfp_extensions := hfsf hfdf hftf hfxf sfdf sftf dftf xftf softfp_truncations := tfhf xfhf dfhf sfhf tfsf dfsf tfdf tfxf -softfp_extras += eqhf2
\ No newline at end of file +softfp_extras += eqhf2 + +CFLAGS-extendhfsf2.c += -msse2 +CFLAGS-extendhfdf2.c += -msse2 +CFLAGS-extendhftf2.c += -msse2 +CFLAGS-extendhfxf2.c += -msse2 + +CFLAGS-truncsfhf2.c += -msse2 +CFLAGS-truncdfhf2.c += -msse2 +CFLAGS-truncxfhf2.c += -msse2 +CFLAGS-trunctfhf2.c += -msse2 + +CFLAGS-eqhf2.c += -msse2 +CFLAGS-_divhc3.c += -msse2 +CFLAGS-_mulhc3.c += -msse2 |