From f66eb2afb53c850946426f1435a7fbb4b7112f94 Mon Sep 17 00:00:00 2001 From: Dale Johannesen Date: Wed, 8 Jun 2005 03:22:15 +0000 Subject: [PATCH] i386.md (movqi_1): Fix case where source is memory and destination EDI. 2005-06-07 Dale Johannesen * config/i386/i386.md (movqi_1): Fix case where source is memory and destination EDI. From-SVN: r100740 --- gcc/ChangeLog | 5 +++++ gcc/config/i386/i386.md | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 18d1845fb26..1c446b209b4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-06-07 Dale Johannesen + + * config/i386/i386.md (movqi_1): Fix case where source + is memory and destination EDI. + 2005-06-08 Kazu Hirata * config/c4x/c4x.h (PREDICATE_CODES): Remove mem_operand. diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 39ed2b83f86..000a18e8092 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -1455,7 +1455,7 @@ ;; partial register stall can be caused there. Then we use movzx. (define_insn "*movqi_1" [(set (match_operand:QI 0 "nonimmediate_operand" "=q,q ,q ,r,r ,?r,m") - (match_operand:QI 1 "general_operand" " q,qn,qm,q,rn,qm,qn"))] + (match_operand:QI 1 "general_operand" " q,qn,qm,q,rn,m ,qn"))] "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM" { switch (get_attr_type (insn)) @@ -1471,7 +1471,9 @@ } } [(set (attr "type") - (cond [(ne (symbol_ref "optimize_size") (const_int 0)) + (cond [(eq_attr "alternative" "5") + (const_string "imovx") + (ne (symbol_ref "optimize_size") (const_int 0)) (const_string "imov") (and (eq_attr "alternative" "3") (ior (eq (symbol_ref "TARGET_PARTIAL_REG_STALL") @@ -1479,7 +1481,7 @@ (eq (symbol_ref "TARGET_QIMODE_MATH") (const_int 0)))) (const_string "imov") - (eq_attr "alternative" "3,5") + (eq_attr "alternative" "3") (const_string "imovx") (and (ne (symbol_ref "TARGET_MOVX") (const_int 0)) -- 2.30.2