gcse.c (compute_ld_motion_mems): ASM outputs aren't moveable.
authorAlexandre Oliva <aoliva@redhat.com>
Sun, 15 Apr 2001 16:50:51 +0000 (16:50 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Sun, 15 Apr 2001 16:50:51 +0000 (16:50 +0000)
* gcse.c (compute_ld_motion_mems): ASM outputs aren't moveable.
(find_moveable_store): Likewise.

From-SVN: r41363

gcc/ChangeLog
gcc/gcse.c

index 1057c8b0d54ba08d59b358a55cdf3dbdb712a077..7fd793704a8b4b6c61df862c184ef35f50b15c99 100644 (file)
@@ -1,3 +1,8 @@
+2001-04-15  Alexandre Oliva  <aoliva@redhat.com>
+
+       * gcse.c (compute_ld_motion_mems): ASM outputs aren't moveable.
+       (find_moveable_store): Likewise.
+
 2001-04-15  Jim Wilson  <wilson@redhat.com>
 
        * function.c (expand_function_end): Handle PARALLEL real_decl_rtl.
index 402e85e787efb22727c3852b7f10b1453794bbd9..56117f9a170eb56dad493367045d048cdb6ba0c5 100644 (file)
@@ -6264,7 +6264,8 @@ compute_ld_motion_mems ()
                    {
                      ptr = ldst_entry (dest);
                      
-                     if (GET_CODE (src) != MEM)
+                     if (GET_CODE (src) != MEM
+                         && GET_CODE (src) != ASM_OPERANDS)
                        ptr->stores = alloc_INSN_LIST (insn, ptr->stores);
                      else
                        ptr->invalid = 1;
@@ -6521,7 +6522,8 @@ find_moveable_store (insn)
   struct ls_expr * ptr;
   rtx dest = PATTERN (insn);
 
-  if (GET_CODE (dest) != SET)
+  if (GET_CODE (dest) != SET
+      || GET_CODE (SET_SRC (dest)) == ASM_OPERANDS)
     return;
 
   dest = SET_DEST (dest);