OSDN Git Service

PR target/4792
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Mar 2002 22:02:06 +0000 (22:02 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Mar 2002 22:02:06 +0000 (22:02 +0000)
* config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
to if_then_else.
(movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
* config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
instead of insn_extract.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51090 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/arc/arc.c
gcc/config/arc/arc.md

index 131cd9e..b38eaca 100644 (file)
@@ -1,7 +1,16 @@
 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
 
+       PR target/4792
+       * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
+       to if_then_else.
+       (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
+       * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
+       instead of insn_extract.
+
+2002-03-20  Jakub Jelinek  <jakub@redhat.com>
+
        PR bootstrap/4192
-       * config/fr30/fr30.md (jump): Comment out clobber of fixed register.
+       * config/fr30/fr30.md (jump): Remove clobber of fixed register.
 
        * genemit.c (output_added_clobbers_hard_reg_p): Only output return
        stmt if some case has been output.
index d3adb74..663f50b 100644 (file)
@@ -2190,7 +2190,7 @@ arc_final_prescan_insn (insn, opvec, noperands)
              if (!this_insn)
                {
                  /* Oh dear! we ran off the end, give up.  */
-                 insn_extract (insn);
+                 extract_insn_cached (insn);
                  arc_ccfsm_state = 0;
                  arc_ccfsm_target_insn = NULL;
                  return;
@@ -2212,9 +2212,8 @@ arc_final_prescan_insn (insn, opvec, noperands)
 
       /* Restore recog_data.  Getting the attributes of other insns can
         destroy this array, but final.c assumes that it remains intact
-        across this call; since the insn has been recognized already we
-        call insn_extract direct.  */
-      insn_extract (insn);
+        across this call.  */
+      extract_insn_cached (insn);
     }
 }
 
index d10abe6..4df42cc 100644 (file)
 
 (define_expand "movsicc"
   [(set (match_operand:SI 0 "register_operand" "")
-       (if_then_else (match_operand 1 "comparison_operator" "")
-                     (match_operand:SI 2 "nonmemory_operand" "")
-                     (match_operand:SI 3 "register_operand" "")))]
+       (if_then_else:SI (match_operand 1 "comparison_operator" "")
+                        (match_operand:SI 2 "nonmemory_operand" "")
+                        (match_operand:SI 3 "register_operand" "")))]
   ""
   "
 {
 
 ;(define_expand "movdicc"
 ;  [(set (match_operand:DI 0 "register_operand" "")
-;      (if_then_else (match_operand 1 "comparison_operator" "")
-;                    (match_operand:DI 2 "nonmemory_operand" "")
-;                    (match_operand:DI 3 "register_operand" "")))]
+;      (if_then_else:DI (match_operand 1 "comparison_operator" "")
+;                       (match_operand:DI 2 "nonmemory_operand" "")
+;                       (match_operand:DI 3 "register_operand" "")))]
 ;  "0 /* ??? this would work better if we had cmpdi */"
 ;  "
 ;{
 ;
 ;  operands[1] = gen_rtx (code, VOIDmode, ccreg, const0_rtx);
 ;}")
-(define_expand "movsfcc"
 
+(define_expand "movsfcc"
   [(set (match_operand:SF 0 "register_operand" "")
-       (if_then_else (match_operand 1 "comparison_operator" "")
-                     (match_operand:SF 2 "nonmemory_operand" "")
-                     (match_operand:SF 3 "register_operand" "")))]
+       (if_then_else:SF (match_operand 1 "comparison_operator" "")
+                        (match_operand:SF 2 "nonmemory_operand" "")
+                        (match_operand:SF 3 "register_operand" "")))]
   ""
   "
 {
 
 ;(define_expand "movdfcc"
 ;  [(set (match_operand:DF 0 "register_operand" "")
-;      (if_then_else (match_operand 1 "comparison_operator" "")
-;                    (match_operand:DF 2 "nonmemory_operand" "")
-;                    (match_operand:DF 3 "register_operand" "")))]
+;      (if_then_else:DF (match_operand 1 "comparison_operator" "")
+;                       (match_operand:DF 2 "nonmemory_operand" "")
+;                       (match_operand:DF 3 "register_operand" "")))]
 ;  "0 /* ??? can generate less efficient code if constants involved */"
 ;  "
 ;{
 
 (define_insn "*movsicc_insn"
   [(set (match_operand:SI 0 "register_operand" "=r")
-       (if_then_else (match_operand 1 "comparison_operator" "")
-                     (match_operand:SI 2 "nonmemory_operand" "rJi")
-                     (match_operand:SI 3 "register_operand" "0")))]
+       (if_then_else:SI (match_operand 1 "comparison_operator" "")
+                        (match_operand:SI 2 "nonmemory_operand" "rJi")
+                        (match_operand:SI 3 "register_operand" "0")))]
   ""
   "mov.%d1 %0,%S2"
   [(set_attr "type" "cmove")])
 ; ??? This doesn't properly handle constants.
 ;(define_insn "*movdicc_insn"
 ;  [(set (match_operand:DI 0 "register_operand" "=r,r")
-;      (if_then_else (match_operand 1 "comparison_operator" "")
-;                    (match_operand:DI 2 "nonmemory_operand" "r,Ji")
-;                    (match_operand:DI 3 "register_operand" "0,0")))]
+;      (if_then_else:DI (match_operand 1 "comparison_operator" "")
+;                       (match_operand:DI 2 "nonmemory_operand" "r,Ji")
+;                       (match_operand:DI 3 "register_operand" "0,0")))]
 ;  "0"
 ;  "*
 ;{
 
 (define_insn "*movsfcc_insn"
   [(set (match_operand:SF 0 "register_operand" "=r,r")
-       (if_then_else (match_operand 1 "comparison_operator" "")
-                     (match_operand:SF 2 "nonmemory_operand" "r,E")
-                     (match_operand:SF 3 "register_operand" "0,0")))]
+       (if_then_else:SF (match_operand 1 "comparison_operator" "")
+                        (match_operand:SF 2 "nonmemory_operand" "r,E")
+                        (match_operand:SF 3 "register_operand" "0,0")))]
   ""
   "@
    mov.%d1 %0,%2
 
 ;(define_insn "*movdfcc_insn"
 ;  [(set (match_operand:DF 0 "register_operand" "=r,r")
-;      (if_then_else (match_operand 1 "comparison_operator" "")
-;                    (match_operand:DF 2 "nonmemory_operand" "r,E")
-;                    (match_operand:DF 3 "register_operand" "0,0")))]
+;      (if_then_else:DF (match_operand 1 "comparison_operator" "")
+;                       (match_operand:DF 2 "nonmemory_operand" "r,E")
+;                       (match_operand:DF 3 "register_operand" "0,0")))]
 ;  "0"
 ;  "*
 ;{