diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f8af6e71d2cb..2de7e1e449d2 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 d2149d7a222f..b80721d38cc0 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" "")