summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/reload1.c
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2000-03-09 09:21:46 +0000
committerobrien <obrien@FreeBSD.org>2000-03-09 09:21:46 +0000
commit922a45e8c80d9c15acdba0eee3d03681cc7cb8d6 (patch)
tree31f5b0e5dc2259f95abab85fb366f1095a9be227 /contrib/gcc/reload1.c
parent19e1413b5dc797995ed95bbd6ca6e3035103d982 (diff)
downloadFreeBSD-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.c8
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. */
OpenPOWER on IntegriCloud