This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
ia64 bootstrap fix
- To: gcc-patches at gcc dot gnu dot org
- Subject: ia64 bootstrap fix
- From: Richard Henderson <rth at redhat dot com>
- Date: Tue, 28 Aug 2001 14:52:06 -0700
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))