Home | History | Annotate | Line # | Download | only in rs6000
      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