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