[PATCH] rs6000: float128 on BE and 32-bit

Michael Meissner meissner@linux.vnet.ibm.com
Mon Feb 27 23:14:00 GMT 2017


On Mon, Feb 13, 2017 at 10:20:48PM +0000, Segher Boessenkool wrote:
> 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.
> 
> Tested on powerpc64-linux {-m32,-m64} so far.  I see I also need to
> update some code comments, ugh.

This patch fixes problems with float128.  Thanks for doing it.  I verified that
float128-hw.o is now built, and when I compile code with -mcpu=power8 and run
it on the power9 simulator it correctly switches __{add,sub,mul,div}kf3 to use
the hardware instructions.

Yeah, if there is a demand for -mfloat128-hardware -m32, we could do it, but
for now I think it is best to require 64-bit.

-- 
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: meissner@linux.vnet.ibm.com, phone: +1 (978) 899-4797



More information about the Gcc-patches mailing list