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]
Other format: [Raw text]

S/390: Fix cmpint_di insn


Hello,

this fixes the "cmpintdi" insn which was totally broken due to
incorrect instruction length assumptions.

Bootstrapped/regtested on s390-ibm-linux and s390x-ibm-linux.
Applied to CVS head and 3.3 branch.

Bye,
Ulrich

ChangeLog:

	* config/s390/s390.md ("cmpint_di"): Fix incorrect instruction lengths.

Index: gcc/config/s390/s390.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/s390/s390.md,v
retrieving revision 1.84
diff -c -p -r1.84 s390.md
*** gcc/config/s390/s390.md	30 Oct 2003 14:11:34 -0000	1.84
--- gcc/config/s390/s390.md	28 Nov 2003 21:09:38 -0000
***************
*** 2155,2167 ****
    "TARGET_64BIT"
  {
     output_asm_insn ("lghi\t%0,1", operands);
!    output_asm_insn ("jh\t.+12", operands);
!    output_asm_insn ("jl\t.+6", operands);
     output_asm_insn ("sgr\t%0,%0", operands);
     return "lcgr\t%0,%0";
  }
    [(set_attr "op_type" "NN")
!    (set_attr "length"  "22")
     (set_attr "type"    "other")])
  
  
--- 2157,2169 ----
    "TARGET_64BIT"
  {
     output_asm_insn ("lghi\t%0,1", operands);
!    output_asm_insn ("jh\t.+16", operands);
!    output_asm_insn ("jl\t.+8", operands);
     output_asm_insn ("sgr\t%0,%0", operands);
     return "lcgr\t%0,%0";
  }
    [(set_attr "op_type" "NN")
!    (set_attr "length"  "20")
     (set_attr "type"    "other")])
  
  
-- 
  Dr. Ulrich Weigand
  weigand@informatik.uni-erlangen.de


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