From 77688d70590330ad4b56d6fb690456d72406c6a2 Mon Sep 17 00:00:00 2001 From: Segher Boessenkool Date: Fri, 16 Jan 2015 17:36:16 +0100 Subject: [PATCH] rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE, [...]): Implement as ... * 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 | 7 +++++++ gcc/config/rs6000/rs6000.c | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 53363ccf9df..55e0315f2dd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2015-01-16 Segher Boessenkool + + * 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 * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 36cbef9b357..3a463330370 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -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 /* Processor table. */ @@ -9306,6 +9313,15 @@ init_cumulative_args (CUMULATIVE_ARGS *cum, tree fntype, } } +/* 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. */ -- 2.30.2