2003-05-16 Michael Snyder <msnyder@redhat.com>
authorMichael Snyder <msnyder@vmware.com>
Fri, 16 May 2003 23:39:24 +0000 (23:39 +0000)
committerMichael Snyder <msnyder@vmware.com>
Fri, 16 May 2003 23:39:24 +0000 (23:39 +0000)
From Bernd Schmidt  <bernds@redhat.com>
* archures.c (bfd_mach_h8300sx): New.
* bfd-in2.h: Regenerate.
* cpu-h8300.c (h8300_scan)): Add support for h8300sx.
(h8300sx_info_struct): New.
(h8300s_info_struct): Link to it.
* elf32-h8300.c (elf32_h8_mach): Add support for h8300sx.
(elf32_h8_final_write_processing): Likewise.
(elf32_h8_relax_section): Likewise.

bfd/ChangeLog
bfd/archures.c
bfd/bfd-in2.h
bfd/cpu-h8300.c
bfd/elf32-h8300.c

index c0972f6..bf7b1f6 100644 (file)
@@ -1,3 +1,14 @@
+2003-05-16  Michael Snyder  <msnyder@redhat.com>
+       From Bernd Schmidt  <bernds@redhat.com>
+       * archures.c (bfd_mach_h8300sx): New.
+       * bfd-in2.h: Regenerate.
+       * cpu-h8300.c (h8300_scan)): Add support for h8300sx.
+       (h8300sx_info_struct): New.
+       (h8300s_info_struct): Link to it.
+       * elf32-h8300.c (elf32_h8_mach): Add support for h8300sx.
+       (elf32_h8_final_write_processing): Likewise.
+       (elf32_h8_relax_section): Likewise.
+
 2003-05-16  Kelley Cook  <kelleycook@wideopenwest.com>
 
        * config.bfd: Accept i[3-7]86 variants.
index 3d473c3..250892c 100644 (file)
@@ -169,6 +169,7 @@ DESCRIPTION
 .#define bfd_mach_h8300s   3
 .#define bfd_mach_h8300hn  4
 .#define bfd_mach_h8300sn  5
+.#define bfd_mach_h8300sx  6
 .  bfd_arch_pdp11,     {* DEC PDP-11 *}
 .  bfd_arch_powerpc,   {* PowerPC *}
 .#define bfd_mach_ppc          32
index 637376b..4f7014e 100644 (file)
@@ -1635,6 +1635,7 @@ enum bfd_architecture
 #define bfd_mach_h8300s   3
 #define bfd_mach_h8300hn  4
 #define bfd_mach_h8300sn  5
+#define bfd_mach_h8300sx  6
   bfd_arch_pdp11,     /* DEC PDP-11 */
   bfd_arch_powerpc,   /* PowerPC */
 #define bfd_mach_ppc           32
index 2a5c604..f61e757 100644 (file)
@@ -81,6 +81,9 @@ h8300_scan (info, string)
       if (*string == 'n' || *string == 'N')
        return (info->mach == bfd_mach_h8300sn);
 
+      if (*string == 'x' || *string == 'X')
+       return (info->mach == bfd_mach_h8300sx);
+      
       return (info->mach == bfd_mach_h8300s);
     }
   else
@@ -103,6 +106,22 @@ compatible (in, out)
     return in;
 }
 
+static const bfd_arch_info_type h8300sx_info_struct =
+{
+  32,                          /* 32 bits in a word */
+  32,                          /* 32 bits in an address */
+  8,                           /* 8 bits in a byte */
+  bfd_arch_h8300,
+  bfd_mach_h8300sx,
+  "h8300sx",                   /* arch_name  */
+  "h8300sx",                   /* printable name */
+  1,
+  FALSE,                       /* the default machine */
+  compatible,
+  h8300_scan,
+  0
+};
+
 static const bfd_arch_info_type h8300sn_info_struct =
 {
   32,                          /* 32 bits in a word.  */
@@ -116,7 +135,7 @@ static const bfd_arch_info_type h8300sn_info_struct =
   FALSE,                       /* The default machine.  */
   compatible,
   h8300_scan,
-  0
+  &h8300sx_info_struct
 };
 
 
index 5a26fbd..f272dc8 100644 (file)
@@ -579,6 +579,9 @@ elf32_h8_mach (flags)
 
     case E_H8_MACH_H8300SN:
       return bfd_mach_h8300sn;
+
+    case E_H8_MACH_H8300SX:
+      return bfd_mach_h8300sx;
     }
 }
 
@@ -615,6 +618,10 @@ elf32_h8_final_write_processing (abfd, linker)
     case bfd_mach_h8300sn:
       val = E_H8_MACH_H8300SN;
       break;
+
+    case bfd_mach_h8300sx:
+      val = E_H8_MACH_H8300SX;
+      break;
     }
 
   elf_elfheader (abfd)->e_flags &= ~ (EF_H8_MACH);
@@ -1023,7 +1030,10 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
                 && value >= 0xff00
                 && value <= 0xffff)
                || ((bfd_get_mach (abfd) == bfd_mach_h8300h
-                    || bfd_get_mach (abfd) == bfd_mach_h8300s)
+                    /* FIXME: h8300hn? */
+                    || bfd_get_mach (abfd) == bfd_mach_h8300s
+                    /* FIXME: h8300sn? */
+                    || bfd_get_mach (abfd) == bfd_mach_h8300sx)
                    && value >= 0xffff00
                    && value <= 0xffffff))
              {
@@ -1081,7 +1091,10 @@ elf32_h8_relax_section (abfd, sec, link_info, again)
                 && value >= 0xff00
                 && value <= 0xffff)
                || ((bfd_get_mach (abfd) == bfd_mach_h8300h
-                    || bfd_get_mach (abfd) == bfd_mach_h8300s)
+                    /* FIXME: h8300hn? */
+                    || bfd_get_mach (abfd) == bfd_mach_h8300s
+                    /* FIXME: h8300sn? */
+                    || bfd_get_mach (abfd) == bfd_mach_h8300sx)
                    && value >= 0xffff00
                    && value <= 0xffffff))
              {