diff options
author | obrien <obrien@FreeBSD.org> | 2000-03-09 09:21:46 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2000-03-09 09:21:46 +0000 |
commit | 922a45e8c80d9c15acdba0eee3d03681cc7cb8d6 (patch) | |
tree | 31f5b0e5dc2259f95abab85fb366f1095a9be227 /contrib/gcc/reload1.c | |
parent | 19e1413b5dc797995ed95bbd6ca6e3035103d982 (diff) | |
download | FreeBSD-src-922a45e8c80d9c15acdba0eee3d03681cc7cb8d6.zip FreeBSD-src-922a45e8c80d9c15acdba0eee3d03681cc7cb8d6.tar.gz |
Bring in bug fixes from the GCC anoncvs server's "gcc-2_95-branch"
branch as of March 7th, 2000.
Diffstat (limited to 'contrib/gcc/reload1.c')
-rw-r--r-- | contrib/gcc/reload1.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/contrib/gcc/reload1.c b/contrib/gcc/reload1.c index 0ec2a92..d9245b0 100644 --- a/contrib/gcc/reload1.c +++ b/contrib/gcc/reload1.c @@ -5204,6 +5204,13 @@ reload_reg_free_for_value_p (regno, opnum, type, value, out, reloadnum, int i; int copy = 0; + /* ??? reload_reg_used is abused to hold the registers that are not + available as spill registers, including hard registers that are + earlyclobbered in asms. As a temporary measure, reject anything + in reload_reg_used. */ + if (TEST_HARD_REG_BIT (reload_reg_used, regno)) + return 0; + if (out == const0_rtx) { copy = 1; @@ -6330,6 +6337,7 @@ choose_reload_regs (chain) clear_reload_reg_in_use (regno, reload_opnum[j], reload_when_needed[j], reload_mode[j]); reload_reg_rtx[j] = 0; + reload_spill_index[j] = -1; } /* Record which pseudos and which spill regs have output reloads. */ |