t-float128-hw 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. FLOAT128_HW_INSNS = -DFLOAT128_HW_INSNS
  5. # New functions for hardware support
  6. fp128_hardfp_src = _mulkc3-hw.c _divkc3-hw.c
  7. fp128_hw_funcs = float128-hw _mulkc3-hw _divkc3-hw _powikf2-hw
  8. fp128_hw_src = $(srcdir)/config/rs6000/float128-hw.c _mulkc3-hw.c \
  9. _divkc3-hw.c _powikf2-hw.c
  10. fp128_hw_static_obj = $(addsuffix $(objext),$(fp128_hw_funcs))
  11. fp128_hw_shared_obj = $(addsuffix _s$(objext),$(fp128_hw_funcs))
  12. fp128_hw_obj = $(fp128_hw_static_obj) $(fp128_hw_shared_obj)
  13. fp128_ifunc_funcs = float128-ifunc
  14. fp128_ifunc_src = $(srcdir)/config/rs6000/float128-ifunc.c
  15. fp128_ifunc_static_obj = float128-ifunc$(objext)
  16. fp128_ifunc_shared_obj = float128-ifunc_s$(objext)
  17. fp128_ifunc_obj = $(fp128_ifunc_static_obj) $(fp128_ifunc_shared_obj)
  18. # Add _sw suffix to names to allow ifunc support.
  19. fp128_sed_hw = -hw
  20. # Build the hardware support functions with appropriate hardware support
  21. FP128_CFLAGS_HW = -Wno-type-limits -mvsx -mfloat128 \
  22. -mpower8-vector -mpower9-vector \
  23. -mfloat128-hardware -mno-gnu-attribute \
  24. -I$(srcdir)/soft-fp \
  25. -I$(srcdir)/config/rs6000 \
  26. $(FLOAT128_HW_INSNS)
  27. $(fp128_hw_obj) : INTERNAL_CFLAGS += $(FP128_CFLAGS_HW)
  28. $(fp128_hw_obj) : $(srcdir)/config/rs6000/t-float128-hw
  29. $(fp128_ifunc_obj) : INTERNAL_CFLAGS += $(FP128_CFLAGS_SW)
  30. $(fp128_ifunc_obj) : $(srcdir)/config/rs6000/t-float128-hw
  31. _mulkc3-hw.c: $(srcdir)/config/rs6000/_mulkc3.c
  32. (echo "#define __mulkc3 __mulkc3_hw"; \
  33. cat $(srcdir)/config/rs6000/_mulkc3.c) > _mulkc3-hw.c
  34. _divkc3-hw.c: $(srcdir)/config/rs6000/_divkc3.c
  35. (echo "#define __divkc3 __divkc3_hw"; \
  36. cat $(srcdir)/config/rs6000/_divkc3.c) > _divkc3-hw.c
  37. _powikf2-hw.c: $(srcdir)/config/rs6000/_powikf2.c
  38. (echo "#define __powikf2 __powikf2_hw"; \
  39. cat $(srcdir)/config/rs6000/_powikf2.c) > _powikf2-hw.c