mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-28 23:39:35 +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:
@ -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)
|
Wed Oct 2 22:27:52 1996 Jeffrey A Law (law@cygnus.com)
|
||||||
|
|
||||||
* configure.in: Add lots of stuff to noconfigdirs for
|
* configure.in: Add lots of stuff to noconfigdirs for
|
||||||
|
@ -137,7 +137,8 @@ cpu-i960.c
|
|||||||
cpu-m68k.c
|
cpu-m68k.c
|
||||||
cpu-m88k.c
|
cpu-m88k.c
|
||||||
cpu-mips.c
|
cpu-mips.c
|
||||||
cpu-mn10x00.c
|
cpu-mn10200.c
|
||||||
|
cpu-mn10300.c
|
||||||
cpu-ns32k.c
|
cpu-ns32k.c
|
||||||
cpu-powerpc.c
|
cpu-powerpc.c
|
||||||
cpu-rs6000.c
|
cpu-rs6000.c
|
||||||
@ -163,7 +164,8 @@ elf32-i860.c
|
|||||||
elf32-m68k.c
|
elf32-m68k.c
|
||||||
elf32-m88k.c
|
elf32-m88k.c
|
||||||
elf32-mips.c
|
elf32-mips.c
|
||||||
elf32-mn10x00.c
|
elf32-mn10200.c
|
||||||
|
elf32-mn10300.c
|
||||||
elf32-ppc.c
|
elf32-ppc.c
|
||||||
elf32-sh.c
|
elf32-sh.c
|
||||||
elf32-sparc.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)
|
Thu Oct 3 15:38:19 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
|
||||||
|
|
||||||
* Makefile.in (do_clean): Move config.log to do_distclean.
|
* Makefile.in (do_clean): Move config.log to do_distclean.
|
||||||
|
@ -131,7 +131,8 @@ ALL_MACHINES = \
|
|||||||
cpu-m68k.o \
|
cpu-m68k.o \
|
||||||
cpu-m88k.o \
|
cpu-m88k.o \
|
||||||
cpu-mips.o \
|
cpu-mips.o \
|
||||||
cpu-mn10x00.o \
|
cpu-mn10200.o \
|
||||||
|
cpu-mn10300.o \
|
||||||
cpu-ns32k.o \
|
cpu-ns32k.o \
|
||||||
cpu-powerpc.o \
|
cpu-powerpc.o \
|
||||||
cpu-rs6000.o \
|
cpu-rs6000.o \
|
||||||
@ -219,7 +220,8 @@ BFD32_BACKENDS = \
|
|||||||
elf32-m68k.o \
|
elf32-m68k.o \
|
||||||
elf32-m88k.o \
|
elf32-m88k.o \
|
||||||
elf32-mips.o \
|
elf32-mips.o \
|
||||||
elf32-mn10x00.o \
|
elf32-mn10200.o \
|
||||||
|
elf32-mn10300.o \
|
||||||
elf32-ppc.o \
|
elf32-ppc.o \
|
||||||
elf32-sh.o \
|
elf32-sh.o \
|
||||||
elf32-sparc.o \
|
elf32-sparc.o \
|
||||||
@ -827,7 +829,11 @@ elf32-m32r.o: elf32-m32r.c elf-bfd.h $(INCDIR)/elf/common.h \
|
|||||||
elf32-target.h
|
elf32-target.h
|
||||||
end-sanitize-m32r:
|
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 \
|
$(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
|
||||||
elf32-target.h
|
elf32-target.h
|
||||||
|
|
||||||
|
@ -1229,7 +1229,8 @@ enum bfd_architecture
|
|||||||
/* start-sanitize-m32r */
|
/* start-sanitize-m32r */
|
||||||
bfd_arch_m32r, /* Mitsubishi M32R */
|
bfd_arch_m32r, /* Mitsubishi M32R */
|
||||||
/* end-sanitize-m32r */
|
/* end-sanitize-m32r */
|
||||||
bfd_arch_mn10x00, /* Matsushita MN10x00 */
|
bfd_arch_mn10200, /* Matsushita MN10200 */
|
||||||
|
bfd_arch_mn10300, /* Matsushita MN10300 */
|
||||||
bfd_arch_last
|
bfd_arch_last
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -393,8 +393,12 @@ case "${targ}" in
|
|||||||
targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
|
targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
mn10x00-*-*)
|
mn10200-*-*)
|
||||||
targ_defvec=bfd_elf32_mn10x00_vec
|
targ_defvec=bfd_elf32_mn10200_vec
|
||||||
|
;;
|
||||||
|
|
||||||
|
mn10300-*-*)
|
||||||
|
targ_defvec=bfd_elf32_mn10300_vec
|
||||||
;;
|
;;
|
||||||
|
|
||||||
ns32k-pc532-mach* | ns32k-pc532-ux*)
|
ns32k-pc532-mach* | ns32k-pc532-ux*)
|
||||||
|
3
bfd/configure
vendored
3
bfd/configure
vendored
@ -1928,7 +1928,8 @@ do
|
|||||||
# end-sanitize-m32r
|
# end-sanitize-m32r
|
||||||
bfd_elf32_m68k_vec) tb="$tb elf32-m68k.o elf32.o $elf" ;;
|
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_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_powerpc_vec) tb="$tb elf32-ppc.o elf32.o $elf" ;;
|
||||||
bfd_elf32_powerpcle_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" ;;
|
bfd_elf32_sh_vec) tb="$tb elf32-sh.o elf32.o $elf coff-sh.o" ;;
|
||||||
|
@ -456,7 +456,8 @@ do
|
|||||||
# end-sanitize-m32r
|
# end-sanitize-m32r
|
||||||
bfd_elf32_m68k_vec) tb="$tb elf32-m68k.o elf32.o $elf" ;;
|
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_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_powerpc_vec) tb="$tb elf32-ppc.o elf32.o $elf" ;;
|
||||||
bfd_elf32_powerpcle_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" ;;
|
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.
|
Copyright 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
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 */
|
16, /* 16 bits in a word */
|
||||||
24, /* 16 bits in an address */
|
24, /* 16 bits in an address */
|
||||||
8, /* 8 bits in a byte */
|
8, /* 8 bits in a byte */
|
||||||
bfd_arch_mn10x00,
|
bfd_arch_mn10200,
|
||||||
200,
|
200,
|
||||||
"mn10x00",
|
"mn10200",
|
||||||
"mn10200",
|
"mn10200",
|
||||||
2,
|
2,
|
||||||
true, /* the one and only */
|
true, /* the one and only */
|
||||||
@ -36,19 +36,3 @@ const bfd_arch_info_type bfd_mn10200_arch =
|
|||||||
bfd_default_scan ,
|
bfd_default_scan ,
|
||||||
0,
|
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
|
/* Matsushita 10200 specific support for 32-bit ELF
|
||||||
Copyright (C) 1994, 1995 Free Software Foundation, Inc.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of BFD, the Binary File Descriptor library.
|
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
|
static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
|
||||||
PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
|
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 *));
|
PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
|
||||||
|
|
||||||
/* Try to minimize the amount of space occupied by relocation tables
|
/* 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
|
enum reloc_type
|
||||||
{
|
{
|
||||||
R_MN10x00_NONE = 0,
|
R_MN10200_NONE = 0,
|
||||||
R_MN10x00_MAX
|
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,
|
0,
|
||||||
2,
|
2,
|
||||||
16,
|
16,
|
||||||
@ -48,22 +48,22 @@ static reloc_howto_type elf_mn10x00_howto_table[] =
|
|||||||
0,
|
0,
|
||||||
complain_overflow_bitfield,
|
complain_overflow_bitfield,
|
||||||
bfd_elf_generic_reloc,
|
bfd_elf_generic_reloc,
|
||||||
"R_MN10x00_NONE",
|
"R_MN10200_NONE",
|
||||||
false,
|
false,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
false),
|
false),
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mn10x00_reloc_map
|
struct mn10200_reloc_map
|
||||||
{
|
{
|
||||||
unsigned char bfd_reloc_val;
|
unsigned char bfd_reloc_val;
|
||||||
unsigned char elf_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 *
|
static reloc_howto_type *
|
||||||
@ -74,11 +74,11 @@ bfd_elf32_bfd_reloc_type_lookup (abfd, code)
|
|||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
for (i = 0;
|
for (i = 0;
|
||||||
i < sizeof (mn10x00_reloc_map) / sizeof (struct mn10x00_reloc_map);
|
i < sizeof (mn10200_reloc_map) / sizeof (struct mn10200_reloc_map);
|
||||||
i++)
|
i++)
|
||||||
{
|
{
|
||||||
if (mn10x00_reloc_map[i].bfd_reloc_val == code)
|
if (mn10200_reloc_map[i].bfd_reloc_val == code)
|
||||||
return &elf_mn10x00_howto_table[mn10x00_reloc_map[i].elf_reloc_val];
|
return &elf_mn10200_howto_table[mn10200_reloc_map[i].elf_reloc_val];
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -87,7 +87,7 @@ bfd_elf32_bfd_reloc_type_lookup (abfd, code)
|
|||||||
/* Set the howto pointer for an V850 ELF reloc. */
|
/* Set the howto pointer for an V850 ELF reloc. */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
mn10x00_info_to_howto_rel (abfd, cache_ptr, dst)
|
mn10200_info_to_howto_rel (abfd, cache_ptr, dst)
|
||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
arelent *cache_ptr;
|
arelent *cache_ptr;
|
||||||
Elf32_Internal_Rel *dst;
|
Elf32_Internal_Rel *dst;
|
||||||
@ -95,17 +95,17 @@ mn10x00_info_to_howto_rel (abfd, cache_ptr, dst)
|
|||||||
unsigned int r_type;
|
unsigned int r_type;
|
||||||
|
|
||||||
r_type = ELF32_R_TYPE (dst->r_info);
|
r_type = ELF32_R_TYPE (dst->r_info);
|
||||||
BFD_ASSERT (r_type < (unsigned int) R_MN10x00_MAX);
|
BFD_ASSERT (r_type < (unsigned int) R_MN10200_MAX);
|
||||||
cache_ptr->howto = &elf_mn10x00_howto_table[r_type];
|
cache_ptr->howto = &elf_mn10200_howto_table[r_type];
|
||||||
}
|
}
|
||||||
|
|
||||||
#define TARGET_LITTLE_SYM bfd_elf32_mn10x00_vec
|
#define TARGET_LITTLE_SYM bfd_elf32_mn10200_vec
|
||||||
#define TARGET_LITTLE_NAME "elf32-mn10x00"
|
#define TARGET_LITTLE_NAME "elf32-mn10200"
|
||||||
#define ELF_ARCH bfd_arch_mn10x00
|
#define ELF_ARCH bfd_arch_mn10200
|
||||||
#define ELF_MACHINE_CODE EM_CYGNUS_MN10x00
|
#define ELF_MACHINE_CODE EM_CYGNUS_MN10200
|
||||||
#define ELF_MAXPAGESIZE 0x1000
|
#define ELF_MAXPAGESIZE 0x1000
|
||||||
|
|
||||||
#define elf_info_to_howto 0
|
#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"
|
#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 */
|
/* end-sanitize-m32r */
|
||||||
extern const bfd_target bfd_elf32_m68k_vec;
|
extern const bfd_target bfd_elf32_m68k_vec;
|
||||||
extern const bfd_target bfd_elf32_m88k_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_powerpc_vec;
|
||||||
extern const bfd_target bfd_elf32_powerpcle_vec;
|
extern const bfd_target bfd_elf32_powerpcle_vec;
|
||||||
extern const bfd_target bfd_elf32_sh_vec;
|
extern const bfd_target bfd_elf32_sh_vec;
|
||||||
@ -664,7 +665,8 @@ const bfd_target * const bfd_target_vector[] = {
|
|||||||
/* start-sanitize-m32r */
|
/* start-sanitize-m32r */
|
||||||
&bfd_elf32_m32r_vec,
|
&bfd_elf32_m32r_vec,
|
||||||
/* end-sanitize-m32r */
|
/* end-sanitize-m32r */
|
||||||
&bfd_elf32_mn10x00_vec,
|
&bfd_elf32_mn10200_vec,
|
||||||
|
&bfd_elf32_mn10300_vec,
|
||||||
&bfd_elf32_m68k_vec,
|
&bfd_elf32_m68k_vec,
|
||||||
&bfd_elf32_m88k_vec,
|
&bfd_elf32_m88k_vec,
|
||||||
&bfd_elf32_sparc_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
|
basic_machine=$basic_machine-unknown
|
||||||
;;
|
;;
|
||||||
# end-sanitize-m32r
|
# end-sanitize-m32r
|
||||||
mn10x00)
|
mn10200)
|
||||||
|
basic_machine=$basic_machine-unknown
|
||||||
|
;;
|
||||||
|
mn10300)
|
||||||
basic_machine=$basic_machine-unknown
|
basic_machine=$basic_machine-unknown
|
||||||
;;
|
;;
|
||||||
# Object if more than one company name word.
|
# Object if more than one company name word.
|
||||||
|
@ -490,7 +490,10 @@ case "${target}" in
|
|||||||
noconfigdirs="$noconfigdirs target-libgloss libio libstdc++ libg++ gdb"
|
noconfigdirs="$noconfigdirs target-libgloss libio libstdc++ libg++ gdb"
|
||||||
;;
|
;;
|
||||||
# end-sanitize-m32r
|
# 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++"
|
noconfigdirs="$noconfigdirs ld gcc gdb target-libiberty target-libgloss target-newlib target-libio target-librx target-libstdc++ target-libg++"
|
||||||
;;
|
;;
|
||||||
powerpc-*-aix*)
|
powerpc-*-aix*)
|
||||||
|
@ -120,8 +120,10 @@ tc-m88k.c
|
|||||||
tc-m88k.h
|
tc-m88k.h
|
||||||
tc-mips.c
|
tc-mips.c
|
||||||
tc-mips.h
|
tc-mips.h
|
||||||
tc-mn10x00.c
|
tc-mn10200.c
|
||||||
tc-mn10x00.h
|
tc-mn10200.h
|
||||||
|
tc-mn10300.c
|
||||||
|
tc-mn10300.h
|
||||||
tc-ns32k.c
|
tc-ns32k.c
|
||||||
tc-ns32k.h
|
tc-ns32k.h
|
||||||
tc-ppc.c
|
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.
|
Copyright (C) 1996 Free Software Foundation.
|
||||||
|
|
||||||
@ -23,7 +23,7 @@
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include "as.h"
|
#include "as.h"
|
||||||
#include "subsegs.h"
|
#include "subsegs.h"
|
||||||
#include "opcode/mn10x00.h"
|
#include "opcode/mn10300.h"
|
||||||
|
|
||||||
/* Structure to hold information about predefined registers. */
|
/* Structure to hold information about predefined registers. */
|
||||||
struct reg_name
|
struct reg_name
|
||||||
@ -54,25 +54,25 @@ const char FLT_CHARS[] = "dD";
|
|||||||
|
|
||||||
|
|
||||||
/* local functions */
|
/* local functions */
|
||||||
static unsigned long mn10x00
|
static unsigned long mn10300
|
||||||
PARAMS ((unsigned long insn, const struct mn10x00_operand *operand,
|
PARAMS ((unsigned long insn, const struct mn10300_operand *operand,
|
||||||
offsetT val, char *file, unsigned int line));
|
offsetT val, char *file, unsigned int line));
|
||||||
static int reg_name_search PARAMS ((const struct reg_name *, int, const char *));
|
static int reg_name_search PARAMS ((const struct reg_name *, int, const char *));
|
||||||
static boolean register_name PARAMS ((expressionS *expressionP));
|
static boolean register_name PARAMS ((expressionS *expressionP));
|
||||||
static boolean system_register_name PARAMS ((expressionS *expressionP));
|
static boolean system_register_name PARAMS ((expressionS *expressionP));
|
||||||
static boolean cc_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 */
|
/* fixups */
|
||||||
#define MAX_INSN_FIXUPS (5)
|
#define MAX_INSN_FIXUPS (5)
|
||||||
struct mn10x00_fixup
|
struct mn10300_fixup
|
||||||
{
|
{
|
||||||
expressionS exp;
|
expressionS exp;
|
||||||
int opindex;
|
int opindex;
|
||||||
bfd_reloc_code_real_type reloc;
|
bfd_reloc_code_real_type reloc;
|
||||||
};
|
};
|
||||||
struct mn10x00_fixup fixups[MAX_INSN_FIXUPS];
|
struct mn10300_fixup fixups[MAX_INSN_FIXUPS];
|
||||||
static int fc;
|
static int fc;
|
||||||
|
|
||||||
const char *md_shortopts = "";
|
const char *md_shortopts = "";
|
||||||
@ -88,7 +88,7 @@ const pseudo_typeS md_pseudo_table[] =
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Opcode hash 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. */
|
/* This table is sorted. Suitable for searching by a binary search. */
|
||||||
static const struct reg_name pre_defined_registers[] =
|
static const struct reg_name pre_defined_registers[] =
|
||||||
@ -345,7 +345,7 @@ void
|
|||||||
md_show_usage (stream)
|
md_show_usage (stream)
|
||||||
FILE *stream;
|
FILE *stream;
|
||||||
{
|
{
|
||||||
fprintf(stream, "MN10x00 options:\n\
|
fprintf(stream, "MN10300 options:\n\
|
||||||
none yet\n");
|
none yet\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -429,29 +429,29 @@ void
|
|||||||
md_begin ()
|
md_begin ()
|
||||||
{
|
{
|
||||||
char *prev_name = "";
|
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
|
has many identical opcode names that have different opcodes based
|
||||||
on the operands. This hash table then provides a quick index to
|
on the operands. This hash table then provides a quick index to
|
||||||
the first opcode with a particular name in the opcode table. */
|
the first opcode with a particular name in the opcode table. */
|
||||||
|
|
||||||
op = mn10x00_opcodes;
|
op = mn10300_opcodes;
|
||||||
while (op->name)
|
while (op->name)
|
||||||
{
|
{
|
||||||
if (strcmp (prev_name, op->name))
|
if (strcmp (prev_name, op->name))
|
||||||
{
|
{
|
||||||
prev_name = (char *) op->name;
|
prev_name = (char *) op->name;
|
||||||
hash_insert (mn10x00_hash, op->name, (char *) op);
|
hash_insert (mn10300_hash, op->name, (char *) op);
|
||||||
}
|
}
|
||||||
op++;
|
op++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bfd_reloc_code_real_type
|
static bfd_reloc_code_real_type
|
||||||
mn10x00_reloc_prefix()
|
mn10300_reloc_prefix()
|
||||||
{
|
{
|
||||||
if (strncmp(input_line_pointer, "hi0(", 4) == 0)
|
if (strncmp(input_line_pointer, "hi0(", 4) == 0)
|
||||||
{
|
{
|
||||||
@ -479,8 +479,8 @@ md_assemble (str)
|
|||||||
char *str;
|
char *str;
|
||||||
{
|
{
|
||||||
char *s;
|
char *s;
|
||||||
struct mn10x00_opcode *opcode;
|
struct mn10300_opcode *opcode;
|
||||||
struct mn10x00_opcode *next_opcode;
|
struct mn10300_opcode *next_opcode;
|
||||||
const unsigned char *opindex_ptr;
|
const unsigned char *opindex_ptr;
|
||||||
int next_opindex;
|
int next_opindex;
|
||||||
unsigned long insn, size;
|
unsigned long insn, size;
|
||||||
@ -496,7 +496,7 @@ md_assemble (str)
|
|||||||
*s++ = '\0';
|
*s++ = '\0';
|
||||||
|
|
||||||
/* find the first opcode with the proper name */
|
/* 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)
|
if (opcode == NULL)
|
||||||
{
|
{
|
||||||
as_bad ("Unrecognized opcode: `%s'", str);
|
as_bad ("Unrecognized opcode: `%s'", str);
|
||||||
@ -519,17 +519,17 @@ md_assemble (str)
|
|||||||
insn = opcode->opcode;
|
insn = opcode->opcode;
|
||||||
for (opindex_ptr = opcode->operands; *opindex_ptr != 0; opindex_ptr++)
|
for (opindex_ptr = opcode->operands; *opindex_ptr != 0; opindex_ptr++)
|
||||||
{
|
{
|
||||||
const struct mn10x00_operand *operand;
|
const struct mn10300_operand *operand;
|
||||||
char *hold;
|
char *hold;
|
||||||
expressionS ex;
|
expressionS ex;
|
||||||
|
|
||||||
if (next_opindex == 0)
|
if (next_opindex == 0)
|
||||||
{
|
{
|
||||||
operand = &mn10x00_operands[*opindex_ptr];
|
operand = &mn10300_operands[*opindex_ptr];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
operand = &mn10x00_operands[next_opindex];
|
operand = &mn10300_operands[next_opindex];
|
||||||
next_opindex = 0;
|
next_opindex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -544,7 +544,7 @@ md_assemble (str)
|
|||||||
|
|
||||||
|
|
||||||
/* lo(), hi(), hi0(), etc... */
|
/* lo(), hi(), hi0(), etc... */
|
||||||
if ((reloc = mn10x00_reloc_prefix()) != BFD_RELOC_UNUSED)
|
if ((reloc = mn10300_reloc_prefix()) != BFD_RELOC_UNUSED)
|
||||||
{
|
{
|
||||||
expression(&ex);
|
expression(&ex);
|
||||||
|
|
||||||
@ -575,7 +575,7 @@ md_assemble (str)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
insn = mn10x00_insert_operand (insn, operand, ex.X_add_number,
|
insn = mn10300_insert_operand (insn, operand, ex.X_add_number,
|
||||||
(char *) NULL, 0);
|
(char *) NULL, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -601,12 +601,12 @@ md_assemble (str)
|
|||||||
goto error;
|
goto error;
|
||||||
case O_register:
|
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);
|
(char *) NULL, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case O_constant:
|
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);
|
(char *) NULL, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -673,9 +673,9 @@ md_assemble (str)
|
|||||||
md_apply_fix. */
|
md_apply_fix. */
|
||||||
for (i = 0; i < fc; i++)
|
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)
|
if (fixups[i].reloc != BFD_RELOC_UNUSED)
|
||||||
{
|
{
|
||||||
reloc_howto_type *reloc_howto = bfd_reloc_type_lookup (stdoutput, fixups[i].reloc);
|
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,
|
fix_new_exp (frag_now, f - frag_now->fr_literal, 4,
|
||||||
&fixups[i].exp,
|
&fixups[i].exp,
|
||||||
1 /* FIXME: MN10x00_OPERAND_RELATIVE ??? */,
|
1 /* FIXME: MN10300_OPERAND_RELATIVE ??? */,
|
||||||
((bfd_reloc_code_real_type)
|
((bfd_reloc_code_real_type)
|
||||||
(fixups[i].opindex + (int) BFD_RELOC_UNUSED)));
|
(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)
|
if ((int) fixp->fx_r_type >= (int) BFD_RELOC_UNUSED)
|
||||||
{
|
{
|
||||||
int opindex;
|
int opindex;
|
||||||
const struct mn10x00_operand *operand;
|
const struct mn10300_operand *operand;
|
||||||
char *where;
|
char *where;
|
||||||
unsigned long insn;
|
unsigned long insn;
|
||||||
|
|
||||||
opindex = (int) fixp->fx_r_type - (int) BFD_RELOC_UNUSED;
|
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
|
/* Fetch the instruction, insert the fully resolved operand
|
||||||
value, and stuff the instruction back again.
|
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;
|
where = fixp->fx_frag->fr_literal + fixp->fx_where;
|
||||||
|
|
||||||
insn = bfd_getl32((unsigned char *) 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);
|
fixp->fx_file, fixp->fx_line);
|
||||||
bfd_putl32((bfd_vma) insn, (unsigned char *) where);
|
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. */
|
/* Insert an operand value into an instruction. */
|
||||||
|
|
||||||
static unsigned long
|
static unsigned long
|
||||||
mn10x00_insert_operand (insn, operand, val, file, line)
|
mn10300_insert_operand (insn, operand, val, file, line)
|
||||||
unsigned long insn;
|
unsigned long insn;
|
||||||
const struct mn10x00_operand *operand;
|
const struct mn10300_operand *operand;
|
||||||
offsetT val;
|
offsetT val;
|
||||||
char *file;
|
char *file;
|
||||||
unsigned int line;
|
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 ;;
|
*) targ=mips-lit ;;
|
||||||
esac
|
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*)
|
ppc-*-pe | ppc-*-cygwin32 | ppc-*-winnt*)
|
||||||
fmt=coff em=pe
|
fmt=coff em=pe
|
||||||
case "$endian" in
|
case "$endian" in
|
||||||
|
@ -230,7 +230,8 @@ changequote([,])dnl
|
|||||||
*) targ=mips-lit ;;
|
*) targ=mips-lit ;;
|
||||||
esac
|
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*)
|
ppc-*-pe | ppc-*-cygwin32 | ppc-*-winnt*)
|
||||||
fmt=coff em=pe
|
fmt=coff em=pe
|
||||||
case "$endian" in
|
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>
|
Tue Oct 1 15:38:28 1996 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
||||||
|
@ -48,7 +48,8 @@ m68k
|
|||||||
m68k-coff
|
m68k-coff
|
||||||
macros
|
macros
|
||||||
mips
|
mips
|
||||||
mn10x00
|
mn10200
|
||||||
|
mn10300
|
||||||
mri
|
mri
|
||||||
sh
|
sh
|
||||||
sparc
|
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)
|
Wed Oct 2 21:24:43 1996 Jeffrey A Law (law@cygnus.com)
|
||||||
|
|
||||||
* dis-asm.h (print_insn_mn10x00): Declare.
|
* 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_shl PARAMS ((bfd_vma, disassemble_info*));
|
||||||
extern int print_insn_hppa 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_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_ns32k PARAMS ((bfd_vma, disassemble_info*));
|
||||||
extern int print_insn_big_powerpc 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*));
|
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)
|
Wed Oct 2 21:26:43 1996 Jeffrey A Law (law@cygnus.com)
|
||||||
|
|
||||||
* common.h (EM_CYGNUS_MN10x00): Define.
|
* common.h (EM_CYGNUS_MN10x00): Define.
|
||||||
|
@ -61,7 +61,8 @@ i960.h
|
|||||||
m68k.h
|
m68k.h
|
||||||
m88k.h
|
m88k.h
|
||||||
mips.h
|
mips.h
|
||||||
mn10x00.h
|
mn10200.h
|
||||||
|
mn10300.h
|
||||||
np1.h
|
np1.h
|
||||||
ns32k.h
|
ns32k.h
|
||||||
pn.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)
|
Wed Oct 2 21:31:26 1996 Jeffrey A Law (law@cygnus.com)
|
||||||
|
|
||||||
* mn10x00.h: New file.
|
* 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.
|
Copyright 1996 Free Software Foundation, Inc.
|
||||||
Written by Jeff Law, Cygnus Support
|
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
|
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. */
|
Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
#ifndef MN10x00_H
|
#ifndef MN10300_H
|
||||||
#define MN10x00_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. */
|
/* The opcode name. */
|
||||||
const char *name;
|
const char *name;
|
||||||
@ -47,13 +47,13 @@ struct mn10x00_opcode
|
|||||||
/* The table itself is sorted by major opcode number, and is otherwise
|
/* The table itself is sorted by major opcode number, and is otherwise
|
||||||
in the order in which the disassembler should consider
|
in the order in which the disassembler should consider
|
||||||
instructions. */
|
instructions. */
|
||||||
extern const struct mn10x00_opcode mn10x00_opcodes[];
|
extern const struct mn10300_opcode mn10300_opcodes[];
|
||||||
extern const int mn10x00_num_opcodes;
|
extern const int mn10300_num_opcodes;
|
||||||
|
|
||||||
|
|
||||||
/* The operands table is an array of struct powerpc_operand. */
|
/* The operands table is an array of struct powerpc_operand. */
|
||||||
|
|
||||||
struct mn10x00_operand
|
struct mn10300_operand
|
||||||
{
|
{
|
||||||
/* The number of bits in the operand. */
|
/* The number of bits in the operand. */
|
||||||
int bits;
|
int bits;
|
||||||
@ -66,10 +66,10 @@ struct mn10x00_operand
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Elements in the table are retrieved by indexing with values from
|
/* 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
|
makefile.vms
|
||||||
mips-dis.c
|
mips-dis.c
|
||||||
mips-opc.c
|
mips-opc.c
|
||||||
|
mn10200-dis.c
|
||||||
|
mn10200-opc.c
|
||||||
|
mn10300-dis.c
|
||||||
|
mn10300-opc.c
|
||||||
mpw-config.in
|
mpw-config.in
|
||||||
mpw-make.sed
|
mpw-make.sed
|
||||||
ns32k-dis.c
|
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)
|
Thu Oct 3 15:59:12 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
|
||||||
|
|
||||||
* Makefile.in (MOSTLYCLEAN): Move config.log to distclean.
|
* 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.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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 <stdio.h>
|
||||||
|
|
||||||
#include "ansidecl.h"
|
#include "ansidecl.h"
|
||||||
#include "opcode/mn10x00.h"
|
#include "opcode/mn10200.h"
|
||||||
#include "dis-asm.h"
|
#include "dis-asm.h"
|
||||||
|
|
||||||
static void disassemble PARAMS ((bfd_vma memaddr,
|
static void disassemble PARAMS ((bfd_vma memaddr,
|
||||||
@ -27,7 +27,7 @@ static void disassemble PARAMS ((bfd_vma memaddr,
|
|||||||
unsigned long insn));
|
unsigned long insn));
|
||||||
|
|
||||||
int
|
int
|
||||||
print_insn_mn10x00 (memaddr, info)
|
print_insn_mn10200 (memaddr, info)
|
||||||
bfd_vma memaddr;
|
bfd_vma memaddr;
|
||||||
struct disassemble_info *info;
|
struct disassemble_info *info;
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
/* Assemble Matsushita MN10x00 instructions.
|
/* Assemble Matsushita MN10200 instructions.
|
||||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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. */
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
#include "ansidecl.h"
|
#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
|
#define UNUSED 0
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
} ;
|
} ;
|
||||||
@ -42,10 +42,10 @@ const struct mn10x00_operand mn10x00_operands[] = {
|
|||||||
specific instructions before more general instructions. It is also
|
specific instructions before more general instructions. It is also
|
||||||
sorted by major opcode. */
|
sorted by major opcode. */
|
||||||
|
|
||||||
const struct mn10x00_opcode mn10x00_opcodes[] = {
|
const struct mn10200_opcode mn10200_opcodes[] = {
|
||||||
{ 0, 0, 0, {0}, } } ;
|
{ 0, 0, 0, {0}, } } ;
|
||||||
|
|
||||||
const int mn10x00_num_opcodes =
|
const int mn10200_num_opcodes =
|
||||||
sizeof (mn10x00_opcodes) / sizeof (mn10x00_opcodes[0]);
|
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]);
|
||||||
|
|
||||||
|
|
Reference in New Issue
Block a user