S/390: Fix ICE on s390x

Ulrich Weigand weigand@immd1.informatik.uni-erlangen.de
Tue May 13 14:43:00 GMT 2003


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



More information about the Gcc-patches mailing list