invoke.texi (H8/300 Options): Add -ms2600.
authorKazu Hirata <kazu@hxi.com>
Thu, 14 Sep 2000 18:09:16 +0000 (18:09 +0000)
committerJeff Law <law@gcc.gnu.org>
Thu, 14 Sep 2000 18:09:16 +0000 (12:09 -0600)
        * invoke.texi (H8/300 Options): Add -ms2600.
        * config/h8300.c (h8300_init_once): Output an error when -ms2600
        is used without -ms.
        * config/h8300.h (TARGET_MAC): New.
        (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
        (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
        machine other than H8/S2600.
        * config/h8300.md: Accept mac instructions on the H8/S2600 instead
        of the H8/S2000.

From-SVN: r36414

gcc/ChangeLog
gcc/config/h8300/h8300.c
gcc/config/h8300/h8300.h
gcc/config/h8300/h8300.md
gcc/invoke.texi

index fb8152f34b3185186c52b938dfcf3339603c4bc8..8aa78abb09a3a9f3fbd5d1ea5fd88bc4ab7b3a9e 100644 (file)
@@ -1,3 +1,15 @@
+2000-09-14  Kazu Hirata  <kazu@hxi.com>
+
+       * invoke.texi (H8/300 Options): Add -ms2600.
+       * config/h8300.c (h8300_init_once): Output an error when -ms2600
+       is used without -ms.
+       * config/h8300.h (TARGET_MAC): New.
+       (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
+       (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
+       machine other than H8/S2600.
+       * config/h8300.md: Accept mac instructions on the H8/S2600 instead
+       of the H8/S2000.
+
 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>, Bernd Schmidt  <bernds@redhat.co.uk>
 
        * reload.c (find_reloads_address_1): Generate reloads for auto_inc
index 1ecda26af58c9d9fbad83b2ae53f2f72ae87dbf8..c81cac95b0d9f7d01026760e33c74deb674aac37 100644 (file)
@@ -107,6 +107,9 @@ h8300_init_once ()
   h8_push_op = h8_push_ops[cpu_type];
   h8_pop_op = h8_pop_ops[cpu_type];
   h8_mov_op = h8_mov_ops[cpu_type];
+
+  if (!TARGET_H8300S && TARGET_MAC)
+    fatal ("-ms2600 is used without -ms.");
 }
 
 const char *
index 55af2e297e1577eb9ed722c29e0321b02c9b74be..4a1d9e3022a665b36d8a2ef8cbfbc7ffc6184f93 100644 (file)
@@ -88,6 +88,9 @@ extern int target_flags;
 #define TARGET_H8300H  (target_flags & 4096)
 #define TARGET_H8300S  (target_flags & 1)
 
+/* mac register and relevant instructions are available.  */
+#define TARGET_MAC    (target_flags & 2)
+
 /* Align all values on the H8/300H the same way as the H8/300.  Specifically,
    32 bit and larger values are aligned on 16 bit boundaries.
    This is all the hardware requires, but the default is 32 bits for the 300H.
@@ -104,6 +107,8 @@ extern int target_flags;
 #define TARGET_SWITCHES  \
   { {"s",              1,     N_("Generate H8/S code")},               \
     {"no-s",           -1,    N_("Do not generate H8/S code")},        \
+    {"s2600",          2,     N_("Generate H8/S2600 code")},           \
+    {"no-s2600",       -2,    N_("Do not generate H8/S2600 code")},    \
     {"int32",          8,     N_("Make integers 32 bits wide")},       \
     {"addresses",      64,    NULL},                                   \
     {"quickcall",      128,                                            \
@@ -280,10 +285,10 @@ extern int target_flags;
 #define REG_ALLOC_ORDER \
   { 2, 3, 0, 1, 4, 5, 6, 8, 7, 9}
 
-#define CONDITIONAL_REGISTER_USAGE     \
-{                                      \
-  if (!TARGET_H8300S)                  \
-    fixed_regs[8] = call_used_regs[8] = 1;\
+#define CONDITIONAL_REGISTER_USAGE             \
+{                                              \
+  if (!TARGET_MAC)                             \
+    fixed_regs[8] = call_used_regs[8] = 1;     \
 }
 
 /* Return number of consecutive hard regs needed starting at reg REGNO
index 290b7addd4f44a5762a9bf968a55a34351620904..f75fad509f4592c5d6707022875e19bc17180dd7 100644 (file)
            (mem:HI (post_inc:SI (match_operand:SI 1 "register_operand" "r"))))
          (sign_extend:SI
            (mem:HI (post_inc:SI (match_operand:SI 2 "register_operand" "r"))))))]
-  "TARGET_H8300S"
+  "TARGET_MAC"
   "clrmac\;mac @%2+,@%1+"
   [(set_attr "length" "6")
    (set_attr "cc" "none_0hit")])
          (sign_extend:SI (mem:HI
            (post_inc:SI (match_operand:SI 2 "register_operand" "r")))))
              (match_operand:SI 3 "register_operand" "0")))]
-  "TARGET_H8300S"
+  "TARGET_MAC"
   "mac @%2+,@%1+"
   [(set_attr "length" "4")
    (set_attr "cc" "none_0hit")])
index acd8c53b9003cce414410d9ac26399acd8ca5056..be42ad540ea2c6c08c18cf7a9c243b515d06585e 100644 (file)
@@ -6681,6 +6681,9 @@ Generate code for the H8/300H.
 @item -ms
 Generate code for the H8/S.
 
+@item -ms2600
+Generate code for the H8/S2600.  This switch must be used with -ms.
+
 @item -mint32
 Make @code{int} data 32 bits by default.