OSDN Git Service

* pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 17 Oct 1999 23:08:36 +0000 (23:08 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 17 Oct 1999 23:08:36 +0000 (23:08 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30060 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/pa/pa.c

index e4feac5..9749bb0 100644 (file)
@@ -1,5 +1,7 @@
 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
 
+       * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
+
        * haifa-sched.c (add_dependence): Only check/update the cache
        if it exists.
        (remove_dependence): Likewise.
index 6af0066..28fdf93 100644 (file)
@@ -332,6 +332,14 @@ move_operand (op, mode)
 
   op = XEXP (op, 0);
 
+  /* The LO_SUM part of a DLT reference is not considered a move_operand;
+     we must reject it here since it must be accepted by memory_address_p.  */
+  if (GET_CODE (op) == LO_SUM
+      && GET_CODE (XEXP (op, 0)) == REG
+      && REG_OK_FOR_BASE_P (XEXP (op, 0))
+      && GET_CODE (XEXP (op, 1)) == UNSPEC)
+    return 0;
+
   /* Since move_operand is only used for source operands, we can always
      allow scaled indexing!  */
   if (! TARGET_DISABLE_INDEXING