From bb84cb12fb14b902e94788f37fa967eef29584df Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Wed, 14 May 2003 16:41:16 +0000 Subject: [PATCH] rs6000.md (movsi_internal2): Use compare for self move record condition. * config/rs6000/rs6000.md (movsi_internal2): Use compare for self move record condition. (movdi_internal2): Same. From-SVN: r66806 --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/rs6000.md | 27 ++++++++++++++------------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f8af6e71d2c..2de7e1e449d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2003-05-14 David Edelsohn + + * config/rs6000/rs6000.md (movsi_internal2): Use compare for self + move record condition. + (movdi_internal2): Same. + 2003-05-14 Nathan Sidwell * gcov-io.h (gcov_write_bytes, gcov_read_bytes): Remove here. diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index d2149d7a222..b80721d38cc 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -7709,17 +7709,18 @@ }") (define_insn "*movsi_internal2" - [(set (match_operand:CC 2 "cc_reg_operand" "=x,?y") - (compare:CC (match_operand:SI 1 "gpc_reg_operand" "r,r") + [(set (match_operand:CC 2 "cc_reg_operand" "=y,x,?y") + (compare:CC (match_operand:SI 1 "gpc_reg_operand" "0,r,r") (const_int 0))) - (set (match_operand:SI 0 "gpc_reg_operand" "=r,r") (match_dup 1))] + (set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r") (match_dup 1))] "! TARGET_POWERPC64" "@ + {cmpi|cmpwi} %2,%0,0 mr. %0,%1 #" - [(set_attr "type" "compare") - (set_attr "length" "4,8")]) - + [(set_attr "type" "cmp,compare,cmp") + (set_attr "length" "4,4,8")]) + (define_split [(set (match_operand:CC 2 "cc_reg_not_cr0_operand" "") (compare:CC (match_operand:SI 1 "gpc_reg_operand" "") @@ -7731,7 +7732,7 @@ (compare:CC (match_dup 0) (const_int 0)))] "") - + (define_expand "movhi" [(set (match_operand:HI 0 "general_operand" "") (match_operand:HI 1 "any_operand" ""))] @@ -8621,18 +8622,18 @@ FAIL; }") -;; Split a load of a large constant into the appropriate five-instruction (define_insn "*movdi_internal2" - [(set (match_operand:CC 2 "cc_reg_operand" "=x,?y") - (compare:CC (match_operand:DI 1 "gpc_reg_operand" "r,r") + [(set (match_operand:CC 2 "cc_reg_operand" "=y,x,?y") + (compare:CC (match_operand:DI 1 "gpc_reg_operand" "0,r,r") (const_int 0))) - (set (match_operand:DI 0 "gpc_reg_operand" "=r,r") (match_dup 1))] + (set (match_operand:DI 0 "gpc_reg_operand" "=r,r,r") (match_dup 1))] "TARGET_POWERPC64" "@ + cmpdi %2,%0,0 mr. %0,%1 #" - [(set_attr "type" "compare") - (set_attr "length" "4,8")]) + [(set_attr "type" "cmp,compare,cmp") + (set_attr "length" "4,4,8")]) (define_split [(set (match_operand:CC 2 "cc_reg_not_cr0_operand" "") -- 2.30.2