aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2003-06-10 07:09:31 +0000
committerRichard Sandiford <rdsandiford@googlemail.com>2003-06-10 07:09:31 +0000
commitf4984206d8fb20bec6cd4cf1c89adf3bc298824f (patch)
tree1589ff2dd03791edda5f5c58e19b1c893e0281d9 /bfd
parent12b55ccc43340fd281f4eb8f4e6287f069799eab (diff)
downloadgdb-f4984206d8fb20bec6cd4cf1c89adf3bc298824f.zip
gdb-f4984206d8fb20bec6cd4cf1c89adf3bc298824f.tar.gz
gdb-f4984206d8fb20bec6cd4cf1c89adf3bc298824f.tar.bz2
include/elf/
* h8.h (E_H8_MACH_H8300SXN): New flag. bfd/ * archures.c (bfd_mach_h8300sxn): New architecture. * bfd-in2.h: Regenerate. * cpu-h8300.c (h8300_scan): Check for 'sxn'. (h8300sxn_info_struct): New. (h8300sx_info_struct): Link to it. * elf32-h8300.c (elf32_h8_mach): Add h8300sxn case. (elf32_h8_final_write_processing): Likewise. gas/ * config/tc-h8300.c (h8300sxnmode): New. (md_pseudo_table): Add .h8300sxn entry. Sync others with FSF version. ld/ * configure.tgt (h8300*): Add h8300sxn emulations. * Makefile.am (ALL_EMULATIONS): Add eh8300sxn.o and eh8300sxnelf.o. (eh8300sxn.c, eh8300sxnelf.c): New rules. * Makefile.in: Regenerate. * emulparams/h8300sxnelf.sh, emulparams/h8300sxn.sh: New files.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog10
-rw-r--r--bfd/archures.c1
-rw-r--r--bfd/bfd-in2.h1
-rw-r--r--bfd/cpu-h8300.c26
-rw-r--r--bfd/elf32-h8300.c7
5 files changed, 43 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 7bec6fd..2b35ed0 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,13 @@
+2003-06-10 Richard Sandiford <rsandifo@redhat.com>
+
+ * archures.c (bfd_mach_h8300sxn): New architecture.
+ * bfd-in2.h: Regenerate.
+ * cpu-h8300.c (h8300_scan): Check for 'sxn'.
+ (h8300sxn_info_struct): New.
+ (h8300sx_info_struct): Link to it.
+ * elf32-h8300.c (elf32_h8_mach): Add h8300sxn case.
+ (elf32_h8_final_write_processing): Likewise.
+
2003-06-08 Alan Modra <amodra@bigpond.net.au>
* elf64-ppc.c: Move TARGET_LITTLE_SYM and other macros used by
diff --git a/bfd/archures.c b/bfd/archures.c
index 250892c..6132f15 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -170,6 +170,7 @@ DESCRIPTION
.#define bfd_mach_h8300hn 4
.#define bfd_mach_h8300sn 5
.#define bfd_mach_h8300sx 6
+.#define bfd_mach_h8300sxn 7
. bfd_arch_pdp11, {* DEC PDP-11 *}
. bfd_arch_powerpc, {* PowerPC *}
.#define bfd_mach_ppc 32
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 80a543a..ebe5bca 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1654,6 +1654,7 @@ enum bfd_architecture
#define bfd_mach_h8300hn 4
#define bfd_mach_h8300sn 5
#define bfd_mach_h8300sx 6
+#define bfd_mach_h8300sxn 7
bfd_arch_pdp11, /* DEC PDP-11 */
bfd_arch_powerpc, /* PowerPC */
#define bfd_mach_ppc 32
diff --git a/bfd/cpu-h8300.c b/bfd/cpu-h8300.c
index f61e757..e1c77bf 100644
--- a/bfd/cpu-h8300.c
+++ b/bfd/cpu-h8300.c
@@ -82,7 +82,13 @@ h8300_scan (info, string)
return (info->mach == bfd_mach_h8300sn);
if (*string == 'x' || *string == 'X')
- return (info->mach == bfd_mach_h8300sx);
+ {
+ string++;
+ if (*string == 'n' || *string == 'N')
+ return (info->mach == bfd_mach_h8300sxn);
+
+ return (info->mach == bfd_mach_h8300sx);
+ }
return (info->mach == bfd_mach_h8300s);
}
@@ -106,6 +112,22 @@ compatible (in, out)
return in;
}
+static const bfd_arch_info_type h8300sxn_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_h8300sxn,
+ "h8300sxn", /* arch_name */
+ "h8300sxn", /* printable name */
+ 1,
+ FALSE, /* the default machine */
+ compatible,
+ h8300_scan,
+ 0
+};
+
static const bfd_arch_info_type h8300sx_info_struct =
{
32, /* 32 bits in a word */
@@ -119,7 +141,7 @@ static const bfd_arch_info_type h8300sx_info_struct =
FALSE, /* the default machine */
compatible,
h8300_scan,
- 0
+ &h8300sxn_info_struct
};
static const bfd_arch_info_type h8300sn_info_struct =
diff --git a/bfd/elf32-h8300.c b/bfd/elf32-h8300.c
index f272dc8..e4929fb 100644
--- a/bfd/elf32-h8300.c
+++ b/bfd/elf32-h8300.c
@@ -582,6 +582,9 @@ elf32_h8_mach (flags)
case E_H8_MACH_H8300SX:
return bfd_mach_h8300sx;
+
+ case E_H8_MACH_H8300SXN:
+ return bfd_mach_h8300sxn;
}
}
@@ -622,6 +625,10 @@ elf32_h8_final_write_processing (abfd, linker)
case bfd_mach_h8300sx:
val = E_H8_MACH_H8300SX;
break;
+
+ case bfd_mach_h8300sxn:
+ val = E_H8_MACH_H8300SXN;
+ break;
}
elf_elfheader (abfd)->e_flags &= ~ (EF_H8_MACH);