* config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
authorm.hayes <m.hayes@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 17 Dec 1999 22:43:43 +0000 (22:43 +0000)
committerm.hayes <m.hayes@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 17 Dec 1999 22:43:43 +0000 (22:43 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31000 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/c4x/c4x.md

index 923a839..a94531c 100644 (file)
@@ -1,3 +1,7 @@
+1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+       * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
+
 1999-12-17 13:21 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
 
        * fixtests.c (is_cxx_header): New fn, split out of
index 238a8e6..4f6a955 100644 (file)
  "#"
   [(set_attr "type" "multi")])
 
+
 ; This can generate invalid stack slot displacements
 (define_split
  [(set (match_operand:QF 0 "reg_operand" "=f")
    (set (match_dup 0)
         (plus:QI (match_dup 0)
                  (const_int -1)))]
-  "reload_completed && (TARGET_DB && (find_reg_note (insn, REG_NONNEG, 0)
-                       || TARGET_LOOP_UNSIGNED))"
+  "reload_completed && TARGET_DB && TARGET_LOOP_UNSIGNED"
   "dbu%#\\t%0,%l1"
   [(set_attr "type" "db")])
 
         (plus:QI (match_dup 0)
                  (const_int -1)))
    (clobber (reg:CC_NOOV 21))]
-  "reload_completed && (TARGET_DB && (find_reg_note (insn, REG_NONNEG, 0)
-                       || TARGET_LOOP_UNSIGNED))"
+  "reload_completed && TARGET_DB && TARGET_LOOP_UNSIGNED"
   [(parallel [(set (pc)
                   (if_then_else (ge (plus:QI (match_dup 0)
                                              (const_int -1))
 ;
 (define_insn "rptb_top"
   [(use (label_ref (match_operand 0 "" "")))
-   (use (label_ref (match_operand 1 "" "")))]
+   (use (label_ref (match_operand 1 "" "")))
+   (clobber (reg:QI 25))
+   (clobber (reg:QI 26))]
   ""
   "*
    return ! final_sequence && c4x_rptb_rpts_p (insn, operands[0])
 
 (define_insn "rpts_top"
   [(unspec [(use (label_ref (match_operand 0 "" "")))
-            (use (label_ref (match_operand 1 "" "")))] 2)]
+            (use (label_ref (match_operand 1 "" "")))] 2)
+   (clobber (reg:QI 25))
+   (clobber (reg:QI 26))]
   ""
   "*
    return ! final_sequence && c4x_rptb_rpts_p (insn, operands[0])
   ""
   "if (INTVAL (operands[3]) > 1 || ! TARGET_RPTB)
      FAIL;
-   emit_jump_insn (gen_rptb_init (operands[0]));
+   emit_insn (gen_rptb_init (operands[0]));
    DONE;
   ")
 
 ;
 ; Which moves the bCC condition outside the inner loop for free.
 ;
-
 (define_peephole
   [(set (pc) (if_then_else (match_operator 3 "comparison_operator"
                            [(reg:CC 21) (const_int 0)])
             (pc)))
      (set (match_dup 0)
           (plus:QI (match_dup 0)
-                   (const_int -1)))])]
+                   (const_int -1)))
+     (clobber (reg:CC_NOOV 21))])]
   "! c4x_label_conflict (insn, operands[2], operands[1])"
   "db%I3\\t%0,%l1\\n\\tb%3\\t%l2"
   [(set_attr "type" "multi")])
 ;
 ; Peepholes to convert 'call label; rets' into jump label
 ;
+
 (define_peephole
   [(parallel [(call (mem:QI (match_operand:QI 0 "call_address_operand" ""))
                     (match_operand:QI 1 "general_operand" ""))