]> gcc.gnu.org Git - gcc.git/commitdiff
c4x.c (c4x_legitimate_address_p): Invalidate direct memory references if TARGET_EXPOS...
authorMichael Hayes <m.hayes@elec.canterbury.ac.nz>
Mon, 26 Jan 2004 00:40:05 +0000 (00:40 +0000)
committerMichael Hayes <m.hayes@gcc.gnu.org>
Mon, 26 Jan 2004 00:40:05 +0000 (00:40 +0000)
* config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
memory references if TARGET_EXPOSE_LDP nonzero.

From-SVN: r76611

gcc/ChangeLog
gcc/config/c4x/c4x.c

index 6a4dac9dc21227056232a95ba36a607b004b48a7..94892213636d1cb02c54e6e1225ca6fc545bc8c2 100644 (file)
@@ -1,3 +1,8 @@
+2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
+       memory references if TARGET_EXPOSE_LDP nonzero.
+
 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
        * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
index db350cee08091081ecfd58050154618e0b4f5a35..9a6b88832e10c20c71b361c7cf6855c365cd84ce 100644 (file)
@@ -1236,10 +1236,11 @@ c4x_emit_move_sequence (rtx *operands, enum machine_mode mode)
       && dp_reg_operand (XEXP (op1, 0), mode))
     {
       /* expand_increment will sometimes create a LO_SUM immediate
-        address.  */
+        address.  Undo this sillyness.  */
       op1 = XEXP (op1, 1);
     }
-  else if (symbolic_address_operand (op1, mode))
+  
+  if (symbolic_address_operand (op1, mode))
     {
       if (TARGET_LOAD_ADDRESS)
        {
@@ -3267,7 +3268,8 @@ src_operand (rtx op, enum machine_mode mode)
       && ((GET_CODE (XEXP (op, 0)) == SYMBOL_REF
           || GET_CODE (XEXP (op, 0)) == LABEL_REF
           || GET_CODE (XEXP (op, 0)) == CONST)))
-    return ! TARGET_LOAD_DIRECT_MEMS && GET_MODE (op) == mode;
+    return !TARGET_EXPOSE_LDP && 
+      ! TARGET_LOAD_DIRECT_MEMS && GET_MODE (op) == mode;
 
   return general_operand (op, mode);
 }
This page took 0.067824 seconds and 5 git commands to generate.