aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2003-01-23 18:50:57 +0000
committerNick Clifton <nickc@redhat.com>2003-01-23 18:50:57 +0000
commit5177500f26e1fc3127c607f72bd2dfbffb9165b3 (patch)
treebc37078bce5312e407d6dc8c5e2137cd98c9671c /bfd
parent3434109f523fb6fbe890fc044931f86d035bb1ed (diff)
downloadgdb-5177500f26e1fc3127c607f72bd2dfbffb9165b3.zip
gdb-5177500f26e1fc3127c607f72bd2dfbffb9165b3.tar.gz
gdb-5177500f26e1fc3127c607f72bd2dfbffb9165b3.tar.bz2
Add SH2E support
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog11
-rw-r--r--bfd/archures.c1
-rw-r--r--bfd/bfd-in2.h1
-rw-r--r--bfd/cpu-sh.c57
-rw-r--r--bfd/elf32-sh.c3
5 files changed, 51 insertions, 22 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 2bfec17..75ee256 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,14 @@
+2003-01-23 Nick Clifton <nickc@redhat.com>
+
+ * Add sh2e support:
+
+ 2002-04-02 Elena Zannoni <ezannoni@redhat.com>
+
+ * archures.c (bfd_mach_sh2e): Added.
+ * bfd-in2.h: Rebuilt.
+ * cpu-sh.c (arch_info_struct): Added SH2e.
+ * elf32-sh.c (sh_elf_set_mach_from_flags): Handle EF_SH2E.
+
2003-01-23 Alan Modra <amodra@bigpond.net.au>
* elf-bfd.h (struct bfd_elf_section_data): Remove tdata. Change
diff --git a/bfd/archures.c b/bfd/archures.c
index f881444..08015f9 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -213,6 +213,7 @@ DESCRIPTION
.#define bfd_mach_sh 1
.#define bfd_mach_sh2 0x20
.#define bfd_mach_sh_dsp 0x2d
+.#define bfd_mach_sh2e 0x2e
.#define bfd_mach_sh3 0x30
.#define bfd_mach_sh3_dsp 0x3d
.#define bfd_mach_sh3e 0x3e
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index a2693e9..b195ac6 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1640,6 +1640,7 @@ enum bfd_architecture
#define bfd_mach_sh 1
#define bfd_mach_sh2 0x20
#define bfd_mach_sh_dsp 0x2d
+#define bfd_mach_sh2e 0x2e
#define bfd_mach_sh3 0x30
#define bfd_mach_sh3_dsp 0x3d
#define bfd_mach_sh3e 0x3e
diff --git a/bfd/cpu-sh.c b/bfd/cpu-sh.c
index 3331c27..9d9087f 100644
--- a/bfd/cpu-sh.c
+++ b/bfd/cpu-sh.c
@@ -1,23 +1,23 @@
/* BFD library support routines for the Hitachi-SH architecture.
- Copyright 1993, 1994, 1997, 1998, 2000, 2001, 2002
+ Copyright 1993, 1994, 1997, 1998, 2000, 2001, 2002, 2003
Free Software Foundation, Inc.
Hacked by Steve Chamberlain of Cygnus Support.
-This file is part of BFD, the Binary File Descriptor library.
+ This file is part of BFD, the Binary File Descriptor library.
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "bfd.h"
#include "sysdep.h"
@@ -25,7 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if 0
/* This routine is provided two arch_infos and returns whether
- they'd be compatible */
+ they'd be compatible. */
static const bfd_arch_info_type *
compatible (a,b)
@@ -33,20 +33,19 @@ compatible (a,b)
const bfd_arch_info_type *b;
{
if (a->arch != b->arch || a->mach != b->mach)
- return NULL;
+ return NULL;
return a;
}
#endif
#define SH_NEXT &arch_info_struct[0]
#define SH2_NEXT &arch_info_struct[1]
-#define SH_DSP_NEXT &arch_info_struct[2]
-#define SH3_NEXT &arch_info_struct[3]
-#define SH3_DSP_NEXT &arch_info_struct[4]
-#define SH3E_NEXT &arch_info_struct[5]
-#define SH4_NEXT NULL
-#undef SH4_NEXT
-#define SH4_NEXT &arch_info_struct[6]
+#define SH2E_NEXT &arch_info_struct[2]
+#define SH_DSP_NEXT &arch_info_struct[3]
+#define SH3_NEXT &arch_info_struct[4]
+#define SH3_DSP_NEXT &arch_info_struct[5]
+#define SH3E_NEXT &arch_info_struct[6]
+#define SH4_NEXT &arch_info_struct[7]
#define SH64_NEXT NULL
static const bfd_arch_info_type arch_info_struct[] =
@@ -70,6 +69,20 @@ static const bfd_arch_info_type arch_info_struct[] =
32, /* 32 bits in an address */
8, /* 8 bits in a byte */
bfd_arch_sh,
+ bfd_mach_sh2e,
+ "sh", /* arch_name */
+ "sh2e", /* printable name */
+ 1,
+ FALSE, /* not the default */
+ bfd_default_compatible,
+ bfd_default_scan,
+ SH2E_NEXT
+ },
+ {
+ 32, /* 32 bits in a word */
+ 32, /* 32 bits in an address */
+ 8, /* 8 bits in a byte */
+ bfd_arch_sh,
bfd_mach_sh_dsp,
"sh", /* arch_name */
"sh-dsp", /* printable name */
diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c
index d1e618b..f0e0177 100644
--- a/bfd/elf32-sh.c
+++ b/bfd/elf32-sh.c
@@ -6724,6 +6724,9 @@ sh_elf_set_mach_from_flags (abfd)
case EF_SH2:
bfd_default_set_arch_mach (abfd, bfd_arch_sh, bfd_mach_sh2);
break;
+ case EF_SH2E:
+ bfd_default_set_arch_mach (abfd, bfd_arch_sh, bfd_mach_sh2e);
+ break;
case EF_SH_DSP:
bfd_default_set_arch_mach (abfd, bfd_arch_sh, bfd_mach_sh_dsp);
break;