mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-26 03:24:41 +08:00
Grrr. The mn10200 and mn10300 are _not_ similar enough to easily support
with a single generic configuration. So break them up into two different configurations. See the individual ChangeLogs for additional detail.
This commit is contained in:
parent
feede9b699
commit
ae1b99e42d
@ -1,3 +1,9 @@
|
||||
Thu Oct 3 09:28:25 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* configure.in: Break mn10x00 support into separate
|
||||
mn10200 and mn10300 configurations.
|
||||
* config.sub: Likewise.
|
||||
|
||||
Wed Oct 2 22:27:52 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* configure.in: Add lots of stuff to noconfigdirs for
|
||||
|
@ -137,7 +137,8 @@ cpu-i960.c
|
||||
cpu-m68k.c
|
||||
cpu-m88k.c
|
||||
cpu-mips.c
|
||||
cpu-mn10x00.c
|
||||
cpu-mn10200.c
|
||||
cpu-mn10300.c
|
||||
cpu-ns32k.c
|
||||
cpu-powerpc.c
|
||||
cpu-rs6000.c
|
||||
@ -163,7 +164,8 @@ elf32-i860.c
|
||||
elf32-m68k.c
|
||||
elf32-m88k.c
|
||||
elf32-mips.c
|
||||
elf32-mn10x00.c
|
||||
elf32-mn10200.c
|
||||
elf32-mn10300.c
|
||||
elf32-ppc.c
|
||||
elf32-sh.c
|
||||
elf32-sparc.c
|
||||
|
@ -1,3 +1,13 @@
|
||||
Thu Oct 3 09:29:09 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* cpu-mn10x00.c, elf32-mn10x00: Removed.
|
||||
* cpu-mn10200.c, cpu-mn10300.c: New files.
|
||||
* elf32-mn10200.c, elf32-mn10300.c: New files.
|
||||
* Makefile.in: Break mn10x00 support into two separate
|
||||
configurations, mn10200 and mn10300.
|
||||
* archures.c, config.bfd, configure.in, elf.c, targets.c: Likewise.
|
||||
* bfd-in2.h, configure: Rebuilt.
|
||||
|
||||
Thu Oct 3 15:38:19 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
|
||||
|
||||
* Makefile.in (do_clean): Move config.log to do_distclean.
|
||||
|
@ -131,7 +131,8 @@ ALL_MACHINES = \
|
||||
cpu-m68k.o \
|
||||
cpu-m88k.o \
|
||||
cpu-mips.o \
|
||||
cpu-mn10x00.o \
|
||||
cpu-mn10200.o \
|
||||
cpu-mn10300.o \
|
||||
cpu-ns32k.o \
|
||||
cpu-powerpc.o \
|
||||
cpu-rs6000.o \
|
||||
@ -219,7 +220,8 @@ BFD32_BACKENDS = \
|
||||
elf32-m68k.o \
|
||||
elf32-m88k.o \
|
||||
elf32-mips.o \
|
||||
elf32-mn10x00.o \
|
||||
elf32-mn10200.o \
|
||||
elf32-mn10300.o \
|
||||
elf32-ppc.o \
|
||||
elf32-sh.o \
|
||||
elf32-sparc.o \
|
||||
@ -827,7 +829,11 @@ elf32-m32r.o: elf32-m32r.c elf-bfd.h $(INCDIR)/elf/common.h \
|
||||
elf32-target.h
|
||||
end-sanitize-m32r:
|
||||
|
||||
elf32-mn10x00.o: elf32-mn10x00.c elf-bfd.h $(INCDIR)/elf/common.h \
|
||||
elf32-mn10200.o: elf32-mn10200.c elf-bfd.h $(INCDIR)/elf/common.h \
|
||||
$(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
|
||||
elf32-target.h
|
||||
|
||||
elf32-mn10300.o: elf32-mn10300.c elf-bfd.h $(INCDIR)/elf/common.h \
|
||||
$(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
|
||||
elf32-target.h
|
||||
|
||||
|
@ -1229,7 +1229,8 @@ enum bfd_architecture
|
||||
/* start-sanitize-m32r */
|
||||
bfd_arch_m32r, /* Mitsubishi M32R */
|
||||
/* end-sanitize-m32r */
|
||||
bfd_arch_mn10x00, /* Matsushita MN10x00 */
|
||||
bfd_arch_mn10200, /* Matsushita MN10200 */
|
||||
bfd_arch_mn10300, /* Matsushita MN10300 */
|
||||
bfd_arch_last
|
||||
};
|
||||
|
||||
|
@ -393,8 +393,12 @@ case "${targ}" in
|
||||
targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
|
||||
;;
|
||||
|
||||
mn10x00-*-*)
|
||||
targ_defvec=bfd_elf32_mn10x00_vec
|
||||
mn10200-*-*)
|
||||
targ_defvec=bfd_elf32_mn10200_vec
|
||||
;;
|
||||
|
||||
mn10300-*-*)
|
||||
targ_defvec=bfd_elf32_mn10300_vec
|
||||
;;
|
||||
|
||||
ns32k-pc532-mach* | ns32k-pc532-ux*)
|
||||
|
3
bfd/configure
vendored
3
bfd/configure
vendored
@ -1928,7 +1928,8 @@ do
|
||||
# end-sanitize-m32r
|
||||
bfd_elf32_m68k_vec) tb="$tb elf32-m68k.o elf32.o $elf" ;;
|
||||
bfd_elf32_m88k_vec) tb="$tb elf32-m88k.o elf32.o $elf" ;;
|
||||
bfd_elf32_mn10x00_vec) tb="$tb elf32-mn10x00.o elf32.o $elf" ;;
|
||||
bfd_elf32_mn10200_vec) tb="$tb elf32-mn10200.o elf32.o $elf" ;;
|
||||
bfd_elf32_mn10300_vec) tb="$tb elf32-mn10300.o elf32.o $elf" ;;
|
||||
bfd_elf32_powerpc_vec) tb="$tb elf32-ppc.o elf32.o $elf" ;;
|
||||
bfd_elf32_powerpcle_vec) tb="$tb elf32-ppc.o elf32.o $elf" ;;
|
||||
bfd_elf32_sh_vec) tb="$tb elf32-sh.o elf32.o $elf coff-sh.o" ;;
|
||||
|
@ -456,7 +456,8 @@ do
|
||||
# end-sanitize-m32r
|
||||
bfd_elf32_m68k_vec) tb="$tb elf32-m68k.o elf32.o $elf" ;;
|
||||
bfd_elf32_m88k_vec) tb="$tb elf32-m88k.o elf32.o $elf" ;;
|
||||
bfd_elf32_mn10x00_vec) tb="$tb elf32-mn10x00.o elf32.o $elf" ;;
|
||||
bfd_elf32_mn10200_vec) tb="$tb elf32-mn10200.o elf32.o $elf" ;;
|
||||
bfd_elf32_mn10300_vec) tb="$tb elf32-mn10300.o elf32.o $elf" ;;
|
||||
bfd_elf32_powerpc_vec) tb="$tb elf32-ppc.o elf32.o $elf" ;;
|
||||
bfd_elf32_powerpcle_vec) tb="$tb elf32-ppc.o elf32.o $elf" ;;
|
||||
bfd_elf32_sh_vec) tb="$tb elf32-sh.o elf32.o $elf coff-sh.o" ;;
|
||||
|
22
bfd/cpu-mn10x00.c → bfd/cpu-mn10200.c
Executable file → Normal file
22
bfd/cpu-mn10x00.c → bfd/cpu-mn10200.c
Executable file → Normal file
@ -1,4 +1,4 @@
|
||||
/* BFD support for the Matsushita 10200 and 10300 processors
|
||||
/* BFD support for the Matsushita 10200 processor
|
||||
Copyright 1996 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
@ -26,9 +26,9 @@ const bfd_arch_info_type bfd_mn10200_arch =
|
||||
16, /* 16 bits in a word */
|
||||
24, /* 16 bits in an address */
|
||||
8, /* 8 bits in a byte */
|
||||
bfd_arch_mn10x00,
|
||||
bfd_arch_mn10200,
|
||||
200,
|
||||
"mn10x00",
|
||||
"mn10200",
|
||||
"mn10200",
|
||||
2,
|
||||
true, /* the one and only */
|
||||
@ -36,19 +36,3 @@ const bfd_arch_info_type bfd_mn10200_arch =
|
||||
bfd_default_scan ,
|
||||
0,
|
||||
};
|
||||
|
||||
const bfd_arch_info_type bfd_mn10x00_arch =
|
||||
{
|
||||
16,
|
||||
24,
|
||||
8,
|
||||
bfd_arch_mn10x00,
|
||||
300,
|
||||
"mn10x00",
|
||||
"mn10300",
|
||||
2,
|
||||
false,
|
||||
bfd_default_compatible,
|
||||
bfd_default_scan,
|
||||
&bfd_mn10200_arch
|
||||
};
|
38
bfd/cpu-mn10300.c
Normal file
38
bfd/cpu-mn10300.c
Normal file
@ -0,0 +1,38 @@
|
||||
/* BFD support for the Matsushita 10300 processor
|
||||
Copyright 1996 Free Software Foundation, Inc.
|
||||
|
||||
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 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. */
|
||||
|
||||
#include "bfd.h"
|
||||
#include "sysdep.h"
|
||||
#include "libbfd.h"
|
||||
|
||||
const bfd_arch_info_type bfd_mn10300_arch =
|
||||
{
|
||||
32, /* 16 bits in a word */
|
||||
32, /* 16 bits in an address */
|
||||
8, /* 8 bits in a byte */
|
||||
bfd_arch_mn10300,
|
||||
300,
|
||||
"mn10300",
|
||||
"mn10300",
|
||||
2,
|
||||
true, /* the one and only */
|
||||
bfd_default_compatible,
|
||||
bfd_default_scan ,
|
||||
0,
|
||||
};
|
@ -1,5 +1,5 @@
|
||||
/* Matsushita 10200 and 10300 specific support for 32-bit ELF
|
||||
Copyright (C) 1994, 1995 Free Software Foundation, Inc.
|
||||
/* Matsushita 10200 specific support for 32-bit ELF
|
||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
@ -24,7 +24,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
|
||||
PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
|
||||
static void mn10x00_info_to_howto_rel
|
||||
static void mn10200_info_to_howto_rel
|
||||
PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
|
||||
|
||||
/* Try to minimize the amount of space occupied by relocation tables
|
||||
@ -33,14 +33,14 @@ static void mn10x00_info_to_howto_rel
|
||||
|
||||
enum reloc_type
|
||||
{
|
||||
R_MN10x00_NONE = 0,
|
||||
R_MN10x00_MAX
|
||||
R_MN10200_NONE = 0,
|
||||
R_MN10200_MAX
|
||||
};
|
||||
|
||||
static reloc_howto_type elf_mn10x00_howto_table[] =
|
||||
static reloc_howto_type elf_mn10200_howto_table[] =
|
||||
{
|
||||
/* */
|
||||
HOWTO (R_MN10x00_NONE,
|
||||
HOWTO (R_MN10200_NONE,
|
||||
0,
|
||||
2,
|
||||
16,
|
||||
@ -48,22 +48,22 @@ static reloc_howto_type elf_mn10x00_howto_table[] =
|
||||
0,
|
||||
complain_overflow_bitfield,
|
||||
bfd_elf_generic_reloc,
|
||||
"R_MN10x00_NONE",
|
||||
"R_MN10200_NONE",
|
||||
false,
|
||||
0,
|
||||
0,
|
||||
false),
|
||||
};
|
||||
|
||||
struct mn10x00_reloc_map
|
||||
struct mn10200_reloc_map
|
||||
{
|
||||
unsigned char bfd_reloc_val;
|
||||
unsigned char elf_reloc_val;
|
||||
};
|
||||
|
||||
static const struct mn10x00_reloc_map mn10x00_reloc_map[] =
|
||||
static const struct mn10200_reloc_map mn10200_reloc_map[] =
|
||||
{
|
||||
{ BFD_RELOC_NONE, R_MN10x00_NONE, },
|
||||
{ BFD_RELOC_NONE, R_MN10200_NONE, },
|
||||
};
|
||||
|
||||
static reloc_howto_type *
|
||||
@ -74,11 +74,11 @@ bfd_elf32_bfd_reloc_type_lookup (abfd, code)
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0;
|
||||
i < sizeof (mn10x00_reloc_map) / sizeof (struct mn10x00_reloc_map);
|
||||
i < sizeof (mn10200_reloc_map) / sizeof (struct mn10200_reloc_map);
|
||||
i++)
|
||||
{
|
||||
if (mn10x00_reloc_map[i].bfd_reloc_val == code)
|
||||
return &elf_mn10x00_howto_table[mn10x00_reloc_map[i].elf_reloc_val];
|
||||
if (mn10200_reloc_map[i].bfd_reloc_val == code)
|
||||
return &elf_mn10200_howto_table[mn10200_reloc_map[i].elf_reloc_val];
|
||||
}
|
||||
|
||||
return NULL;
|
||||
@ -87,7 +87,7 @@ bfd_elf32_bfd_reloc_type_lookup (abfd, code)
|
||||
/* Set the howto pointer for an V850 ELF reloc. */
|
||||
|
||||
static void
|
||||
mn10x00_info_to_howto_rel (abfd, cache_ptr, dst)
|
||||
mn10200_info_to_howto_rel (abfd, cache_ptr, dst)
|
||||
bfd *abfd;
|
||||
arelent *cache_ptr;
|
||||
Elf32_Internal_Rel *dst;
|
||||
@ -95,17 +95,17 @@ mn10x00_info_to_howto_rel (abfd, cache_ptr, dst)
|
||||
unsigned int r_type;
|
||||
|
||||
r_type = ELF32_R_TYPE (dst->r_info);
|
||||
BFD_ASSERT (r_type < (unsigned int) R_MN10x00_MAX);
|
||||
cache_ptr->howto = &elf_mn10x00_howto_table[r_type];
|
||||
BFD_ASSERT (r_type < (unsigned int) R_MN10200_MAX);
|
||||
cache_ptr->howto = &elf_mn10200_howto_table[r_type];
|
||||
}
|
||||
|
||||
#define TARGET_LITTLE_SYM bfd_elf32_mn10x00_vec
|
||||
#define TARGET_LITTLE_NAME "elf32-mn10x00"
|
||||
#define ELF_ARCH bfd_arch_mn10x00
|
||||
#define ELF_MACHINE_CODE EM_CYGNUS_MN10x00
|
||||
#define TARGET_LITTLE_SYM bfd_elf32_mn10200_vec
|
||||
#define TARGET_LITTLE_NAME "elf32-mn10200"
|
||||
#define ELF_ARCH bfd_arch_mn10200
|
||||
#define ELF_MACHINE_CODE EM_CYGNUS_MN10200
|
||||
#define ELF_MAXPAGESIZE 0x1000
|
||||
|
||||
#define elf_info_to_howto 0
|
||||
#define elf_info_to_howto_rel mn10x00_info_to_howto_rel
|
||||
#define elf_info_to_howto_rel mn10200_info_to_howto_rel
|
||||
|
||||
#include "elf32-target.h"
|
111
bfd/elf32-mn10300.c
Normal file
111
bfd/elf32-mn10300.c
Normal file
@ -0,0 +1,111 @@
|
||||
/* Matsushita 10300 specific support for 32-bit ELF
|
||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
|
||||
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 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. */
|
||||
|
||||
#include "bfd.h"
|
||||
#include "sysdep.h"
|
||||
#include "libbfd.h"
|
||||
#include "elf-bfd.h"
|
||||
|
||||
static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
|
||||
PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
|
||||
static void mn10300_info_to_howto_rel
|
||||
PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
|
||||
|
||||
/* Try to minimize the amount of space occupied by relocation tables
|
||||
on the ROM (not that the ROM won't be swamped by other ELF overhead). */
|
||||
#define USE_REL
|
||||
|
||||
enum reloc_type
|
||||
{
|
||||
R_MN10300_NONE = 0,
|
||||
R_MN10300_MAX
|
||||
};
|
||||
|
||||
static reloc_howto_type elf_mn10300_howto_table[] =
|
||||
{
|
||||
/* */
|
||||
HOWTO (R_MN10300_NONE,
|
||||
0,
|
||||
2,
|
||||
16,
|
||||
false,
|
||||
0,
|
||||
complain_overflow_bitfield,
|
||||
bfd_elf_generic_reloc,
|
||||
"R_MN10300_NONE",
|
||||
false,
|
||||
0,
|
||||
0,
|
||||
false),
|
||||
};
|
||||
|
||||
struct mn10300_reloc_map
|
||||
{
|
||||
unsigned char bfd_reloc_val;
|
||||
unsigned char elf_reloc_val;
|
||||
};
|
||||
|
||||
static const struct mn10300_reloc_map mn10300_reloc_map[] =
|
||||
{
|
||||
{ BFD_RELOC_NONE, R_MN10300_NONE, },
|
||||
};
|
||||
|
||||
static reloc_howto_type *
|
||||
bfd_elf32_bfd_reloc_type_lookup (abfd, code)
|
||||
bfd *abfd;
|
||||
bfd_reloc_code_real_type code;
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0;
|
||||
i < sizeof (mn10300_reloc_map) / sizeof (struct mn10300_reloc_map);
|
||||
i++)
|
||||
{
|
||||
if (mn10300_reloc_map[i].bfd_reloc_val == code)
|
||||
return &elf_mn10300_howto_table[mn10300_reloc_map[i].elf_reloc_val];
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Set the howto pointer for an V850 ELF reloc. */
|
||||
|
||||
static void
|
||||
mn10300_info_to_howto_rel (abfd, cache_ptr, dst)
|
||||
bfd *abfd;
|
||||
arelent *cache_ptr;
|
||||
Elf32_Internal_Rel *dst;
|
||||
{
|
||||
unsigned int r_type;
|
||||
|
||||
r_type = ELF32_R_TYPE (dst->r_info);
|
||||
BFD_ASSERT (r_type < (unsigned int) R_MN10300_MAX);
|
||||
cache_ptr->howto = &elf_mn10300_howto_table[r_type];
|
||||
}
|
||||
|
||||
#define TARGET_LITTLE_SYM bfd_elf32_mn10300_vec
|
||||
#define TARGET_LITTLE_NAME "elf32-mn10300"
|
||||
#define ELF_ARCH bfd_arch_mn10300
|
||||
#define ELF_MACHINE_CODE EM_CYGNUS_MN10300
|
||||
#define ELF_MAXPAGESIZE 0x1000
|
||||
|
||||
#define elf_info_to_howto 0
|
||||
#define elf_info_to_howto_rel mn10300_info_to_howto_rel
|
||||
|
||||
#include "elf32-target.h"
|
@ -503,7 +503,8 @@ extern const bfd_target bfd_elf32_m32r_vec;
|
||||
/* end-sanitize-m32r */
|
||||
extern const bfd_target bfd_elf32_m68k_vec;
|
||||
extern const bfd_target bfd_elf32_m88k_vec;
|
||||
extern const bfd_target bfd_elf32_mn10x00_vec;
|
||||
extern const bfd_target bfd_elf32_mn10200_vec;
|
||||
extern const bfd_target bfd_elf32_mn10300_vec;
|
||||
extern const bfd_target bfd_elf32_powerpc_vec;
|
||||
extern const bfd_target bfd_elf32_powerpcle_vec;
|
||||
extern const bfd_target bfd_elf32_sh_vec;
|
||||
@ -664,7 +665,8 @@ const bfd_target * const bfd_target_vector[] = {
|
||||
/* start-sanitize-m32r */
|
||||
&bfd_elf32_m32r_vec,
|
||||
/* end-sanitize-m32r */
|
||||
&bfd_elf32_mn10x00_vec,
|
||||
&bfd_elf32_mn10200_vec,
|
||||
&bfd_elf32_mn10300_vec,
|
||||
&bfd_elf32_m68k_vec,
|
||||
&bfd_elf32_m88k_vec,
|
||||
&bfd_elf32_sparc_vec,
|
||||
|
5
config.sub
vendored
5
config.sub
vendored
@ -186,7 +186,10 @@ case $basic_machine in
|
||||
basic_machine=$basic_machine-unknown
|
||||
;;
|
||||
# end-sanitize-m32r
|
||||
mn10x00)
|
||||
mn10200)
|
||||
basic_machine=$basic_machine-unknown
|
||||
;;
|
||||
mn10300)
|
||||
basic_machine=$basic_machine-unknown
|
||||
;;
|
||||
# Object if more than one company name word.
|
||||
|
@ -490,7 +490,10 @@ case "${target}" in
|
||||
noconfigdirs="$noconfigdirs target-libgloss libio libstdc++ libg++ gdb"
|
||||
;;
|
||||
# end-sanitize-m32r
|
||||
mn10x00-*-*)
|
||||
mn10200-*-*)
|
||||
noconfigdirs="$noconfigdirs ld gcc gdb target-libiberty target-libgloss target-newlib target-libio target-librx target-libstdc++ target-libg++"
|
||||
;;
|
||||
mn10300-*-*)
|
||||
noconfigdirs="$noconfigdirs ld gcc gdb target-libiberty target-libgloss target-newlib target-libio target-librx target-libstdc++ target-libg++"
|
||||
;;
|
||||
powerpc-*-aix*)
|
||||
|
@ -120,8 +120,10 @@ tc-m88k.c
|
||||
tc-m88k.h
|
||||
tc-mips.c
|
||||
tc-mips.h
|
||||
tc-mn10x00.c
|
||||
tc-mn10x00.h
|
||||
tc-mn10200.c
|
||||
tc-mn10200.h
|
||||
tc-mn10300.c
|
||||
tc-mn10300.h
|
||||
tc-ns32k.c
|
||||
tc-ns32k.h
|
||||
tc-ppc.c
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* tc-mn10x00.c -- Assembler code for the Matsushita 10x00
|
||||
/* tc-mn10300.c -- Assembler code for the Matsushita 10300
|
||||
|
||||
Copyright (C) 1996 Free Software Foundation.
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
#include <ctype.h>
|
||||
#include "as.h"
|
||||
#include "subsegs.h"
|
||||
#include "opcode/mn10x00.h"
|
||||
#include "opcode/mn10300.h"
|
||||
|
||||
/* Structure to hold information about predefined registers. */
|
||||
struct reg_name
|
||||
@ -54,25 +54,25 @@ const char FLT_CHARS[] = "dD";
|
||||
|
||||
|
||||
/* local functions */
|
||||
static unsigned long mn10x00
|
||||
PARAMS ((unsigned long insn, const struct mn10x00_operand *operand,
|
||||
static unsigned long mn10300
|
||||
PARAMS ((unsigned long insn, const struct mn10300_operand *operand,
|
||||
offsetT val, char *file, unsigned int line));
|
||||
static int reg_name_search PARAMS ((const struct reg_name *, int, const char *));
|
||||
static boolean register_name PARAMS ((expressionS *expressionP));
|
||||
static boolean system_register_name PARAMS ((expressionS *expressionP));
|
||||
static boolean cc_name PARAMS ((expressionS *expressionP));
|
||||
static bfd_reloc_code_real_type mn10x00_reloc_prefix PARAMS ((void));
|
||||
static bfd_reloc_code_real_type mn10300_reloc_prefix PARAMS ((void));
|
||||
|
||||
|
||||
/* fixups */
|
||||
#define MAX_INSN_FIXUPS (5)
|
||||
struct mn10x00_fixup
|
||||
struct mn10300_fixup
|
||||
{
|
||||
expressionS exp;
|
||||
int opindex;
|
||||
bfd_reloc_code_real_type reloc;
|
||||
};
|
||||
struct mn10x00_fixup fixups[MAX_INSN_FIXUPS];
|
||||
struct mn10300_fixup fixups[MAX_INSN_FIXUPS];
|
||||
static int fc;
|
||||
|
||||
const char *md_shortopts = "";
|
||||
@ -88,7 +88,7 @@ const pseudo_typeS md_pseudo_table[] =
|
||||
};
|
||||
|
||||
/* Opcode hash table. */
|
||||
static struct hash_control *mn10x00_hash;
|
||||
static struct hash_control *mn10300_hash;
|
||||
|
||||
/* This table is sorted. Suitable for searching by a binary search. */
|
||||
static const struct reg_name pre_defined_registers[] =
|
||||
@ -345,7 +345,7 @@ void
|
||||
md_show_usage (stream)
|
||||
FILE *stream;
|
||||
{
|
||||
fprintf(stream, "MN10x00 options:\n\
|
||||
fprintf(stream, "MN10300 options:\n\
|
||||
none yet\n");
|
||||
}
|
||||
|
||||
@ -429,29 +429,29 @@ void
|
||||
md_begin ()
|
||||
{
|
||||
char *prev_name = "";
|
||||
register const struct mn10x00_opcode *op;
|
||||
register const struct mn10300_opcode *op;
|
||||
|
||||
mn10x00_hash = hash_new();
|
||||
mn10300_hash = hash_new();
|
||||
|
||||
/* Insert unique names into hash table. The MN10x00 instruction set
|
||||
/* Insert unique names into hash table. The MN10300 instruction set
|
||||
has many identical opcode names that have different opcodes based
|
||||
on the operands. This hash table then provides a quick index to
|
||||
the first opcode with a particular name in the opcode table. */
|
||||
|
||||
op = mn10x00_opcodes;
|
||||
op = mn10300_opcodes;
|
||||
while (op->name)
|
||||
{
|
||||
if (strcmp (prev_name, op->name))
|
||||
{
|
||||
prev_name = (char *) op->name;
|
||||
hash_insert (mn10x00_hash, op->name, (char *) op);
|
||||
hash_insert (mn10300_hash, op->name, (char *) op);
|
||||
}
|
||||
op++;
|
||||
}
|
||||
}
|
||||
|
||||
static bfd_reloc_code_real_type
|
||||
mn10x00_reloc_prefix()
|
||||
mn10300_reloc_prefix()
|
||||
{
|
||||
if (strncmp(input_line_pointer, "hi0(", 4) == 0)
|
||||
{
|
||||
@ -479,8 +479,8 @@ md_assemble (str)
|
||||
char *str;
|
||||
{
|
||||
char *s;
|
||||
struct mn10x00_opcode *opcode;
|
||||
struct mn10x00_opcode *next_opcode;
|
||||
struct mn10300_opcode *opcode;
|
||||
struct mn10300_opcode *next_opcode;
|
||||
const unsigned char *opindex_ptr;
|
||||
int next_opindex;
|
||||
unsigned long insn, size;
|
||||
@ -496,7 +496,7 @@ md_assemble (str)
|
||||
*s++ = '\0';
|
||||
|
||||
/* find the first opcode with the proper name */
|
||||
opcode = (struct mn10x00_opcode *)hash_find (mn10x00_hash, str);
|
||||
opcode = (struct mn10300_opcode *)hash_find (mn10300_hash, str);
|
||||
if (opcode == NULL)
|
||||
{
|
||||
as_bad ("Unrecognized opcode: `%s'", str);
|
||||
@ -519,17 +519,17 @@ md_assemble (str)
|
||||
insn = opcode->opcode;
|
||||
for (opindex_ptr = opcode->operands; *opindex_ptr != 0; opindex_ptr++)
|
||||
{
|
||||
const struct mn10x00_operand *operand;
|
||||
const struct mn10300_operand *operand;
|
||||
char *hold;
|
||||
expressionS ex;
|
||||
|
||||
if (next_opindex == 0)
|
||||
{
|
||||
operand = &mn10x00_operands[*opindex_ptr];
|
||||
operand = &mn10300_operands[*opindex_ptr];
|
||||
}
|
||||
else
|
||||
{
|
||||
operand = &mn10x00_operands[next_opindex];
|
||||
operand = &mn10300_operands[next_opindex];
|
||||
next_opindex = 0;
|
||||
}
|
||||
|
||||
@ -544,7 +544,7 @@ md_assemble (str)
|
||||
|
||||
|
||||
/* lo(), hi(), hi0(), etc... */
|
||||
if ((reloc = mn10x00_reloc_prefix()) != BFD_RELOC_UNUSED)
|
||||
if ((reloc = mn10300_reloc_prefix()) != BFD_RELOC_UNUSED)
|
||||
{
|
||||
expression(&ex);
|
||||
|
||||
@ -575,7 +575,7 @@ md_assemble (str)
|
||||
break;
|
||||
}
|
||||
|
||||
insn = mn10x00_insert_operand (insn, operand, ex.X_add_number,
|
||||
insn = mn10300_insert_operand (insn, operand, ex.X_add_number,
|
||||
(char *) NULL, 0);
|
||||
}
|
||||
else
|
||||
@ -601,12 +601,12 @@ md_assemble (str)
|
||||
goto error;
|
||||
case O_register:
|
||||
|
||||
insn = mn10x00_insert_operand (insn, operand, ex.X_add_number,
|
||||
insn = mn10300_insert_operand (insn, operand, ex.X_add_number,
|
||||
(char *) NULL, 0);
|
||||
break;
|
||||
|
||||
case O_constant:
|
||||
insn = mn10x00_insert_operand (insn, operand, ex.X_add_number,
|
||||
insn = mn10300_insert_operand (insn, operand, ex.X_add_number,
|
||||
(char *) NULL, 0);
|
||||
break;
|
||||
|
||||
@ -673,9 +673,9 @@ md_assemble (str)
|
||||
md_apply_fix. */
|
||||
for (i = 0; i < fc; i++)
|
||||
{
|
||||
const struct mn10x00_operand *operand;
|
||||
const struct mn10300_operand *operand;
|
||||
|
||||
operand = &mn10x00_operands[fixups[i].opindex];
|
||||
operand = &mn10300_operands[fixups[i].opindex];
|
||||
if (fixups[i].reloc != BFD_RELOC_UNUSED)
|
||||
{
|
||||
reloc_howto_type *reloc_howto = bfd_reloc_type_lookup (stdoutput, fixups[i].reloc);
|
||||
@ -701,7 +701,7 @@ md_assemble (str)
|
||||
{
|
||||
fix_new_exp (frag_now, f - frag_now->fr_literal, 4,
|
||||
&fixups[i].exp,
|
||||
1 /* FIXME: MN10x00_OPERAND_RELATIVE ??? */,
|
||||
1 /* FIXME: MN10300_OPERAND_RELATIVE ??? */,
|
||||
((bfd_reloc_code_real_type)
|
||||
(fixups[i].opindex + (int) BFD_RELOC_UNUSED)));
|
||||
}
|
||||
@ -790,12 +790,12 @@ md_apply_fix3 (fixp, valuep, seg)
|
||||
if ((int) fixp->fx_r_type >= (int) BFD_RELOC_UNUSED)
|
||||
{
|
||||
int opindex;
|
||||
const struct mn10x00_operand *operand;
|
||||
const struct mn10300_operand *operand;
|
||||
char *where;
|
||||
unsigned long insn;
|
||||
|
||||
opindex = (int) fixp->fx_r_type - (int) BFD_RELOC_UNUSED;
|
||||
operand = &mn10x00_operands[opindex];
|
||||
operand = &mn10300_operands[opindex];
|
||||
|
||||
/* Fetch the instruction, insert the fully resolved operand
|
||||
value, and stuff the instruction back again.
|
||||
@ -805,7 +805,7 @@ md_apply_fix3 (fixp, valuep, seg)
|
||||
where = fixp->fx_frag->fr_literal + fixp->fx_where;
|
||||
|
||||
insn = bfd_getl32((unsigned char *) where);
|
||||
insn = mn10x00_insert_operand (insn, operand, (offsetT) value,
|
||||
insn = mn10300_insert_operand (insn, operand, (offsetT) value,
|
||||
fixp->fx_file, fixp->fx_line);
|
||||
bfd_putl32((bfd_vma) insn, (unsigned char *) where);
|
||||
|
||||
@ -845,9 +845,9 @@ md_apply_fix3 (fixp, valuep, seg)
|
||||
/* Insert an operand value into an instruction. */
|
||||
|
||||
static unsigned long
|
||||
mn10x00_insert_operand (insn, operand, val, file, line)
|
||||
mn10300_insert_operand (insn, operand, val, file, line)
|
||||
unsigned long insn;
|
||||
const struct mn10x00_operand *operand;
|
||||
const struct mn10300_operand *operand;
|
||||
offsetT val;
|
||||
char *file;
|
||||
unsigned int line;
|
@ -1,48 +0,0 @@
|
||||
/* tc-mn10x00.h -- Header file for tc-mn10x00.c.
|
||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GAS, the GNU Assembler.
|
||||
|
||||
GAS 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, or (at your option)
|
||||
any later version.
|
||||
|
||||
GAS 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 GAS; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#define TC_MN10x00
|
||||
|
||||
#ifndef BFD_ASSEMBLER
|
||||
#error MN10x00 support requires BFD_ASSEMBLER
|
||||
#endif
|
||||
|
||||
/* The target BFD architecture. */
|
||||
#define TARGET_ARCH bfd_arch_mn10x00
|
||||
|
||||
#define TARGET_FORMAT "elf32-mn10x00"
|
||||
|
||||
#define MD_APPLY_FIX3
|
||||
#define md_operand(x)
|
||||
|
||||
/* Permit temporary numeric labels. */
|
||||
#define LOCAL_LABELS_FB 1
|
||||
|
||||
#define LOCAL_LABEL(name) ((name[0] == '.' \
|
||||
&& (name[1] == 'L' || name[1] == '.')) \
|
||||
|| (name[0] == '_' && name[1] == '.' && name[2] == 'L' \
|
||||
&& name[3] == '_'))
|
||||
|
||||
#define FAKE_LABEL_NAME ".L0\001"
|
||||
#define DIFF_EXPR_OK /* .-foo gets turned into PC relative relocs */
|
||||
|
||||
/* We don't need to handle .word strangely. */
|
||||
#define WORKING_DOT_WORD
|
||||
|
||||
#define md_number_to_chars number_to_chars_littleendian
|
3
gas/configure
vendored
3
gas/configure
vendored
@ -876,7 +876,8 @@ for this_target in $target $canon_targets ; do
|
||||
*) targ=mips-lit ;;
|
||||
esac
|
||||
;;
|
||||
mn10x00-*-*) fmt=elf bfd_gas=yes ;;
|
||||
mn10200-*-*) fmt=elf bfd_gas=yes ;;
|
||||
mn10300-*-*) fmt=elf bfd_gas=yes ;;
|
||||
ppc-*-pe | ppc-*-cygwin32 | ppc-*-winnt*)
|
||||
fmt=coff em=pe
|
||||
case "$endian" in
|
||||
|
@ -230,7 +230,8 @@ changequote([,])dnl
|
||||
*) targ=mips-lit ;;
|
||||
esac
|
||||
;;
|
||||
mn10x00-*-*) fmt=elf bfd_gas=yes ;;
|
||||
mn10200-*-*) fmt=elf bfd_gas=yes ;;
|
||||
mn10300-*-*) fmt=elf bfd_gas=yes ;;
|
||||
ppc-*-pe | ppc-*-cygwin32 | ppc-*-winnt*)
|
||||
fmt=coff em=pe
|
||||
case "$endian" in
|
||||
|
@ -1,6 +1,7 @@
|
||||
Thu Oct 3 00:14:04 1996 Jeffrey A Law (law@cygnus.com)
|
||||
Thu Oct 3 09:57:03 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* gas/mn10x00: New directory for Matsushita 10x00 tests.
|
||||
* gas/mn10200, gas/mn10300: New directorys for Matsushita
|
||||
mn10200 and mn10300 tests.
|
||||
|
||||
Tue Oct 1 15:38:28 1996 Ian Lance Taylor <ian@cygnus.com>
|
||||
|
||||
|
@ -48,7 +48,8 @@ m68k
|
||||
m68k-coff
|
||||
macros
|
||||
mips
|
||||
mn10x00
|
||||
mn10200
|
||||
mn10300
|
||||
mri
|
||||
sh
|
||||
sparc
|
||||
|
@ -1,3 +1,8 @@
|
||||
Thu Oct 3 10:33:14 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* dis-asm.h (print_insn_mn10x00): Delete declaration.
|
||||
(print_insn_mn10200, print_insn_mn10300): Declare.
|
||||
|
||||
Wed Oct 2 21:24:43 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* dis-asm.h (print_insn_mn10x00): Declare.
|
||||
|
@ -131,7 +131,8 @@ extern int print_insn_sh PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_shl PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_hppa PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_m88k PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_mn10x00 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_mn10200 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_mn10300 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_ns32k PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_big_powerpc PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_little_powerpc PARAMS ((bfd_vma, disassemble_info*));
|
||||
|
@ -1,3 +1,7 @@
|
||||
Thu Oct 3 10:01:40 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* common.h: Break mn10x00 support into mn10200 and mn10300.
|
||||
|
||||
Wed Oct 2 21:26:43 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* common.h (EM_CYGNUS_MN10x00): Define.
|
||||
|
@ -61,7 +61,8 @@ i960.h
|
||||
m68k.h
|
||||
m88k.h
|
||||
mips.h
|
||||
mn10x00.h
|
||||
mn10200.h
|
||||
mn10300.h
|
||||
np1.h
|
||||
ns32k.h
|
||||
pn.h
|
||||
|
@ -1,3 +1,8 @@
|
||||
Thu Oct 3 10:33:46 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* mn10x00.h: Delete.
|
||||
* mn10200.h, mn10300.h: New files.
|
||||
|
||||
Wed Oct 2 21:31:26 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* mn10x00.h: New file.
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* mn10x00.h -- Header file for Matsushita 10200 and 10300 opcode table
|
||||
/* mn10300.h -- Header file for Matsushita 10300 opcode table
|
||||
Copyright 1996 Free Software Foundation, Inc.
|
||||
Written by Jeff Law, Cygnus Support
|
||||
|
||||
@ -18,12 +18,12 @@ You should have received a copy of the GNU General Public License
|
||||
along with this file; see the file COPYING. If not, write to the Free
|
||||
Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef MN10x00_H
|
||||
#define MN10x00_H
|
||||
#ifndef MN10300_H
|
||||
#define MN10300_H
|
||||
|
||||
/* The opcode table is an array of struct mn10x00_opcode. */
|
||||
/* The opcode table is an array of struct mn10300_opcode. */
|
||||
|
||||
struct mn10x00_opcode
|
||||
struct mn10300_opcode
|
||||
{
|
||||
/* The opcode name. */
|
||||
const char *name;
|
||||
@ -47,13 +47,13 @@ struct mn10x00_opcode
|
||||
/* The table itself is sorted by major opcode number, and is otherwise
|
||||
in the order in which the disassembler should consider
|
||||
instructions. */
|
||||
extern const struct mn10x00_opcode mn10x00_opcodes[];
|
||||
extern const int mn10x00_num_opcodes;
|
||||
extern const struct mn10300_opcode mn10300_opcodes[];
|
||||
extern const int mn10300_num_opcodes;
|
||||
|
||||
|
||||
/* The operands table is an array of struct powerpc_operand. */
|
||||
|
||||
struct mn10x00_operand
|
||||
struct mn10300_operand
|
||||
{
|
||||
/* The number of bits in the operand. */
|
||||
int bits;
|
||||
@ -66,10 +66,10 @@ struct mn10x00_operand
|
||||
};
|
||||
|
||||
/* Elements in the table are retrieved by indexing with values from
|
||||
the operands field of the mn10x00_opcodes table. */
|
||||
the operands field of the mn10300_opcodes table. */
|
||||
|
||||
extern const struct mn10x00_operand mn10x00_operands[];
|
||||
extern const struct mn10300_operand mn10300_operands[];
|
||||
|
||||
/* Values defined for the flags field of a struct mn10x00_operand. */
|
||||
/* Values defined for the flags field of a struct mn10300_operand. */
|
||||
|
||||
#endif /* MN10x00_H */
|
||||
#endif /* MN10300_H */
|
@ -74,6 +74,10 @@ m88k-dis.c
|
||||
makefile.vms
|
||||
mips-dis.c
|
||||
mips-opc.c
|
||||
mn10200-dis.c
|
||||
mn10200-opc.c
|
||||
mn10300-dis.c
|
||||
mn10300-opc.c
|
||||
mpw-config.in
|
||||
mpw-make.sed
|
||||
ns32k-dis.c
|
||||
|
@ -1,3 +1,13 @@
|
||||
Thu Oct 3 10:06:07 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* mn10200-opc.c, mn10300-opc.c: New files.
|
||||
* mn10200-dis.c, mn10300-dis.c: New files.
|
||||
* mn10x00-opc.c, mn10x00-dis.c: Deleted.
|
||||
* disassemble.c: Break mn10x00 support into 10200 and 10300
|
||||
support.
|
||||
* configure.in: Likewise.
|
||||
* configure: Rebuilt.
|
||||
|
||||
Thu Oct 3 15:59:12 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
|
||||
|
||||
* Makefile.in (MOSTLYCLEAN): Move config.log to distclean.
|
||||
|
6
opcodes/mn10x00-dis.c → opcodes/mn10200-dis.c
Executable file → Normal file
6
opcodes/mn10x00-dis.c → opcodes/mn10200-dis.c
Executable file → Normal file
@ -1,4 +1,4 @@
|
||||
/* Disassemble MN10x00 instructions.
|
||||
/* Disassemble MN10200 instructions.
|
||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@ -19,7 +19,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
#include <stdio.h>
|
||||
|
||||
#include "ansidecl.h"
|
||||
#include "opcode/mn10x00.h"
|
||||
#include "opcode/mn10200.h"
|
||||
#include "dis-asm.h"
|
||||
|
||||
static void disassemble PARAMS ((bfd_vma memaddr,
|
||||
@ -27,7 +27,7 @@ static void disassemble PARAMS ((bfd_vma memaddr,
|
||||
unsigned long insn));
|
||||
|
||||
int
|
||||
print_insn_mn10x00 (memaddr, info)
|
||||
print_insn_mn10200 (memaddr, info)
|
||||
bfd_vma memaddr;
|
||||
struct disassemble_info *info;
|
||||
{
|
@ -1,4 +1,4 @@
|
||||
/* Assemble Matsushita MN10x00 instructions.
|
||||
/* Assemble Matsushita MN10200 instructions.
|
||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@ -16,10 +16,10 @@ along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include "ansidecl.h"
|
||||
#include "opcode/mn10x00.h"
|
||||
#include "opcode/mn10200.h"
|
||||
|
||||
|
||||
const struct mn10x00_operand mn10x00_operands[] = {
|
||||
const struct mn10200_operand mn10200_operands[] = {
|
||||
#define UNUSED 0
|
||||
{ 0, 0, 0 },
|
||||
} ;
|
||||
@ -42,10 +42,10 @@ const struct mn10x00_operand mn10x00_operands[] = {
|
||||
specific instructions before more general instructions. It is also
|
||||
sorted by major opcode. */
|
||||
|
||||
const struct mn10x00_opcode mn10x00_opcodes[] = {
|
||||
const struct mn10200_opcode mn10200_opcodes[] = {
|
||||
{ 0, 0, 0, {0}, } } ;
|
||||
|
||||
const int mn10x00_num_opcodes =
|
||||
sizeof (mn10x00_opcodes) / sizeof (mn10x00_opcodes[0]);
|
||||
const int mn10200_num_opcodes =
|
||||
sizeof (mn10200_opcodes) / sizeof (mn10200_opcodes[0]);
|
||||
|
||||
|
34
opcodes/mn10300-dis.c
Normal file
34
opcodes/mn10300-dis.c
Normal file
@ -0,0 +1,34 @@
|
||||
/* Disassemble MN10300 instructions.
|
||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
|
||||
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.
|
||||
|
||||
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 <stdio.h>
|
||||
|
||||
#include "ansidecl.h"
|
||||
#include "opcode/mn10300.h"
|
||||
#include "dis-asm.h"
|
||||
|
||||
static void disassemble PARAMS ((bfd_vma memaddr,
|
||||
struct disassemble_info *info,
|
||||
unsigned long insn));
|
||||
|
||||
int
|
||||
print_insn_mn10300 (memaddr, info)
|
||||
bfd_vma memaddr;
|
||||
struct disassemble_info *info;
|
||||
{
|
||||
}
|
51
opcodes/mn10300-opc.c
Normal file
51
opcodes/mn10300-opc.c
Normal file
@ -0,0 +1,51 @@
|
||||
/* Assemble Matsushita MN10300 instructions.
|
||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
|
||||
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.
|
||||
|
||||
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 "ansidecl.h"
|
||||
#include "opcode/mn10300.h"
|
||||
|
||||
|
||||
const struct mn10300_operand mn10300_operands[] = {
|
||||
#define UNUSED 0
|
||||
{ 0, 0, 0 },
|
||||
} ;
|
||||
|
||||
|
||||
/* The opcode table.
|
||||
|
||||
The format of the opcode table is:
|
||||
|
||||
NAME OPCODE MASK { OPERANDS }
|
||||
|
||||
NAME is the name of the instruction.
|
||||
OPCODE is the instruction opcode.
|
||||
MASK is the opcode mask; this is used to tell the disassembler
|
||||
which bits in the actual opcode must match OPCODE.
|
||||
OPERANDS is the list of operands.
|
||||
|
||||
The disassembler reads the table in order and prints the first
|
||||
instruction which matches, so this table is sorted to put more
|
||||
specific instructions before more general instructions. It is also
|
||||
sorted by major opcode. */
|
||||
|
||||
const struct mn10300_opcode mn10300_opcodes[] = {
|
||||
{ 0, 0, 0, {0}, } } ;
|
||||
|
||||
const int mn10300_num_opcodes =
|
||||
sizeof (mn10300_opcodes) / sizeof (mn10300_opcodes[0]);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user