gcc/libgcc/config
Michael Meissner 29176d57e6 rs6000-builtin.def (BU_FLOAT128_2): Add support for pack/unpack functions for __ibm128.
[gcc]
2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
	for pack/unpack functions for __ibm128.
	(PACK_IF): Likewise.
	(UNPACK_IF): Likewise.

	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
	support for __ibm128 pack/unpack functions.
	(rs6000_invalid_builtin): Likewise.
	(rs6000_init_builtins): Likewise.
	(rs6000_opt_masks): Likewise.

	* config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
	(RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
	functions
	(RS6000_BTM_COMMON): Likewise.

	* config/rs6000/rs6000.md (f128_vsx): New mode attribute.
	(unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
	disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
	128-bit floating point.  Add support for the double values to be
	in Altivec registers for TF/IF packing and unpacking, but restrict
	TD packing sub-fields to be FPR registers.  Don't allow overlapped
	register support for packing.  Allow pack inputs to be memory
	locations.  Don't build generator functions for unpack<mode>_dm
	and unpack<mode>_nodm.
	(unpack<mode>_dm): Likewise.
	(unpack<mode>_nodm): Likewise.
	(pack<mode>): Likewise.

	* config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
	built-in functions to pack/unpack explicit __ibm128 values.
	(__builtin_unpack_ibm128): Likewise.

	* doc/extend.texi (PowerPC Built-in Functions): Document
	__builtin_pack_ibm128 and __builtin_unpack_ibm128.

[libgcc]
2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Steven Munroe <munroesj@linux.vnet.ibm.com>
	    Tulio Magno Quites Machado Filho <tulioqm@br.ibm.com>

	* config/rs6000/sfp-exceptions.c: New file to provide exception
	support for IEEE 128-bit floating point.

	* config/rs6000/float128-hw.c: New file for ISA 3.0 IEEE 128-bit
	floating point hardware support.

	* config/rs6000/floattikf.c: New files for IEEE 128-bit floating
	point conversions.
	* config/rs6000/fixunskfti.c: Likewise.
	* config/rs6000/fixkfti.c: Likewise.
	* config/rs6000/floatuntikf.c: Likewise.
	* config/rs6000/extendkftf2-sw.c: Likewise.
	* config/rs6000/trunctfkf2-sw.c: Likewise.

	* config/rs6000/float128-ifunc.c: New file to pick either IEEE
	128-bit floating point software emulation or use ISA 3.0 hardware
	support if it is available.

	* config/rs6000/quad-float128.h: New file to support IEEE 128-bit
	floating point.

	* config/rs6000/t-float128: New Makefile fragments to enable
	building __float128 emulation support.
	* config/rs6000/t-float128-hw: Likewise.

	* config/rs6000/float128-sed: New file to convert TF names to KF
	names for PowerPC IEEE 128-bit floating point support.

	* config/rs6000/sfp-machine.h (_FP_W_TYPE_SIZE): Use 64-bit types
	when building on 64-bit systems, or when VSX is enabled.
	(_FP_W_TYPE): Likewise.
	(_FP_WS_TYPE): Likewise.
	(_FP_I_TYPE): Likewise.
	(TItype): Define on 64-bit systems.
	(UTItype): Likewise.
	(TI_BITS): Likewise.
	(_FP_MUL_MEAT_D): Add support for using 64-bit types.
	(_FP_MUL_MEAT_Q): Likewise.
	(_FP_DIV_MEAT_D): Likewise.
	(_FP_DIV_MEAT_Q): Likewise.
	(_FP_NANFRAC_D): Likewise.
	(_FP_NANFRAC_Q): Likewise.
	(ISA_BIT): Add exception support if we are being compiled on a
	machine with hardware floating point support to build the IEEE
	128-bit emulation functions.
	(FP_EX_INVALID): Likewise.
	(FP_EX_OVERFLOW): Likewise.
	(FP_EX_UNDERFLOW): Likewise.
	(FP_EX_DIVZERO): Likewise.
	(FP_EX_INEXACT): Likewise.
	(FP_EX_ALL): Likewise.
	(__sfp_handle_exceptions): Likewise.
	(FP_HANDLE_EXCEPTIONS): Likewise.
	(FP_RND_NEAREST): Likewise.
	(FP_RND_ZERO): Likewise.
	(FP_RND_PINF): Likewise.
	(FP_RND_MINF): Likewise.
	(FP_RND_MASK): Likewise.
	(_FP_DECL_EX): Likewise.
	(FP_INIT_ROUNDMODE): Likewise.
	(FP_ROUNDMODE): Likewise.

	* configure.ac (powerpc*-*-linux*): Check whether the PowerPC
	compiler can do __float128.
	* configure: Regenerate.

	* libgcc/config.host (powerpc*-*-linux*): If compiler can compile
	VSX code, enable IEEE 128-bit floating point.

From-SVN: r232346
2016-01-13 20:07:12 +00:00
..
aarch64 Update copyright years. 2016-01-04 15:30:50 +01:00
alpha Update copyright years. 2016-01-04 15:30:50 +01:00
arc Update copyright years. 2016-01-04 15:30:50 +01:00
arm Update copyright years. 2016-01-04 15:30:50 +01:00
avr Update copyright years. 2016-01-04 15:30:50 +01:00
bfin Update copyright years. 2016-01-04 15:30:50 +01:00
c6x Update copyright years. 2016-01-04 15:30:50 +01:00
cr16 Update copyright years. 2016-01-04 15:30:50 +01:00
cris Update copyright years. 2016-01-04 15:30:50 +01:00
epiphany Update copyright years. 2016-01-04 15:30:50 +01:00
fr30 Update copyright years. 2016-01-04 15:30:50 +01:00
frv Update copyright years. 2016-01-04 15:30:50 +01:00
ft32 Update copyright years. 2016-01-04 15:30:50 +01:00
h8300 Update copyright years. 2016-01-04 15:30:50 +01:00
i386 Update copyright years. 2016-01-04 15:30:50 +01:00
ia64 Update copyright years. 2016-01-04 15:30:50 +01:00
iq2000 Update copyright years. 2016-01-04 15:30:50 +01:00
libbid Update copyright years. 2016-01-04 15:30:50 +01:00
lm32 Update copyright years. 2016-01-04 15:30:50 +01:00
m32c Update copyright years. 2016-01-04 15:30:50 +01:00
m32r Update copyright years. 2016-01-04 15:30:50 +01:00
m68k Update copyright years. 2016-01-04 15:30:50 +01:00
mcore Update copyright years. 2016-01-04 15:30:50 +01:00
mep Update copyright years. 2016-01-04 15:30:50 +01:00
microblaze Update copyright years. 2016-01-04 15:30:50 +01:00
mips Update copyright years. 2016-01-04 15:30:50 +01:00
mmix Update copyright years. 2016-01-04 15:30:50 +01:00
moxie Update copyright years. 2016-01-04 15:30:50 +01:00
msp430 Update copyright years. 2016-01-04 15:30:50 +01:00
nds32 Update copyright years. 2016-01-04 15:30:50 +01:00
nios2 Update copyright years. 2016-01-04 15:30:50 +01:00
nvptx Update copyright years. 2016-01-04 15:30:50 +01:00
pa Update copyright years. 2016-01-04 15:30:50 +01:00
pdp11
rl78 Update copyright years. 2016-01-04 15:30:50 +01:00
rs6000 rs6000-builtin.def (BU_FLOAT128_2): Add support for pack/unpack functions for __ibm128. 2016-01-13 20:07:12 +00:00
rx Update copyright years. 2016-01-04 15:30:50 +01:00
s390 Update copyright years. 2016-01-04 15:30:50 +01:00
score Update copyright years. 2016-01-04 15:30:50 +01:00
sh Update copyright years. 2016-01-04 15:30:50 +01:00
sol2 Update copyright years. 2016-01-04 15:30:50 +01:00
sparc Update copyright years. 2016-01-04 15:30:50 +01:00
spu Update copyright years. 2016-01-04 15:30:50 +01:00
stormy16 Update copyright years. 2016-01-04 15:30:50 +01:00
tilegx
tilepro Update copyright years. 2016-01-04 15:30:50 +01:00
v850 Update copyright years. 2016-01-04 15:30:50 +01:00
vax Update copyright years. 2016-01-04 15:30:50 +01:00
visium Update copyright years. 2016-01-04 15:30:50 +01:00
vms Update copyright years. 2016-01-04 15:30:50 +01:00
xtensa Update copyright years. 2016-01-04 15:30:50 +01:00
darwin-64.c Update copyright years. 2016-01-04 15:30:50 +01:00
darwin-crt-tm.c Update copyright years. 2016-01-04 15:30:50 +01:00
darwin-crt3.c Update copyright years. 2016-01-04 15:30:50 +01:00
gthr-lynx.h Update copyright years. 2016-01-04 15:30:50 +01:00
gthr-rtems.h Update copyright years. 2016-01-04 15:30:50 +01:00
gthr-vxworks.h Update copyright years. 2016-01-04 15:30:50 +01:00
hardfp.c Update copyright years. 2016-01-04 15:30:50 +01:00
libgcc-glibc.ver Update copyright years. 2016-01-04 15:30:50 +01:00
libgcc-libsystem.ver
no-sfp-machine.h
no-unwind.h
t-crtfm
t-crtstuff-pic
t-darwin
t-dfprules
t-eh-dw2-dip
t-fdpbit
t-fixedpoint-gnu-prefix
t-fpbit
t-freebsd-thread
t-gnu-prefix
t-hardfp Update copyright years. 2016-01-04 15:30:50 +01:00
t-hardfp-sfdf Update copyright years. 2016-01-04 15:30:50 +01:00
t-libgcc-pic
t-libunwind
t-libunwind-elf Update copyright years. 2016-01-04 15:30:50 +01:00
t-linux
t-openbsd-thread
t-rtems
t-slibgcc Update copyright years. 2016-01-04 15:30:50 +01:00
t-slibgcc-darwin
t-slibgcc-elf-ver
t-slibgcc-gld
t-slibgcc-gld-nover
t-slibgcc-hpux
t-slibgcc-libgcc Update copyright years. 2016-01-04 15:30:50 +01:00
t-slibgcc-nolc-override
t-slibgcc-sld
t-slibgcc-vms
t-softfp Update copyright years. 2016-01-04 15:30:50 +01:00
t-softfp-compat
t-softfp-excl
t-softfp-sfdf
t-softfp-sfdftf
t-softfp-tf
t-stack
t-tls
t-vxworks
unwind-dw2-fde-darwin.c Update copyright years. 2016-01-04 15:30:50 +01:00
vxlib-tls.c Update copyright years. 2016-01-04 15:30:50 +01:00
vxlib.c Update copyright years. 2016-01-04 15:30:50 +01:00