From 325df0eb7fe68e12e809d1ea9e499dfa807d3a77 Mon Sep 17 00:00:00 2001 From: Segher Boessenkool Date: Fri, 16 Jan 2015 17:46:32 +0100 Subject: [PATCH] rs6000.c (rs6000_scalar_mode_supported_p): Disallow TImode for TARGET_32BIT. * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow TImode for TARGET_32BIT. From-SVN: r219754 --- gcc/ChangeLog | 5 +++++ gcc/config/rs6000/rs6000.c | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 55e0315f2dd..b4a620bfae4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-01-16 Segher Boessenkool + + * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow + TImode for TARGET_32BIT. + 2015-01-16 Segher Boessenkool * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE, diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 3a463330370..3926b079523 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -31967,6 +31967,14 @@ rs6000_eh_return_filter_mode (void) static bool rs6000_scalar_mode_supported_p (machine_mode mode) { + /* -m32 does not support TImode. This is the default, from + default_scalar_mode_supported_p. For -m32 -mpowerpc64 we want the + same ABI as for -m32. But default_scalar_mode_supported_p allows + integer modes of precision 2 * BITS_PER_WORD, which matches TImode + for -mpowerpc64. */ + if (TARGET_32BIT && mode == TImode) + return false; + if (DECIMAL_FLOAT_MODE_P (mode)) return default_decimal_float_supported_p (); else -- 2.30.2