h8300.md: Remove the memory alternative and correct the insn lengths in the templates...
authorWill Cohen <wcohen@redhat.com>
Sun, 8 Oct 2000 13:10:20 +0000 (13:10 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Sun, 8 Oct 2000 13:10:20 +0000 (13:10 +0000)
2000-10-07  Will Cohen  <wcohen@redhat.com>, Kazu Hirata  <kazu@hxi.com>

* config/h8300/h8300.md: Remove the memory alternative and correct
the insn lengths in the templates for sign extention and zero
extention.

From-SVN: r36787

gcc/ChangeLog
gcc/config/h8300/h8300.md

index b4a53e9388ddb8c913fc91f77aa821f5a780a56b..8b65b6b67bd635327af9a7ee8bbf01aecc8a2ddc 100644 (file)
@@ -1,3 +1,9 @@
+2000-10-07  Will Cohen  <wcohen@redhat.com>, Kazu Hirata  <kazu@hxi.com>
+
+       * config/h8300/h8300.md: Remove the memory alternative and correct
+       the insn lengths in the templates for sign extention and zero
+       extention.
+
 2000-10-07  Richard Henderson  <rth@cygnus.com>
 
        * calls.c (expand_call): Disallow sibcalls to noreturn functions.
index f75fad509f4592c5d6707022875e19bc17180dd7..9ade006aa24a76453bc7b0e53486e51b07040b1c 100644 (file)
 
 (define_expand "zero_extendhisi2"
   [(set (match_operand:SI 0 "register_operand" "")
-       (zero_extend:SI (match_operand:HI 1 "general_operand" "")))]
+       (zero_extend:SI (match_operand:HI 1 "register_operand" "")))]
   ""
   "
 {
    (set_attr "cc" "clobber,clobber,clobber")])
 
 (define_insn ""
-  [(set (match_operand:SI 0 "register_operand" "=r,r")
-       (zero_extend:SI (match_operand:HI 1 "general_operand_src" "0,g>")))]
+  [(set (match_operand:SI 0 "register_operand" "=r")
+       (zero_extend:SI (match_operand:HI 1 "register_operand" "0")))]
   "TARGET_H8300H || TARGET_H8300S"
-  "@
-  extu.l       %S0
-  mov.w        %T1,%T0\;extu.l %S0"
-  [(set_attr "length" "2,4")
-   (set_attr "cc" "set_znv,set_znv")])
+  "extu.l      %S0"
+  [(set_attr "length" "2")
+   (set_attr "cc" "set_znv")])
 
 (define_expand "extendqihi2"
   [(set (match_operand:HI 0 "register_operand" "")
-       (sign_extend:HI (match_operand:QI 1 "general_operand" "")))]
+       (sign_extend:HI (match_operand:QI 1 "register_operand" "")))]
   ""
   "")
 
    (set_attr "cc" "clobber,clobber")])
 
 (define_insn ""
-  [(set (match_operand:HI 0 "register_operand" "=r,r")
-       (sign_extend:HI (match_operand:QI 1 "general_operand_src" "0,g>")))]
+  [(set (match_operand:HI 0 "register_operand" "=r")
+       (sign_extend:HI (match_operand:QI 1 "register_operand" "0")))]
   "TARGET_H8300H || TARGET_H8300S"
-  "@
-  exts.w       %T0
-  mov.b        %R1,%s0\;exts.w %T0"
-  [(set_attr "length" "2,4")
-   (set_attr "cc" "set_znv,set_znv")])
+  "exts.w      %T0"
+  [(set_attr "length" "2")
+   (set_attr "cc" "set_znv")])
 
 ;; The compiler can synthesize a 300H variant of this which is
 ;; just as efficient as one that we'd create
 
 (define_expand "extendhisi2"
   [(set (match_operand:SI 0 "register_operand" "")
-       (sign_extend:SI (match_operand:HI 1 "general_operand" "")))]
+       (sign_extend:SI (match_operand:HI 1 "register_operand" "")))]
   ""
   "
 {
    (set_attr "cc" "clobber,clobber")])
 
 (define_insn ""
-  [(set (match_operand:SI 0 "register_operand" "=r,r")
-       (sign_extend:SI (match_operand:HI 1 "general_operand_src" "0,g>")))]
+  [(set (match_operand:SI 0 "register_operand" "=r")
+       (sign_extend:SI (match_operand:HI 1 "register_operand" "0")))]
   "TARGET_H8300H || TARGET_H8300S"
-  "@
-  exts.l       %S0
-  mov.w        %T1,%T0\;exts.l %S0"
-  [(set_attr "length" "2,4")
-   (set_attr "cc" "set_znv,set_znv")])
+  "exts.l      %S0"
+  [(set_attr "length" "2")
+   (set_attr "cc" "set_znv")])
 \f
 ;; ----------------------------------------------------------------------
 ;; SHIFTS