aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1997-05-12 17:37:24 -0600
committerJeff Law <law@gcc.gnu.org>1997-05-12 17:37:24 -0600
commit15f3d16acb57c2ea3a9b86829ba51bde1c88c197 (patch)
treeb6367180a04314567ff669b11f3279f5e2756db6 /gcc
parent6f54921d696748515d8875f6c58cb91118ccf9a1 (diff)
downloadgcc-15f3d16acb57c2ea3a9b86829ba51bde1c88c197.zip
gcc-15f3d16acb57c2ea3a9b86829ba51bde1c88c197.tar.gz
gcc-15f3d16acb57c2ea3a9b86829ba51bde1c88c197.tar.bz2
mips.c (move_operand): Accept any general operand after reload has started.
* mips.c (move_operand): Accept any general operand after reload has started. From-SVN: r14059
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/mips/mips.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 13bc57f..b97e0f6 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -715,8 +715,15 @@ move_operand (op, mode)
rtx op;
enum machine_mode mode;
{
+ /* Accept any general operand after reload has started; doing so
+ avoids losing if reload does an in-place replacement of a register
+ with a SYMBOL_REF or CONST. */
return (general_operand (op, mode)
- && ! (mips_split_addresses && mips_check_split (op, mode)));
+ && (! (mips_split_addresses && mips_check_split (op, mode))
+ || reload_in_progress
+ || reload_completed));
+
+
}
/* Return true if OPERAND is valid as a source operand for movdi.