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
This commit is contained in:
parent
6bc8a1261f
commit
bbdb509856
@ -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
|
||||
|
@ -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))
|
||||
|
@ -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))
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user