diff options
author | Maciej W. Rozycki <macro@codesourcery.com> | 2014-10-03 20:15:29 +0000 |
---|---|---|
committer | Maciej W. Rozycki <macro@gcc.gnu.org> | 2014-10-03 20:15:29 +0000 |
commit | bbdb509856d39eedf5bfff25f845060a965d592a (patch) | |
tree | 2870da67b6bec3c0fda07e0ff713131ce658a96c /gcc | |
parent | 6bc8a1261f5523c515ff7071ec6c188d99aa24ef (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/rs6000/e500.h | 9 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.h | 6 |
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)) |