Call force_operand if X does not satisfy general_operand
authorNick Clifton <nickc@cygnus.com>
Mon, 2 Aug 1999 08:40:22 +0000 (08:40 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Mon, 2 Aug 1999 08:40:22 +0000 (08:40 +0000)
From-SVN: r28399

gcc/ChangeLog
gcc/explow.c

index 445b9f662301ea1fd5b3288a5c46aa52eb90343c..d8aa90b5c8dd4efcb3325e7f49ac8a430a947f12 100644 (file)
@@ -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
index 92f99ad65f27bbc7db2381edeb0041f7e9782401..ab0495190c7cd99df9b084bf20a1e5563116203d 100644 (file)
@@ -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