summaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2003-04-24 12:36:08 +0000
committerNick Clifton <nickc@redhat.com>2003-04-24 12:36:08 +0000
commitdf7fb953931b765a3e65929a0ed308143a4b8850 (patch)
tree1c383e92ca73648963e6ec92dae8a5bbb38ad652 /gas/config
parent31461b76e229a942fe32c5a19088759c2d080469 (diff)
downloadbinutils-redhat-df7fb953931b765a3e65929a0ed308143a4b8850.tar.gz
Add support for h8300hn and h8300sn
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-h8300.c31
-rw-r--r--gas/config/tc-h8300.h3
2 files changed, 33 insertions, 1 deletions
diff --git a/gas/config/tc-h8300.c b/gas/config/tc-h8300.c
index 21051e0a55..037a84ca2a 100644
--- a/gas/config/tc-h8300.c
+++ b/gas/config/tc-h8300.c
@@ -42,10 +42,13 @@ void cons PARAMS ((int));
void sbranch PARAMS ((int));
void h8300hmode PARAMS ((int));
void h8300smode PARAMS ((int));
+void h8300hnmode PARAMS ((int));
+void h8300snmode PARAMS ((int));
static void pint PARAMS ((int));
int Hmode;
int Smode;
+int Nmode;
#define PSIZE (Hmode ? L_32 : L_16)
#define DMODE (L_16)
@@ -89,6 +92,32 @@ h8300smode (arg)
}
void
+h8300hnmode (arg)
+ int arg ATTRIBUTE_UNUSED;
+{
+ Hmode = 1;
+ Smode = 0;
+ Nmode = 1;
+#ifdef BFD_ASSEMBLER
+ if (!bfd_set_arch_mach (stdoutput, bfd_arch_h8300, bfd_mach_h8300hn))
+ as_warn (_("could not set architecture and machine"));
+#endif
+}
+
+void
+h8300snmode (arg)
+ int arg ATTRIBUTE_UNUSED;
+{
+ Smode = 1;
+ Hmode = 1;
+ Nmode = 1;
+#ifdef BFD_ASSEMBLER
+ if (!bfd_set_arch_mach (stdoutput, bfd_arch_h8300, bfd_mach_h8300sn))
+ as_warn (_("could not set architecture and machine"));
+#endif
+}
+
+void
sbranch (size)
int size;
{
@@ -111,7 +140,9 @@ pint (arg)
const pseudo_typeS md_pseudo_table[] =
{
{"h8300h", h8300hmode, 0},
+ {"h8300hn", h8300hnmode, 0},
{"h8300s", h8300smode, 0},
+ {"h8300sn", h8300snmode, 0},
{"sbranch", sbranch, L_8},
{"lbranch", sbranch, L_16},
diff --git a/gas/config/tc-h8300.h b/gas/config/tc-h8300.h
index 2da3f668ae..e09e506cd6 100644
--- a/gas/config/tc-h8300.h
+++ b/gas/config/tc-h8300.h
@@ -45,7 +45,7 @@ struct internal_reloc;
#define TC_COFF_FIX2RTYPE(fixP) abort ();
#define BFD_ARCH bfd_arch_h8300
-#define COFF_MAGIC ( Smode ? 0x8302 : Hmode ? 0x8301 : 0x8300)
+#define COFF_MAGIC ( Smode && Nmode ? 0x8304 : Hmode && Nmode ? 0x8303 : Smode ? 0x8302 : Hmode ? 0x8301 : 0x8300)
#define TC_COUNT_RELOC(x) (1)
#define IGNORE_NONSTANDARD_ESCAPES
@@ -92,5 +92,6 @@ extern void tc_reloc_mangle
extern int Hmode;
extern int Smode;
+extern int Nmode;
#define md_operand(x)