aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNick Clifton <nickc@cygnus.com>1999-08-02 08:40:22 +0000
committerNick Clifton <nickc@gcc.gnu.org>1999-08-02 08:40:22 +0000
commit96843fa263b57c85487681faaa36181db6617f4c (patch)
tree176a38b50002370c7e46319703a1a38f0ef05434 /gcc
parent720988020dba9f4ae0056b3d7119a69059fdb1f0 (diff)
downloadgcc-96843fa263b57c85487681faaa36181db6617f4c.zip
gcc-96843fa263b57c85487681faaa36181db6617f4c.tar.gz
gcc-96843fa263b57c85487681faaa36181db6617f4c.tar.bz2
Call force_operand if X does not satisfy general_operand
From-SVN: r28399
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/explow.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 445b9f6..d8aa90b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Mon Aug 2 09:38:10 1999 Nick Clifton <nickc@cygnus.com>
+
+ * explow.c (force_reg): Call force_operand if X does not
+ satisfy general_operand.
+
Mon Aug 2 01:34:22 1999 Jeffrey A Law (law@cygnus.com)
* fix-header.c (main): When testing for CONTINUED, use string
diff --git a/gcc/explow.c b/gcc/explow.c
index 92f99ad..ab04951 100644
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -730,7 +730,12 @@ force_reg (mode, x)
if (GET_CODE (x) == REG)
return x;
+
temp = gen_reg_rtx (mode);
+
+ if (! general_operand (x, mode))
+ x = force_operand (x, NULL_RTX);
+
insn = emit_move_insn (temp, x);
/* Let optimizers know that TEMP's value never changes