]> gcc.gnu.org Git - gcc.git/commitdiff
* sh.md (movqi_i+1): New peephole.
authorJ"orn Rennecke <amylaar@cygnus.co.uk>
Fri, 23 Jan 1998 21:27:50 +0000 (21:27 +0000)
committerJeff Law <law@gcc.gnu.org>
Fri, 23 Jan 1998 21:27:50 +0000 (14:27 -0700)
From-SVN: r17463

gcc/ChangeLog
gcc/config/sh/sh.md

index b38183e5ec7ab707b2bc2e44ce422abc1d66b16d..35f953494d8800480a67595a9a427d152de0ca9e 100644 (file)
@@ -1,3 +1,7 @@
+Fri Jan 23 23:28:59 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * sh.md (movqi_i+1): New peephole.
+
 Fri Jan 23 15:39:42 1998  Jim Wilson  <wilson@cygnus.com>
 
        * Makefile.in: Remove remaining bytecode stuff.
index 35432aa665d682c13075bc06b25df372d621cfd2..3b367d8f6133c5ef1cf7461c7cc0803392b945d4 100644 (file)
 ;; align them when relaxing.
 
 ;; Loads have a latency of two.
-;; However, call insn can have ;; a delay slot, so that we want one more
+;; However, call insns can have a delay slot, so that we want one more
 ;; insn to be scheduled between the load of the function address and the call.
 ;; This is equivalent to a latency of three.
 ;; We cannot use a conflict list for this, because we need to distinguish
        lds     %1,%0"
  [(set_attr "type" "move,load,store,move,move,move")])
 
+;; For Big-endian, reload now sometimes generates something like
+;; (insn 2107 2104 2099 (set (reg:QI 3 r3)
+;;         (subreg:QI (mem:SI (reg:SI 0 r0)) 0)) -1 (nil)
+;;     (nil))
+;; To avoid clutter in the movqi pattern, we express this as a peephole.
+
+(define_peephole
+  [(set (match_operand:QI 0 "arith_reg_operand" "r")
+       (subreg:QI (match_operand:SI 1 "memory_operand"  "m") 0))]
+  ""
+  "mov.l       %1,%0")
+
 (define_expand "movqi"
   [(set (match_operand:QI 0 "general_operand" "")
        (match_operand:QI 1 "general_operand"  ""))]
This page took 0.082348 seconds and 5 git commands to generate.