rs6000: float128 on BE and 32-bit
authorSegher Boessenkool <segher@kernel.crashing.org>
Fri, 10 Mar 2017 17:57:58 +0000 (18:57 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Fri, 10 Mar 2017 17:57:58 +0000 (18:57 +0100)
commit7502c5970d0af6cc71c2a906d55d95a31322bc07
tree16e2a026b5e756c50a081d806968d0a5851baaf4
parent0c942f3edab10854aecdf92e8bd79ca6bc33bc66
rs6000: float128 on BE and 32-bit

This fixes float128 on BE and on 32-bit.

The configure tests need to use -mabi=altivec for 32-bit, since it is
not the default there.  That also enables the "vector" keyword, used by
the tests.  To do this it temporarily adds a few flags to the CFLAGS
variable.

It also fixes a syntax error in the libgcc_cv_powerpc_float128_hw test
(the function name was missing in the function declaration).

Regenerating config.in (via autoreconf) removed the duplicate definition
of HAVE_SOLARIS_CRTS.

Finally, this adds a "-mfloat128-hardware requires -m64" test to
rs6000.c: all the current patterns need 64-bit registers.  Maybe we'll
want to add float128 hardware support to 32-bit some day, but certainly
not today.

* config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
-mfloat128-hardware without -m64.

libgcc/
* configure.ac (test for libgcc_cv_powerpc_float128): Temporarily
modify CFLAGS.  Add -mabi=altivec -mvsx -mfloat128.
(test for libgcc_cv_powerpc_float128_hw): Add -mpower9-vector and
-mfloat128-hardware to the CFLAGS.  Fix syntax error in the C snippet.
* configure: Regenerate.
* config.in: Regenerate.

From-SVN: r246043
gcc/ChangeLog
gcc/config/rs6000/rs6000.c
libgcc/ChangeLog
libgcc/config.in
libgcc/configure
libgcc/configure.ac