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