pa.md (icacheflush): Reorder operands to make match_scratch operand last.
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Sat, 6 Mar 2004 19:27:52 +0000 (19:27 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Sat, 6 Mar 2004 19:27:52 +0000 (19:27 +0000)
* pa.md (icacheflush): Reorder operands to make match_scratch operand
last.
* pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
from calls to gen_icacheflush.

From-SVN: r79029

gcc/ChangeLog
gcc/config/pa/pa.h
gcc/config/pa/pa.md

index 774621e66c8d3fe7ad05f8cb166eca24ffb1512f..ac59b7c4fbfeefd76f0d654dabc38391ad38e6dd 100644 (file)
@@ -1,3 +1,10 @@
+2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa.md (icacheflush): Reorder operands to make match_scratch operand
+       last.
+       * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
+       from calls to gen_icacheflush.
+
 2004-03-06  Richard Henderson  <rth@redhat.com>
 
        * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
index e8ba74dba687437996e0b44aee2e28b87070f503..200936e8e49b37347df8c64c1a316d7de6ee3fdf 100644 (file)
@@ -1095,7 +1095,6 @@ extern int may_call_alloca;
       emit_move_insn (line_length, GEN_INT (MIN_CACHELINE_SIZE));      \
       emit_insn (gen_dcacheflush (start_addr, end_addr, line_length)); \
       emit_insn (gen_icacheflush (start_addr, end_addr, line_length,   \
-                                 gen_reg_rtx (Pmode),                  \
                                  gen_reg_rtx (Pmode),                  \
                                  gen_reg_rtx (Pmode)));                \
     }                                                                  \
@@ -1128,7 +1127,6 @@ extern int may_call_alloca;
       emit_move_insn (line_length, GEN_INT (MIN_CACHELINE_SIZE));      \
       emit_insn (gen_dcacheflush (start_addr, end_addr, line_length)); \
       emit_insn (gen_icacheflush (start_addr, end_addr, line_length,   \
-                                 gen_reg_rtx (Pmode),                  \
                                  gen_reg_rtx (Pmode),                  \
                                  gen_reg_rtx (Pmode)));                \
     }                                                                  \
index 4f060e3191edbfed9f7ef56c1aba308660156fcb..f13a7a84a88698677103dfa37096cfb96d9d2aec 100644 (file)
@@ -8858,8 +8858,7 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
 ;; Operand 0 contains the start address.
 ;; Operand 1 contains the end address.
 ;; Operand 2 contains the line length to use.
-;; Operand 3 contains the start address (clobbered).
-;; Operands 4 and 5 (icacheflush) are clobbered scratch registers.
+;; Operands 3 and 4 (icacheflush) are clobbered scratch registers.
 (define_insn "dcacheflush"
   [(const_int 1)
    (unspec_volatile [(mem:BLK (scratch))] 0)
@@ -8884,16 +8883,16 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
    (use (match_operand 0 "pmode_register_operand" "r"))
    (use (match_operand 1 "pmode_register_operand" "r"))
    (use (match_operand 2 "pmode_register_operand" "r"))
-   (clobber (match_scratch 3 "=&0"))
+   (clobber (match_operand 3 "pmode_register_operand" "=&r"))
    (clobber (match_operand 4 "pmode_register_operand" "=&r"))
-   (clobber (match_operand 5 "pmode_register_operand" "=&r"))]
+   (clobber (match_scratch 5 "=&0"))]
   ""
   "*
 {
   if (TARGET_64BIT)
-    return \"mfsp %%sr0,%5\;ldsid (%3),%4\;mtsp %4,%%sr0\;cmpb,*<<=,n %3,%1,.\;fic,m %2(%%sr0,%3)\;sync\;mtsp %5,%%sr0\;nop\;nop\;nop\;nop\;nop\;nop\";
+    return \"mfsp %%sr0,%4\;ldsid (%5),%3\;mtsp %3,%%sr0\;cmpb,*<<=,n %5,%1,.\;fic,m %2(%%sr0,%5)\;sync\;mtsp %4,%%sr0\;nop\;nop\;nop\;nop\;nop\;nop\";
   else
-    return \"mfsp %%sr0,%5\;ldsid (%3),%4\;mtsp %4,%%sr0\;cmpb,<<=,n %3,%1,.\;fic,m %2(%%sr0,%3)\;sync\;mtsp %5,%%sr0\;nop\;nop\;nop\;nop\;nop\;nop\";
+    return \"mfsp %%sr0,%4\;ldsid (%5),%3\;mtsp %3,%%sr0\;cmpb,<<=,n %5,%1,.\;fic,m %2(%%sr0,%5)\;sync\;mtsp %4,%%sr0\;nop\;nop\;nop\;nop\;nop\;nop\";
 }"
   [(set_attr "type" "multi")
    (set_attr "length" "52")])