+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
#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.
#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, \
#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
(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")])