From: Alexandre Oliva Date: Mon, 11 Feb 2002 13:35:14 +0000 (+0000) Subject: regrename.c (regrename_optimize): Don't accept a part-clobbered register if the repla... X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=66df7a985f423ee12a75bd1ae0852ad942b925c3;p=platform%2Fupstream%2Fgcc.git regrename.c (regrename_optimize): Don't accept a part-clobbered register if the replaced register is not part... * regrename.c (regrename_optimize): Don't accept a part-clobbered register if the replaced register is not part clobbered. From-SVN: r49676 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 748d7a7..46d6899 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2002-02-11 Alexandre Oliva + * regrename.c (regrename_optimize): Don't accept a + part-clobbered register if the replaced register is not part + clobbered. + * calls.c (store_one_arg): In the non-BLKmode non-partial case, take padding into account when computing the argument value. diff --git a/gcc/regrename.c b/gcc/regrename.c index b830b88..135eaef 100644 --- a/gcc/regrename.c +++ b/gcc/regrename.c @@ -325,7 +325,12 @@ regrename_optimize () /* See whether it accepts all modes that occur in definition and uses. */ for (tmp = this; tmp; tmp = tmp->next_use) - if (! HARD_REGNO_MODE_OK (new_reg, GET_MODE (*tmp->loc))) + if (! HARD_REGNO_MODE_OK (new_reg, GET_MODE (*tmp->loc)) + || (tmp->need_caller_save_reg + && ! (HARD_REGNO_CALL_PART_CLOBBERED + (reg, GET_MODE (*tmp->loc))) + && (HARD_REGNO_CALL_PART_CLOBBERED + (new_reg, GET_MODE (*tmp->loc))))) break; if (! tmp) {