summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/caller-save.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/gcc/caller-save.c b/gcc/caller-save.c
index ed4c7819336..35dc355e4fc 100644
--- a/gcc/caller-save.c
+++ b/gcc/caller-save.c
@@ -223,11 +223,15 @@ init_caller_save ()
ok &= constrain_operands (reg_restore_code[i][j], 1);
}
- if (! ok && j == 1)
- {
- call_fixed_regs[i] = 1;
- SET_HARD_REG_BIT (call_fixed_reg_set, i);
- }
+ if (! ok)
+ {
+ regno_save_mode[i][j] = VOIDmode;
+ if (j == 1)
+ {
+ call_fixed_regs[i] = 1;
+ SET_HARD_REG_BIT (call_fixed_reg_set, i);
+ }
+ }
}
end_sequence ();