Home | History | Annotate | Line # | Download | only in rs6000
      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 
      5 FLOAT128_HW_INSNS	= -DFLOAT128_HW_INSNS
      6 
      7 # New functions for hardware support
      8 fp128_hardfp_src	= _mulkc3-hw.c _divkc3-hw.c
      9 fp128_hw_funcs		= float128-hw _mulkc3-hw _divkc3-hw _powikf2-hw
     10 fp128_hw_src		= $(srcdir)/config/rs6000/float128-hw.c _mulkc3-hw.c \
     11 			  _divkc3-hw.c _powikf2-hw.c
     12 fp128_hw_static_obj	= $(addsuffix $(objext),$(fp128_hw_funcs))
     13 fp128_hw_shared_obj	= $(addsuffix _s$(objext),$(fp128_hw_funcs))
     14 fp128_hw_obj		= $(fp128_hw_static_obj) $(fp128_hw_shared_obj)
     15 
     16 fp128_ifunc_funcs	= float128-ifunc
     17 fp128_ifunc_src		= $(srcdir)/config/rs6000/float128-ifunc.c
     18 fp128_ifunc_static_obj	= float128-ifunc$(objext)
     19 fp128_ifunc_shared_obj	= float128-ifunc_s$(objext)
     20 fp128_ifunc_obj		= $(fp128_ifunc_static_obj) $(fp128_ifunc_shared_obj)
     21 
     22 # Add _sw suffix to names to allow ifunc support.
     23 fp128_sed_hw		= -hw
     24 
     25 # Build the hardware support functions with appropriate hardware support
     26 FP128_CFLAGS_HW		 = -Wno-type-limits -mvsx -mfloat128 \
     27 			   -mcpu=power9 \
     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