From beaec4799c233f4d36718c09ba35721ce9a141f3 Mon Sep 17 00:00:00 2001 From: Michael Meissner Date: Sat, 2 Dec 1995 12:59:26 +0000 Subject: [PATCH] Do not split large constants, let define_split do it later if needed From-SVN: r10662 --- gcc/config/rs6000/rs6000.md | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 3a46ecc915e..d306e8d8e9a 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -4045,24 +4045,11 @@ operands[1] = change_address (operands[1], SImode, XEXP (operands[1], 0)); } - - if (GET_CODE (operands[1]) == CONST_INT - && (unsigned) (INTVAL (operands[1]) + 0x8000) >= 0x10000 - && (INTVAL (operands[1]) & 0xffff) != 0) - { - emit_move_insn (operands[0], - gen_rtx (CONST_INT, VOIDmode, - INTVAL (operands[1]) & 0xffff0000)); - emit_insn (gen_iorsi3 (operands[0], operands[0], - gen_rtx (CONST_INT, VOIDmode, - INTVAL (operands[1]) & 0xffff))); - DONE; - } }") (define_insn "" - [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,r,r,m,r,r,r,r,*q,*c*l,*h") - (match_operand:SI 1 "input_operand" "r,S,T,m,r,I,J,R,*h,r,r,0"))] + [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,r,r,m,r,r,r,r,r,*q,*c*l,*h") + (match_operand:SI 1 "input_operand" "r,S,T,m,r,I,J,n,R,*h,r,r,0"))] "gpc_reg_operand (operands[0], SImode) || gpc_reg_operand (operands[1], SImode)" "@ @@ -4073,12 +4060,14 @@ {st%U0%X0|stw%U0%X0} %1,%0 {lil|li} %0,%1 {liu|lis} %0,%u1 + # {cal|la} %0,%1(%*) mf%1 %0 mt%0 %1 mt%0 %1 cror 0,0,0" - [(set_attr "type" "*,load,load,load,*,*,*,*,*,*,mtjmpr,*")]) + [(set_attr "type" "*,load,load,load,*,*,*,*,*,*,*,mtjmpr,*") + (set_attr "length" "4,4,4,4,4,4,4,8,4,4,4,4,4")]) ;; Split a load of a large constant into the appropriate two-insn ;; sequence. -- 2.30.2