aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@codesourcery.com>2014-10-03 20:15:29 +0000
committerMaciej W. Rozycki <macro@gcc.gnu.org>2014-10-03 20:15:29 +0000
commitbbdb509856d39eedf5bfff25f845060a965d592a (patch)
tree2870da67b6bec3c0fda07e0ff713131ce658a96c /gcc
parent6bc8a1261f5523c515ff7071ec6c188d99aa24ef (diff)
downloadgcc-bbdb509856d39eedf5bfff25f845060a965d592a.zip
gcc-bbdb509856d39eedf5bfff25f845060a965d592a.tar.gz
gcc-bbdb509856d39eedf5bfff25f845060a965d592a.tar.bz2
e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove macro.
* config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove macro. * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle TARGET_E500_DOUBLE case here. From-SVN: r215875
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/rs6000/e500.h9
-rw-r--r--gcc/config/rs6000/rs6000.h6
3 files changed, 11 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8c96f52..e3d54cd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2014-10-03 Maciej W. Rozycki <macro@codesourcery.com>
+
+ * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
+ macro.
+ * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
+ TARGET_E500_DOUBLE case here.
+
2014-10-03 Marc Glisse <marc.glisse@inria.fr>
PR c++/54427
diff --git a/gcc/config/rs6000/e500.h b/gcc/config/rs6000/e500.h
index 2fd1d12..d97dabc 100644
--- a/gcc/config/rs6000/e500.h
+++ b/gcc/config/rs6000/e500.h
@@ -43,12 +43,3 @@
error ("E500 and FPRs not supported"); \
} \
} while (0)
-
-/* Override rs6000.h definition. */
-#undef HARD_REGNO_CALLER_SAVE_MODE
-/* When setting up caller-save slots (MODE == VOIDmode) ensure we
- allocate space for DFmode. Save gprs in the correct mode too. */
-#define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE) \
- (TARGET_E500_DOUBLE && ((MODE) == VOIDmode || (MODE) == DFmode) \
- ? DFmode \
- : choose_hard_reg_mode ((REGNO), (NREGS), false))
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 1fd4f2a..01699f7 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -1178,9 +1178,11 @@ enum data_align { align_abi, align_opt, align_both };
&& ((MODE) == VOIDmode || ALTIVEC_OR_VSX_VECTOR_MODE (MODE)) \
&& FP_REGNO_P (REGNO) \
? V2DFmode \
- : ((MODE) == TFmode && FP_REGNO_P (REGNO)) \
+ : TARGET_E500_DOUBLE && ((MODE) == VOIDmode || (MODE) == DFmode) \
? DFmode \
- : ((MODE) == TDmode && FP_REGNO_P (REGNO)) \
+ : !TARGET_E500_DOUBLE && (MODE) == TFmode && FP_REGNO_P (REGNO) \
+ ? DFmode \
+ : !TARGET_E500_DOUBLE && (MODE) == TDmode && FP_REGNO_P (REGNO) \
? DImode \
: choose_hard_reg_mode ((REGNO), (NREGS), false))