aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2015-01-16 17:36:16 +0100
committerSegher Boessenkool <segher@gcc.gnu.org>2015-01-16 17:36:16 +0100
commit77688d70590330ad4b56d6fb690456d72406c6a2 (patch)
tree5906c6e4172e382866e8aa21071b2ee78f9377ef
parented821220ca4373512728444dd0d37e8f95a187c1 (diff)
downloadgcc-77688d70590330ad4b56d6fb690456d72406c6a2.zip
gcc-77688d70590330ad4b56d6fb690456d72406c6a2.tar.gz
gcc-77688d70590330ad4b56d6fb690456d72406c6a2.tar.bz2
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
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/rs6000/rs6000.c16
2 files changed, 23 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 53363cc..55e0315 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
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
instead of UNITS_PER_WORD to describe the size of stack slots.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 36cbef9..3a46333 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. */