aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Haley <aph@cygnus.com>1999-11-09 16:52:19 +0000
committerAndrew Haley <aph@gcc.gnu.org>1999-11-09 16:52:19 +0000
commitdc8842bf9bae4830019211c27eb57637983a0e9c (patch)
tree2100a11c21a71613032b423f4bc0b8987d5543af /gcc
parenteb3921e89a276761fba9562652ec83cbe03f25a9 (diff)
downloadgcc-dc8842bf9bae4830019211c27eb57637983a0e9c.zip
gcc-dc8842bf9bae4830019211c27eb57637983a0e9c.tar.gz
gcc-dc8842bf9bae4830019211c27eb57637983a0e9c.tar.bz2
reload1.c (reload_reg_free_for_value_p): Don't use a register that is in reload_reg_used.
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. From-SVN: r30461
Diffstat (limited to 'gcc')
-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;