This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
S/390: Fix ICE on s390x
- From: Ulrich Weigand <weigand at immd1 dot informatik dot uni-erlangen dot de>
- To: gcc-patches at gcc dot gnu dot org
- Date: Tue, 13 May 2003 16:42:57 +0200 (MET DST)
- Subject: S/390: Fix ICE on s390x
Hello,
this fixes a ICE on s390x when building current binutils; the problem
is caused by the "*iorsi3_oi" insn being marked commutative, although
the insn predicate makes asymmetric checks on the operands.
Bootstrapped/regtested on s390x-ibm-linux, applied to CVS head.
Bye,
Ulrich
ChangeLog:
* config/s390/s390.md ("*iordi3_oi"): Do not mark commutative.
("*iorsi3_oi"): Likewise.
Index: gcc/config/s390/s390.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/s390/s390.md,v
retrieving revision 1.54
diff -c -p -r1.54 s390.md
*** gcc/config/s390/s390.md 17 Apr 2003 09:59:32 -0000 1.54
--- gcc/config/s390/s390.md 13 May 2003 11:59:02 -0000
***************
*** 4612,4618 ****
(define_insn "*iordi3_oi"
[(set (match_operand:DI 0 "register_operand" "=d")
! (ior:DI (match_operand:DI 1 "nonimmediate_operand" "%0")
(match_operand:DI 2 "immediate_operand" "n")))
(clobber (reg:CC 33))]
"TARGET_64BIT && s390_single_hi (operands[2], DImode, 0) >= 0"
--- 4612,4618 ----
(define_insn "*iordi3_oi"
[(set (match_operand:DI 0 "register_operand" "=d")
! (ior:DI (match_operand:DI 1 "nonimmediate_operand" "0")
(match_operand:DI 2 "immediate_operand" "n")))
(clobber (reg:CC 33))]
"TARGET_64BIT && s390_single_hi (operands[2], DImode, 0) >= 0"
***************
*** 4692,4698 ****
(define_insn "*iorsi3_oi"
[(set (match_operand:SI 0 "register_operand" "=d")
! (ior:SI (match_operand:SI 1 "nonimmediate_operand" "%0")
(match_operand:SI 2 "immediate_operand" "n")))
(clobber (reg:CC 33))]
"TARGET_64BIT && s390_single_hi (operands[2], SImode, 0) >= 0"
--- 4692,4698 ----
(define_insn "*iorsi3_oi"
[(set (match_operand:SI 0 "register_operand" "=d")
! (ior:SI (match_operand:SI 1 "nonimmediate_operand" "0")
(match_operand:SI 2 "immediate_operand" "n")))
(clobber (reg:CC 33))]
"TARGET_64BIT && s390_single_hi (operands[2], SImode, 0) >= 0"
--
Dr. Ulrich Weigand
weigand@informatik.uni-erlangen.de