From: Maciej W. Rozycki Date: Fri, 3 Oct 2014 20:15:29 +0000 (+0000) Subject: e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove macro. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bbdb509856d39eedf5bfff25f845060a965d592a;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8c96f5225a2..e3d54cde017 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-10-03 Maciej W. Rozycki + + * 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 PR c++/54427 diff --git a/gcc/config/rs6000/e500.h b/gcc/config/rs6000/e500.h index 2fd1d121b81..d97dabc3c65 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 1fd4f2aa021..01699f73ae5 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))