diff options
Diffstat (limited to 'gcc/lra-lives.c')
-rw-r--r-- | gcc/lra-lives.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/lra-lives.c b/gcc/lra-lives.c index 2e53f877460..ddc0a9bbcc5 100644 --- a/gcc/lra-lives.c +++ b/gcc/lra-lives.c @@ -598,7 +598,9 @@ static inline bool reg_early_clobber_p (const struct lra_insn_reg *reg, int n_alt) { return (reg->early_clobber - && (n_alt < 0 || TEST_BIT (reg->early_clobber_alts, n_alt))); + && (n_alt == LRA_UNKNOWN_ALT + || (n_alt != LRA_NON_CLOBBERED_ALT + && TEST_BIT (reg->early_clobber_alts, n_alt)))); } /* Process insns of the basic block BB to update pseudo live ranges, |