]> git.ipfire.org Git - thirdparty/gcc.git/blame - libgcc/config/rs6000/t-float128-hw
re PR target/85358 (PowerPC: Using -mabi=ieeelongdouble -mcpu=power9 breaks __ibm128)
[thirdparty/gcc.git] / libgcc / config / rs6000 / t-float128-hw
CommitLineData
a71c0334
MM
1# Support for adding __float128 hardware support to the powerpc.
2# Tell the float128 functions that the ISA 3.0 hardware support can
3# be compiled it to be selected via IFUNC functions.
4
5FLOAT128_HW_INSNS = -DFLOAT128_HW_INSNS
6
7# New functions for hardware support
75ad35b5 8fp128_hardfp_src = _mulkc3-hw.c _divkc3-hw.c
661eb8f9 9fp128_hw_funcs = float128-hw _mulkc3-hw _divkc3-hw _powikf2-hw
75ad35b5 10fp128_hw_src = $(srcdir)/config/rs6000/float128-hw.c _mulkc3-hw.c \
661eb8f9 11 _divkc3-hw.c _powikf2-hw.c
75ad35b5
MM
12fp128_hw_static_obj = $(addsuffix $(objext),$(fp128_hw_funcs))
13fp128_hw_shared_obj = $(addsuffix _s$(objext),$(fp128_hw_funcs))
a71c0334
MM
14fp128_hw_obj = $(fp128_hw_static_obj) $(fp128_hw_shared_obj)
15
16fp128_ifunc_funcs = float128-ifunc
17fp128_ifunc_src = $(srcdir)/config/rs6000/float128-ifunc.c
18fp128_ifunc_static_obj = float128-ifunc$(objext)
19fp128_ifunc_shared_obj = float128-ifunc_s$(objext)
20fp128_ifunc_obj = $(fp128_ifunc_static_obj) $(fp128_ifunc_shared_obj)
21
22# Add _sw suffix to names to allow ifunc support.
23fp128_sed_hw = -hw
24
25# Build the hardware support functions with appropriate hardware support
26FP128_CFLAGS_HW = -Wno-type-limits -mvsx -mfloat128 \
27 -mpower8-vector -mpower9-vector \
6a8886e4 28 -mfloat128-hardware -mno-gnu-attribute \
a71c0334
MM
29 -I$(srcdir)/soft-fp \
30 -I$(srcdir)/config/rs6000 \
31 $(FLOAT128_HW_INSNS)
32
33$(fp128_hw_obj) : INTERNAL_CFLAGS += $(FP128_CFLAGS_HW)
34$(fp128_hw_obj) : $(srcdir)/config/rs6000/t-float128-hw
35
36$(fp128_ifunc_obj) : INTERNAL_CFLAGS += $(FP128_CFLAGS_SW)
37$(fp128_ifunc_obj) : $(srcdir)/config/rs6000/t-float128-hw
75ad35b5
MM
38
39_mulkc3-hw.c: $(srcdir)/config/rs6000/_mulkc3.c
40 (echo "#define __mulkc3 __mulkc3_hw"; \
41 cat $(srcdir)/config/rs6000/_mulkc3.c) > _mulkc3-hw.c
42
43_divkc3-hw.c: $(srcdir)/config/rs6000/_divkc3.c
44 (echo "#define __divkc3 __divkc3_hw"; \
45 cat $(srcdir)/config/rs6000/_divkc3.c) > _divkc3-hw.c
661eb8f9
MM
46
47_powikf2-hw.c: $(srcdir)/config/rs6000/_powikf2.c
48 (echo "#define __powikf2 __powikf2_hw"; \
49 cat $(srcdir)/config/rs6000/_powikf2.c) > _powikf2-hw.c