aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/reload1.c7
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5870287..9bd5f08 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Thu Nov 4 15:52:35 1999 Andrew Haley <aph@cygnus.com>
+
+ * reload1.c (reload_reg_free_for_value_p): Don't use a register
+ that is in reload_reg_used.
+
Tue Nov 9 16:43:00 1999 Nick Clifton <nickc@cygnus.com>
* config/arm/arm-protos.h: New file: Prototypes for functions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 3526ae9..09044c9 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -5307,6 +5307,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;