summaryrefslogtreecommitdiffstats
path: root/contrib/binutils/bfd/cpu-sh.c
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2002-08-31 20:20:07 +0000
committerobrien <obrien@FreeBSD.org>2002-08-31 20:20:07 +0000
commit0570468a60eb57b3c504db2cc606350167341bc1 (patch)
treef3bc0ae2e746e12a1e72081504eabb88fffe2720 /contrib/binutils/bfd/cpu-sh.c
parentf3c54bd2c1850601b80aa0558b8843517125f50f (diff)
downloadFreeBSD-src-0570468a60eb57b3c504db2cc606350167341bc1.zip
FreeBSD-src-0570468a60eb57b3c504db2cc606350167341bc1.tar.gz
Import of Binutils from the FSF 2.12 branch (post-.1 release).
Diffstat (limited to 'contrib/binutils/bfd/cpu-sh.c')
-rw-r--r--contrib/binutils/bfd/cpu-sh.c80
1 files changed, 72 insertions, 8 deletions
diff --git a/contrib/binutils/bfd/cpu-sh.c b/contrib/binutils/bfd/cpu-sh.c
index 9f7ef20..30cd141 100644
--- a/contrib/binutils/bfd/cpu-sh.c
+++ b/contrib/binutils/bfd/cpu-sh.c
@@ -1,5 +1,6 @@
/* BFD library support routines for the Hitachi-SH architecture.
- Copyright (C) 1993 Free Software Foundation, Inc.
+ Copyright 1993, 1994, 1997, 1998, 2000, 2001
+ Free Software Foundation, Inc.
Hacked by Steve Chamberlain of Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -22,8 +23,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "sysdep.h"
#include "libbfd.h"
+static boolean scan_mach
+ PARAMS ((const struct bfd_arch_info *, const char *));
-static boolean
+static boolean
scan_mach (info, string)
const struct bfd_arch_info *info;
const char *string;
@@ -33,7 +36,6 @@ scan_mach (info, string)
return false;
}
-
#if 0
/* This routine is provided two arch_infos and returns whether
they'd be compatible */
@@ -49,18 +51,52 @@ compatible (a,b)
}
#endif
-#define SH_NEXT &arch_info_struct[0]
-#define SH3_NEXT &arch_info_struct[1]
-#define SH3E_NEXT &arch_info_struct[2]
-#define SH4_NEXT NULL
+#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 SH64_NEXT NULL
-static const bfd_arch_info_type arch_info_struct[] =
+static const bfd_arch_info_type arch_info_struct[] =
{
{
32, /* 32 bits in a word */
32, /* 32 bits in an address */
8, /* 8 bits in a byte */
bfd_arch_sh,
+ bfd_mach_sh2,
+ "sh", /* arch_name */
+ "sh2", /* printable name */
+ 1,
+ false, /* not the default */
+ bfd_default_compatible,
+ scan_mach,
+ SH2_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 */
+ 1,
+ false, /* not the default */
+ bfd_default_compatible,
+ scan_mach,
+ SH_DSP_NEXT
+ },
+ {
+ 32, /* 32 bits in a word */
+ 32, /* 32 bits in an address */
+ 8, /* 8 bits in a byte */
+ bfd_arch_sh,
bfd_mach_sh3,
"sh", /* arch_name */
"sh3", /* printable name */
@@ -75,6 +111,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_sh3_dsp,
+ "sh", /* arch_name */
+ "sh3-dsp", /* printable name */
+ 1,
+ false, /* not the default */
+ bfd_default_compatible,
+ scan_mach,
+ SH3_DSP_NEXT
+ },
+ {
+ 32, /* 32 bits in a word */
+ 32, /* 32 bits in an address */
+ 8, /* 8 bits in a byte */
+ bfd_arch_sh,
bfd_mach_sh3e,
"sh", /* arch_name */
"sh3e", /* printable name */
@@ -98,6 +148,20 @@ static const bfd_arch_info_type arch_info_struct[] =
scan_mach,
SH4_NEXT
},
+ {
+ 64, /* 64 bits in a word */
+ 64, /* 64 bits in an address */
+ 8, /* 8 bits in a byte */
+ bfd_arch_sh,
+ bfd_mach_sh5,
+ "sh", /* arch_name */
+ "sh5", /* printable name */
+ 1,
+ false, /* not the default */
+ bfd_default_compatible,
+ scan_mach,
+ SH64_NEXT
+ },
};
const bfd_arch_info_type bfd_sh_arch =
OpenPOWER on IntegriCloud