aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMichael Meissner <meissner@gcc.gnu.org>1995-12-02 12:59:26 +0000
committerMichael Meissner <meissner@gcc.gnu.org>1995-12-02 12:59:26 +0000
commitbeaec4799c233f4d36718c09ba35721ce9a141f3 (patch)
treeb0b41154d050e51274c7e1b24e0a05c7bb39f8ad /gcc
parent9fa9626bb83aa3b77b5c28da244124d0238e8cc0 (diff)
downloadgcc-beaec4799c233f4d36718c09ba35721ce9a141f3.zip
gcc-beaec4799c233f4d36718c09ba35721ce9a141f3.tar.gz
gcc-beaec4799c233f4d36718c09ba35721ce9a141f3.tar.bz2
Do not split large constants, let define_split do it later if needed
From-SVN: r10662
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/rs6000/rs6000.md21
1 files changed, 5 insertions, 16 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 3a46ecc..d306e8d 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.