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 8fp128_hardfp_src = _mulkc3-hw.c _divkc3-hw.c 9fp128_hw_funcs = float128-hw _mulkc3-hw _divkc3-hw _powikf2-hw 10fp128_hw_src = $(srcdir)/config/rs6000/float128-hw.c _mulkc3-hw.c \ 11 _divkc3-hw.c _powikf2-hw.c 12fp128_hw_static_obj = $(addsuffix $(objext),$(fp128_hw_funcs)) 13fp128_hw_shared_obj = $(addsuffix _s$(objext),$(fp128_hw_funcs)) 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 \ 28 -mfloat128-hardware -mno-gnu-attribute \ 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 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 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 50