X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Flocal-alloc.c;h=af97caf0173c59ba7d33a2eef5246260ff5b4140;hb=5d2fc50913d8f07dac579d636b6b46040df073f1;hp=0d6d908581a5403633f0285de672b3a90caa50e3;hpb=20099e352f87c3265c44cd3341fd3aec25cb0fb4;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c index 0d6d908581a..af97caf0173 100644 --- a/gcc/local-alloc.c +++ b/gcc/local-alloc.c @@ -1415,7 +1415,7 @@ block_alloc (int b) /* Avoid making a call-saved register unnecessarily clobbered. */ - hard_reg = get_hard_reg_initial_reg (cfun, r1); + hard_reg = get_hard_reg_initial_reg (r1); if (hard_reg != NULL_RTX) { if (REG_P (hard_reg) @@ -2008,7 +2008,7 @@ combine_regs (rtx usedreg, rtx setreg, int may_save_copy, int insn_number, if (reg_qty[sreg] >= -1 /* If we are not going to let any regs live across calls, don't tie a call-crossing reg to a non-call-crossing reg. */ - || (current_function_has_nonlocal_label + || (cfun->has_nonlocal_label && ((REG_N_CALLS_CROSSED (ureg) > 0) != (REG_N_CALLS_CROSSED (sreg) > 0)))) return 0; @@ -2229,7 +2229,7 @@ find_free_reg (enum reg_class class, enum machine_mode mode, int qtyno, /* Don't let a pseudo live in a reg across a function call if we might get a nonlocal goto. */ - if (current_function_has_nonlocal_label + if (cfun->has_nonlocal_label && qty[qtyno].n_calls_crossed > 0) return -1;