entered into RCS
authorJim Wilson <wilson@gcc.gnu.org>
Wed, 20 May 1992 00:27:34 +0000 (17:27 -0700)
committerJim Wilson <wilson@gcc.gnu.org>
Wed, 20 May 1992 00:27:34 +0000 (17:27 -0700)
From-SVN: r1024

gcc/config/m68k/m68k.md

index 017f47eb1a5e6a1ffe629bbb03b2f9b8a3fa9d77..49da7f1cbf9a6e430caca4348af555dc3a2e06e1 100644 (file)
 \f
 ;; Patterns to recognize zero-extend insns produced by the combiner.
 ;; We don't allow both operands in memory, because of aliasing problems.
+;; Explicitly disallow two memory operands via the condition since reloading
+;; of this case will result in worse code than the uncombined patterns.
 
 (define_insn ""
   [(set (match_operand:SI 0 "general_operand" "=do<>,d<")
        (zero_extend:SI (match_operand:HI 1 "nonimmediate_operand" "r,m")))]
-  ""
+  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM"
   "*
 {
   if (DATA_REG_P (operands[0]))
 (define_insn ""
   [(set (match_operand:HI 0 "general_operand" "=do<>,d")
        (zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "d,m")))]
-  ""
+  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM"
   "*
 {
   if (DATA_REG_P (operands[0]))
 (define_insn ""
   [(set (match_operand:SI 0 "general_operand" "=do<>,d")
        (zero_extend:SI (match_operand:QI 1 "nonimmediate_operand" "d,m")))]
-  ""
+  "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM"
   "*
 {
   if (DATA_REG_P (operands[0]))