This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

ia64 bootstrap fix


Stage1 expmed.c has an insn that gets split from

(insn 4199 4198 4200 (set (reg:BI 262 p6 [1183])
        (ior:BI (not:BI (reg:BI 34 r41 [2283]))
            (reg:BI 262 p6 [1183]))) 53 {*iorcmbi3} (insn_list 4198 (nil))
    (nil))

to

(insn 4199 4198 4200 (cond_exec (eq (reg:BI 34 r41 [2283])
            (const_int 0 [0x0]))
        (set (reg:BI 262 p6 [1183])
            (ior:BI (eq:BI (const_int 0 [0x0])
                    (const_int 0 [0x0]))
                (reg:BI 262 p6 [1183])))) -1
    (insn_list 4198 (insn_list 4198 (nil)))
    (expr_list:REG_DEAD (reg:BI 34 r41 [2283])
        (nil)))

Note the general register in the cond_exec condition.

Oops.  Brown paper bag time.


r~


        * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
        (one_cmplbi2 splitter): Remove redundant test.

Index: ia64.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/ia64/ia64.md,v
retrieving revision 1.75
diff -c -p -d -u -r1.75 ia64.md
--- ia64.md	2001/08/22 08:31:43	1.75
+++ ia64.md	2001/08/28 21:45:27
@@ -1218,11 +1218,11 @@
   ""
   "@
    #
-   tbit.z.and.orcm %0, %I0 = %2, 0
+   tbit.z.and.orcm %0, %I0 = %1, 0
    andcm %0 = %2, %1"
   "reload_completed
    && GET_CODE (operands[0]) == REG && PR_REGNO_P (REGNO (operands[0]))
-   && GET_CODE (operands[2]) == REG && PR_REGNO_P (REGNO (operands[2]))"
+   && GET_CODE (operands[1]) == REG && PR_REGNO_P (REGNO (operands[1]))"
   [(cond_exec (ne (match_dup 1) (const_int 0))
      (set (match_dup 0) (and:BI (ne:BI (const_int 0) (const_int 0))
 				(match_dup 0))))]
@@ -1254,10 +1254,10 @@
   ""
   "@
    #
-   tbit.z.or.andcm %0, %I0 = %2, 0"
+   tbit.z.or.andcm %0, %I0 = %1, 0"
   "reload_completed
    && GET_CODE (operands[0]) == REG && PR_REGNO_P (REGNO (operands[0]))
-   && GET_CODE (operands[2]) == REG && PR_REGNO_P (REGNO (operands[2]))"
+   && GET_CODE (operands[1]) == REG && PR_REGNO_P (REGNO (operands[1]))"
   [(cond_exec (eq (match_dup 1) (const_int 0))
      (set (match_dup 0) (ior:BI (eq:BI (const_int 0) (const_int 0))
 				(match_dup 0))))]
@@ -1282,7 +1282,6 @@
    (clobber (match_scratch:BI 2 ""))]
   "reload_completed
    && GET_CODE (operands[0]) == REG && PR_REGNO_P (REGNO (operands[0]))
-   && GET_CODE (operands[1]) == REG && PR_REGNO_P (REGNO (operands[1]))
    && rtx_equal_p (operands[0], operands[1])"
   [(set (match_dup 4) (match_dup 3))
    (set (match_dup 0) (const_int 1))


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]