]> gcc.gnu.org Git - gcc.git/commitdiff
Do not split large constants, let define_split do it later if needed
authorMichael Meissner <meissner@gcc.gnu.org>
Sat, 2 Dec 1995 12:59:26 +0000 (12:59 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Sat, 2 Dec 1995 12:59:26 +0000 (12:59 +0000)
From-SVN: r10662

gcc/config/rs6000/rs6000.md

index 3a46ecc915ea5c99362bb022808c7ca516d395f5..d306e8d8e9a84b7d5982aa1a03e68eb3343baf4b 100644 (file)
        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)"
   "@
    {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.
This page took 0.070657 seconds and 5 git commands to generate.