-static const bfd_arch_info_type h8300_info_struct =
-{
- 16, /* 16 bits in a word */
- 16, /* 16 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_h8300,
- bfd_mach_h8300,
- "h8300", /* arch_name */
- "h8300", /* printable name */
- 1,
- true, /* the default machine */
- compatible,
- h8300_scan,
-/* local_bfd_reloc_type_lookup, */
- 0,
-};
+#define N(word, addr, number, name, print, default, next) \
+ { word, addr, 8, bfd_arch_h8300, number, name, print, 1, default, \
+ compatible, h8300_scan, bfd_arch_default_fill, next, 0 }
+
+static const bfd_arch_info_type h8300sxn_info_struct =
+ N (32, 16, bfd_mach_h8300sxn, "h8300sxn", "h8300sxn", FALSE, NULL);
+
+static const bfd_arch_info_type h8300sx_info_struct =
+ N (32, 32, bfd_mach_h8300sx, "h8300sx", "h8300sx", FALSE, &h8300sxn_info_struct);
+
+static const bfd_arch_info_type h8300sn_info_struct =
+ N (32, 16, bfd_mach_h8300sn, "h8300sn", "h8300sn", FALSE, &h8300sx_info_struct);
+
+static const bfd_arch_info_type h8300hn_info_struct =
+ N (32, 16, bfd_mach_h8300hn, "h8300hn", "h8300hn", FALSE, &h8300sn_info_struct);
+
+static const bfd_arch_info_type h8300s_info_struct =
+ N (32, 32, bfd_mach_h8300s, "h8300s", "h8300s", FALSE, & h8300hn_info_struct);