diff options
Diffstat (limited to 'gcc/config/moxie/moxie.c')
-rw-r--r-- | gcc/config/moxie/moxie.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/config/moxie/moxie.c b/gcc/config/moxie/moxie.c index d840463..aa5948e 100644 --- a/gcc/config/moxie/moxie.c +++ b/gcc/config/moxie/moxie.c @@ -264,7 +264,7 @@ moxie_compute_frame (void) /* Save callee-saved registers. */ for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) - if (df_regs_ever_live_p (regno) && (! call_used_regs[regno])) + if (df_regs_ever_live_p (regno) && (! call_used_or_fixed_reg_p (regno))) cfun->machine->callee_saved_reg_size += 4; cfun->machine->size_for_adjusting_sp = @@ -288,7 +288,9 @@ moxie_expand_prologue (void) /* Save callee-saved registers. */ for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) { - if (!fixed_regs[regno] && df_regs_ever_live_p (regno) && !call_used_regs[regno]) + if (!fixed_regs[regno] + && df_regs_ever_live_p (regno) + && !call_used_or_fixed_reg_p (regno)) { insn = emit_insn (gen_movsi_push (gen_rtx_REG (Pmode, regno))); RTX_FRAME_RELATED_P (insn) = 1; @@ -349,7 +351,7 @@ moxie_expand_epilogue (void) emit_insn (gen_addsi3 (reg, reg, hard_frame_pointer_rtx)); } for (regno = FIRST_PSEUDO_REGISTER; regno-- > 0; ) - if (!fixed_regs[regno] && !call_used_regs[regno] + if (!fixed_regs[regno] && !call_used_or_fixed_reg_p (regno) && df_regs_ever_live_p (regno)) { rtx preg = gen_rtx_REG (Pmode, regno); |