rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE, [...]): Implement as ...
authorSegher Boessenkool <segher@kernel.crashing.org>
Fri, 16 Jan 2015 16:36:16 +0000 (17:36 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Fri, 16 Jan 2015 16:36:16 +0000 (17:36 +0100)
* config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
as ...
(rs6000_abi_word_mode): New function.

From-SVN: r219753

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index 53363ccf9dfacd08b4016834993ed2097c44721f..55e0315f2dd463a1cd71ae076a6d2a09d58d097b 100644 (file)
@@ -1,3 +1,10 @@
+2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
+       TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
+       as ...
+       (rs6000_abi_word_mode): New function.
+
 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
 
        * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
index 36cbef9b357eacb91f38bb7c5d49c47d62c1b62f..3a4633303702b000ca465b9acddd7107fcfd211c 100644 (file)
@@ -1676,6 +1676,13 @@ static const struct attribute_spec rs6000_attribute_table[] =
 
 #undef TARGET_ATOMIC_ASSIGN_EXPAND_FENV
 #define TARGET_ATOMIC_ASSIGN_EXPAND_FENV rs6000_atomic_assign_expand_fenv
+
+#undef TARGET_LIBGCC_CMP_RETURN_MODE
+#define TARGET_LIBGCC_CMP_RETURN_MODE rs6000_abi_word_mode
+#undef TARGET_LIBGCC_SHIFT_COUNT_MODE
+#define TARGET_LIBGCC_SHIFT_COUNT_MODE rs6000_abi_word_mode
+#undef TARGET_UNWIND_WORD_MODE
+#define TARGET_UNWIND_WORD_MODE rs6000_abi_word_mode
 \f
 
 /* Processor table.  */
@@ -9306,6 +9313,15 @@ init_cumulative_args (CUMULATIVE_ARGS *cum, tree fntype,
     }
 }
 \f
+/* The mode the ABI uses for a word.  This is not the same as word_mode
+   for -m32 -mpowerpc64.  This is used to implement various target hooks.  */
+
+static machine_mode
+rs6000_abi_word_mode (void)
+{
+  return TARGET_32BIT ? SImode : DImode;
+}
+
 /* On rs6000, function arguments are promoted, as are function return
    values.  */