Add support for OpenRISC 32-bit embedded processor

This commit is contained in:
Nick Clifton 2002-01-31 17:33:08 +00:00
parent 6d9c411afd
commit 3b16e843f2
67 changed files with 15515 additions and 7366 deletions

View File

@ -1,3 +1,22 @@
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
* coff-or32.c: New file.
* cpu-or32.c: New file.
* elf32-or32.c: New file.
* archures.c: Add support for or32.
* targets.c: Add support for or32.
* bfd-in2.h: Regenerate.
* coffcode.h (coff_set_arch_mach_hook, coff_set_flags,
coff_write_object_contents): Add support for or32.
* config.bfd: Add target.
* configure.in: Add support for or32.
* configure: Regenerate.
* Makefile.am: Add support for or32.
* Makefile.in: Regenerate.
* doc/Makefile.in: Regenerate.
* po/SRC-POTFILES.in: Add or32 files.
* po/bfd.pot: Regenerate.
2002-01-31 Nick Clifton <nickc@cambridge.redhat.com>
Don Lindsay <lindsayd@cisco.com>

View File

@ -73,6 +73,7 @@ ALL_MACHINES = \
cpu-mcore.lo \
cpu-mips.lo \
cpu-mmix.lo \
cpu-or32.lo \
cpu-ns32k.lo \
cpu-openrisc.lo \
cpu-pdp11.lo \
@ -120,6 +121,7 @@ ALL_MACHINES_CFILES = \
cpu-mcore.c \
cpu-mips.c \
cpu-mmix.c \
cpu-or32.c \
cpu-ns32k.c \
cpu-openrisc.c \
cpu-pdp11.c \
@ -168,6 +170,7 @@ BFD32_BACKENDS = \
coff-m68k.lo \
coff-m88k.lo \
coff-mips.lo \
coff-or32.lo \
coff-rs6000.lo \
coff-sh.lo \
coff-sparc.lo \
@ -212,6 +215,7 @@ BFD32_BACKENDS = \
elf32-mcore.lo \
elf32-mips.lo \
elf32-openrisc.lo \
elf32-or32.lo \
elf32-pj.lo \
elf32-ppc.lo \
elf32-s390.lo \
@ -313,6 +317,7 @@ BFD32_BACKENDS_CFILES = \
coff-m68k.c \
coff-m88k.c \
coff-mips.c \
coff-or32.c \
coff-rs6000.c \
coff-sh.c \
coff-sparc.c \
@ -356,6 +361,7 @@ BFD32_BACKENDS_CFILES = \
elf32-mcore.c \
elf32-mips.c \
elf32-openrisc.c \
elf32-or32.c \
elf32-pj.c \
elf32-ppc.c \
elf32-s390.c \
@ -1113,6 +1119,10 @@ elf32-openrisc.lo: elf32-openrisc.c $(INCDIR)/filenames.h \
$(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/openrisc.h \
$(INCDIR)/elf/reloc-macros.h $(INCDIR)/libiberty.h \
elf32-target.h
elf32-or32.lo: elf32-or32.c $(INCDIR)/filenames.h elf-bfd.h \
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
$(INCDIR)/bfdlink.h $(INCDIR)/elf/avr.h $(INCDIR)/elf/reloc-macros.h \
elf32-target.h
elf32-pj.lo: elf32-pj.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
$(INCDIR)/elf/external.h $(INCDIR)/elf/pj.h $(INCDIR)/elf/reloc-macros.h \

View File

@ -1,6 +1,6 @@
# Makefile.in generated automatically by automake 1.4 from Makefile.am
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -199,6 +199,7 @@ ALL_MACHINES = \
cpu-mcore.lo \
cpu-mips.lo \
cpu-mmix.lo \
cpu-or32.lo \
cpu-ns32k.lo \
cpu-openrisc.lo \
cpu-pdp11.lo \
@ -247,6 +248,7 @@ ALL_MACHINES_CFILES = \
cpu-mcore.c \
cpu-mips.c \
cpu-mmix.c \
cpu-or32.c \
cpu-ns32k.c \
cpu-openrisc.c \
cpu-pdp11.c \
@ -296,6 +298,7 @@ BFD32_BACKENDS = \
coff-m68k.lo \
coff-m88k.lo \
coff-mips.lo \
coff-or32.lo \
coff-rs6000.lo \
coff-sh.lo \
coff-sparc.lo \
@ -340,6 +343,7 @@ BFD32_BACKENDS = \
elf32-mcore.lo \
elf32-mips.lo \
elf32-openrisc.lo \
elf32-or32.lo \
elf32-pj.lo \
elf32-ppc.lo \
elf32-s390.lo \
@ -442,6 +446,7 @@ BFD32_BACKENDS_CFILES = \
coff-m68k.c \
coff-m88k.c \
coff-mips.c \
coff-or32.c \
coff-rs6000.c \
coff-sh.c \
coff-sparc.c \
@ -485,6 +490,7 @@ BFD32_BACKENDS_CFILES = \
elf32-mcore.c \
elf32-mips.c \
elf32-openrisc.c \
elf32-or32.c \
elf32-pj.c \
elf32-ppc.c \
elf32-s390.c \
@ -740,7 +746,7 @@ configure.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
TAR = gtar
GZIP_ENV = --best
SOURCES = $(libbfd_a_SOURCES) $(libbfd_la_SOURCES)
OBJECTS = $(libbfd_a_OBJECTS) $(libbfd_la_OBJECTS)
@ -907,7 +913,7 @@ maintainer-clean-recursive:
dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
test "$$subdir" = "." && dot_seen=yes; \
test "$$subdir" != "." || dot_seen=yes; \
done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \
target=`echo $@ | sed s/-recursive//`; \
@ -1657,6 +1663,10 @@ elf32-openrisc.lo: elf32-openrisc.c $(INCDIR)/filenames.h \
$(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/openrisc.h \
$(INCDIR)/elf/reloc-macros.h $(INCDIR)/libiberty.h \
elf32-target.h
elf32-or32.lo: elf32-or32.c $(INCDIR)/filenames.h elf-bfd.h \
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
$(INCDIR)/bfdlink.h $(INCDIR)/elf/avr.h $(INCDIR)/elf/reloc-macros.h \
elf32-target.h
elf32-pj.lo: elf32-pj.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
$(INCDIR)/elf/external.h $(INCDIR)/elf/pj.h $(INCDIR)/elf/reloc-macros.h \

View File

@ -1,6 +1,6 @@
/* BFD library support routines for architectures.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001
2000, 2001, 2002
Free Software Foundation, Inc.
Hacked by John Gilmore and Steve Chamberlain of Cygnus Support.
@ -103,6 +103,8 @@ DESCRIPTION
.#define bfd_mach_i960_jx 7
.#define bfd_mach_i960_hx 8
.
. bfd_arch_or32, {* OpenRISC 32 *}
.
. bfd_arch_a29k, {* AMD 29000 *}
. bfd_arch_sparc, {* SPARC *}
.#define bfd_mach_sparc 1
@ -293,16 +295,20 @@ DESCRIPTION
. boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *));
.
. const struct bfd_arch_info *next;
.} bfd_arch_info_type;
.}
.bfd_arch_info_type;
.
*/
extern const bfd_arch_info_type bfd_a29k_arch;
extern const bfd_arch_info_type bfd_alpha_arch;
extern const bfd_arch_info_type bfd_arc_arch;
extern const bfd_arch_info_type bfd_arm_arch;
extern const bfd_arch_info_type bfd_avr_arch;
extern const bfd_arch_info_type bfd_cris_arch;
extern const bfd_arch_info_type bfd_d10v_arch;
extern const bfd_arch_info_type bfd_d30v_arch;
extern const bfd_arch_info_type bfd_fr30_arch;
extern const bfd_arch_info_type bfd_h8300_arch;
extern const bfd_arch_info_type bfd_h8500_arch;
extern const bfd_arch_info_type bfd_hppa_arch;
@ -310,86 +316,87 @@ extern const bfd_arch_info_type bfd_i370_arch;
extern const bfd_arch_info_type bfd_i386_arch;
extern const bfd_arch_info_type bfd_i860_arch;
extern const bfd_arch_info_type bfd_i960_arch;
extern const bfd_arch_info_type bfd_ia64_arch;
extern const bfd_arch_info_type bfd_m32r_arch;
extern const bfd_arch_info_type bfd_m68hc11_arch;
extern const bfd_arch_info_type bfd_m68hc12_arch;
extern const bfd_arch_info_type bfd_m68k_arch;
extern const bfd_arch_info_type bfd_m88k_arch;
extern const bfd_arch_info_type bfd_mcore_arch;
extern const bfd_arch_info_type bfd_mips_arch;
extern const bfd_arch_info_type bfd_mmix_arch;
extern const bfd_arch_info_type bfd_mn10200_arch;
extern const bfd_arch_info_type bfd_mn10300_arch;
extern const bfd_arch_info_type bfd_ns32k_arch;
extern const bfd_arch_info_type bfd_openrisc_arch;
extern const bfd_arch_info_type bfd_or32_arch;
extern const bfd_arch_info_type bfd_pdp11_arch;
extern const bfd_arch_info_type bfd_pj_arch;
extern const bfd_arch_info_type bfd_powerpc_arch;
extern const bfd_arch_info_type bfd_rs6000_arch;
extern const bfd_arch_info_type bfd_pj_arch;
extern const bfd_arch_info_type bfd_s390_arch;
extern const bfd_arch_info_type bfd_sh_arch;
extern const bfd_arch_info_type bfd_sparc_arch;
extern const bfd_arch_info_type bfd_tic30_arch;
extern const bfd_arch_info_type bfd_tic54x_arch;
extern const bfd_arch_info_type bfd_tic80_arch;
extern const bfd_arch_info_type bfd_v850_arch;
extern const bfd_arch_info_type bfd_vax_arch;
extern const bfd_arch_info_type bfd_we32k_arch;
extern const bfd_arch_info_type bfd_z8k_arch;
extern const bfd_arch_info_type bfd_ns32k_arch;
extern const bfd_arch_info_type bfd_w65_arch;
extern const bfd_arch_info_type bfd_v850_arch;
extern const bfd_arch_info_type bfd_fr30_arch;
extern const bfd_arch_info_type bfd_mcore_arch;
extern const bfd_arch_info_type bfd_avr_arch;
extern const bfd_arch_info_type bfd_ia64_arch;
extern const bfd_arch_info_type bfd_s390_arch;
extern const bfd_arch_info_type bfd_openrisc_arch;
extern const bfd_arch_info_type bfd_mmix_arch;
extern const bfd_arch_info_type bfd_xstormy16_arch;
extern const bfd_arch_info_type bfd_z8k_arch;
static const bfd_arch_info_type * const bfd_archures_list[] = {
static const bfd_arch_info_type * const bfd_archures_list[] =
{
#ifdef SELECT_ARCHITECTURES
SELECT_ARCHITECTURES,
SELECT_ARCHITECTURES,
#else
&bfd_a29k_arch,
&bfd_alpha_arch,
&bfd_arc_arch,
&bfd_arm_arch,
&bfd_cris_arch,
&bfd_d10v_arch,
&bfd_d30v_arch,
&bfd_h8300_arch,
&bfd_h8500_arch,
&bfd_hppa_arch,
&bfd_i370_arch,
&bfd_i386_arch,
&bfd_i860_arch,
&bfd_i960_arch,
&bfd_m32r_arch,
&bfd_m68hc11_arch,
&bfd_m68hc12_arch,
&bfd_m68k_arch,
&bfd_m88k_arch,
&bfd_mips_arch,
&bfd_mn10200_arch,
&bfd_mn10300_arch,
&bfd_pdp11_arch,
&bfd_powerpc_arch,
&bfd_rs6000_arch,
&bfd_sh_arch,
&bfd_sparc_arch,
&bfd_tic30_arch,
&bfd_tic54x_arch,
&bfd_tic80_arch,
&bfd_vax_arch,
&bfd_we32k_arch,
&bfd_z8k_arch,
&bfd_ns32k_arch,
&bfd_w65_arch,
&bfd_v850_arch,
&bfd_fr30_arch,
&bfd_mcore_arch,
&bfd_avr_arch,
&bfd_ia64_arch,
&bfd_s390_arch,
&bfd_openrisc_arch,
&bfd_mmix_arch,
&bfd_xstormy16_arch,
&bfd_a29k_arch,
&bfd_alpha_arch,
&bfd_arc_arch,
&bfd_arm_arch,
&bfd_avr_arch,
&bfd_cris_arch,
&bfd_d10v_arch,
&bfd_d30v_arch,
&bfd_fr30_arch,
&bfd_h8300_arch,
&bfd_h8500_arch,
&bfd_hppa_arch,
&bfd_i370_arch,
&bfd_i386_arch,
&bfd_i860_arch,
&bfd_i960_arch,
&bfd_ia64_arch,
&bfd_m32r_arch,
&bfd_m68hc11_arch,
&bfd_m68hc12_arch,
&bfd_m68k_arch,
&bfd_m88k_arch,
&bfd_mcore_arch,
&bfd_mips_arch,
&bfd_mmix_arch,
&bfd_mn10200_arch,
&bfd_mn10300_arch,
&bfd_ns32k_arch,
&bfd_openrisc_arch,
&bfd_or32_arch,
&bfd_pdp11_arch,
&bfd_powerpc_arch,
&bfd_rs6000_arch,
&bfd_s390_arch,
&bfd_sh_arch,
&bfd_sparc_arch,
&bfd_tic30_arch,
&bfd_tic54x_arch,
&bfd_tic80_arch,
&bfd_v850_arch,
&bfd_vax_arch,
&bfd_w65_arch,
&bfd_we32k_arch,
&bfd_xstormy16_arch,
&bfd_z8k_arch,
#endif
0
};

View File

@ -1481,6 +1481,8 @@ enum bfd_architecture
#define bfd_mach_i960_jx 7
#define bfd_mach_i960_hx 8
bfd_arch_or32, /* OpenRISC 32 */
bfd_arch_a29k, /* AMD 29000 */
bfd_arch_sparc, /* SPARC */
#define bfd_mach_sparc 1
@ -1661,7 +1663,9 @@ typedef struct bfd_arch_info
boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *));
const struct bfd_arch_info *next;
} bfd_arch_info_type;
}
bfd_arch_info_type;
const char *
bfd_printable_name PARAMS ((bfd *abfd));

634
bfd/coff-or32.c Normal file
View File

@ -0,0 +1,634 @@
/* BFD back-end for OpenRISC 1000 COFF binaries.
Copyright 2002 Free Software Foundation, Inc.
Contributed by Ivan Guzvinec <ivang@opencores.org>
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. */
#define OR32 1
#include "bfd.h"
#include "sysdep.h"
#include "libbfd.h"
#include "coff/or32.h"
#include "coff/internal.h"
#include "libcoff.h"
static long get_symbol_value PARAMS ((asymbol *));
static bfd_reloc_status_type or1_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
static boolean coff_or1_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **));
static boolean coff_or1_adjust_symndx PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, struct internal_reloc *, boolean *));
#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (2)
#define INSERT_HWORD(WORD,HWORD) \
(((WORD) & 0xffff0000) | ((HWORD)& 0x0000ffff))
#define EXTRACT_HWORD(WORD) \
((WORD) & 0x0000ffff)
#define SIGN_EXTEND_HWORD(HWORD) \
((HWORD) & 0x8000 ? (HWORD)|(~0xffffL) : (HWORD))
#define INSERT_JUMPTARG(WORD,JT) \
(((WORD) & 0xfc000000) | ((JT)& 0x03ffffff))
#define EXTRACT_JUMPTARG(WORD) \
((WORD) & 0x03ffffff)
#define SIGN_EXTEND_JUMPTARG(JT) \
((JT) & 0x04000000 ? (JT)|(~0x03ffffffL) : (JT))
/* Provided the symbol, returns the value reffed. */
static long
get_symbol_value (symbol)
asymbol *symbol;
{
long relocation = 0;
if (bfd_is_com_section (symbol->section))
relocation = 0;
else
relocation = symbol->value +
symbol->section->output_section->vma +
symbol->section->output_offset;
return relocation;
}
/* This function is in charge of performing all the or32 relocations. */
static bfd_reloc_status_type
or32_reloc (abfd, reloc_entry, symbol_in, data, input_section, output_bfd,
error_message)
bfd *abfd;
arelent *reloc_entry;
asymbol *symbol_in;
PTR data;
asection *input_section;
bfd *output_bfd;
char **error_message;
{
/* The consth relocation comes in two parts, we have to remember
the state between calls, in these variables. */
static boolean part1_consth_active = false;
static unsigned long part1_consth_value;
unsigned long insn;
unsigned long sym_value;
unsigned long unsigned_value;
unsigned short r_type;
long signed_value;
unsigned long addr = reloc_entry->address ; /*+ input_section->vma*/
bfd_byte *hit_data =addr + (bfd_byte *)(data);
r_type = reloc_entry->howto->type;
if (output_bfd)
{
/* Partial linking - do nothing. */
reloc_entry->address += input_section->output_offset;
return bfd_reloc_ok;
}
if (symbol_in != NULL
&& bfd_is_und_section (symbol_in->section))
{
/* Keep the state machine happy in case we're called again. */
if (r_type == R_IHIHALF)
{
part1_consth_active = true;
part1_consth_value = 0;
}
return bfd_reloc_undefined;
}
if ((part1_consth_active) && (r_type != R_IHCONST))
{
part1_consth_active = false;
*error_message = (char *) "Missing IHCONST";
return bfd_reloc_dangerous;
}
sym_value = get_symbol_value (symbol_in);
switch (r_type)
{
case R_IREL:
insn = bfd_get_32(abfd, hit_data);
/* Take the value in the field and sign extend it. */
signed_value = EXTRACT_JUMPTARG (insn);
signed_value = SIGN_EXTEND_JUMPTARG (signed_value);
signed_value <<= 2;
/* See the note on the R_IREL reloc in coff_or32_relocate_section. */
if (signed_value == - (long) reloc_entry->address)
signed_value = 0;
signed_value += sym_value + reloc_entry->addend;
#if 0
if ((signed_value & ~0x3ffff) == 0)
{ /* Absolute jmp/call. */
insn |= (1<<24); /* Make it absolute. */
/* FIXME: Should we change r_type to R_IABS. */
}
else
#endif
{
/* Relative jmp/call, so subtract from the value the
address of the place we're coming from. */
signed_value -= (reloc_entry->address
+ input_section->output_section->vma
+ input_section->output_offset);
if (signed_value > 0x7ffffff || signed_value < -0x8000000)
return bfd_reloc_overflow;
}
signed_value >>= 2;
insn = INSERT_JUMPTARG (insn, signed_value);
bfd_put_32 (abfd, insn, hit_data);
break;
case R_ILOHALF:
insn = bfd_get_32 (abfd, hit_data);
unsigned_value = EXTRACT_HWORD (insn);
unsigned_value += sym_value + reloc_entry->addend;
insn = INSERT_HWORD (insn, unsigned_value);
bfd_put_32 (abfd, insn, hit_data);
break;
case R_IHIHALF:
insn = bfd_get_32 (abfd, hit_data);
/* consth, part 1
Just get the symbol value that is referenced. */
part1_consth_active = true;
part1_consth_value = sym_value + reloc_entry->addend;
/* Don't modify insn until R_IHCONST. */
break;
case R_IHCONST:
insn = bfd_get_32 (abfd, hit_data);
/* consth, part 2
Now relocate the reference. */
if (part1_consth_active == false)
{
*error_message = (char *) "Missing IHIHALF";
return bfd_reloc_dangerous;
}
/* sym_ptr_ptr = r_symndx, in coff_slurp_reloc_table() */
unsigned_value = 0; /*EXTRACT_HWORD(insn) << 16;*/
unsigned_value += reloc_entry->addend; /* r_symndx */
unsigned_value += part1_consth_value;
unsigned_value = unsigned_value >> 16;
insn = INSERT_HWORD (insn, unsigned_value);
part1_consth_active = false;
bfd_put_32 (abfd, insn, hit_data);
break;
case R_BYTE:
insn = bfd_get_8 (abfd, hit_data);
unsigned_value = insn + sym_value + reloc_entry->addend;
if (unsigned_value & 0xffffff00)
return bfd_reloc_overflow;
bfd_put_8 (abfd, unsigned_value, hit_data);
break;
case R_HWORD:
insn = bfd_get_16 (abfd, hit_data);
unsigned_value = insn + sym_value + reloc_entry->addend;
if (unsigned_value & 0xffff0000)
return bfd_reloc_overflow;
bfd_put_16 (abfd, insn, hit_data);
break;
case R_WORD:
insn = bfd_get_32 (abfd, hit_data);
insn += sym_value + reloc_entry->addend;
bfd_put_32 (abfd, insn, hit_data);
break;
default:
*error_message = _("Unrecognized reloc");
return bfd_reloc_dangerous;
}
return bfd_reloc_ok;
}
/* type rightshift
size
bitsize
pc-relative
bitpos
absolute
complain_on_overflow
special_function
relocation name
partial_inplace
src_mask
*/
/* FIXME: I'm not real sure about this table. */
static reloc_howto_type howto_table[] =
{
{ R_ABS, 0, 3, 32, false, 0, complain_overflow_bitfield, or32_reloc, "ABS", true, 0xffffffff,0xffffffff, false },
{1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10},
{11}, {12}, {13}, {14}, {15}, {16}, {17}, {18}, {19}, {20},
{21}, {22}, {23},
{ R_IREL, 0, 3, 32, true, 0, complain_overflow_signed, or32_reloc, "IREL", true, 0xffffffff,0xffffffff, false },
{ R_IABS, 0, 3, 32, false, 0, complain_overflow_bitfield, or32_reloc, "IABS", true, 0xffffffff,0xffffffff, false },
{ R_ILOHALF, 0, 3, 16, true, 0, complain_overflow_signed, or32_reloc, "ILOHALF", true, 0x0000ffff,0x0000ffff, false },
{ R_IHIHALF, 0, 3, 16, true, 16,complain_overflow_signed, or32_reloc, "IHIHALF", true, 0xffff0000,0xffff0000, false },
{ R_IHCONST, 0, 3, 16, true, 0, complain_overflow_signed, or32_reloc, "IHCONST", true, 0xffff0000,0xffff0000, false },
{ R_BYTE, 0, 0, 8, false, 0, complain_overflow_bitfield, or32_reloc, "BYTE", true, 0x000000ff,0x000000ff, false },
{ R_HWORD, 0, 1, 16, false, 0, complain_overflow_bitfield, or32_reloc, "HWORD", true, 0x0000ffff,0x0000ffff, false },
{ R_WORD, 0, 2, 32, false, 0, complain_overflow_bitfield, or32_reloc, "WORD", true, 0xffffffff,0xffffffff, false },
};
#define BADMAG(x) OR32BADMAG (x)
#define RELOC_PROCESSING(relent, reloc, symbols, abfd, section) \
reloc_processing (relent, reloc, symbols, abfd, section)
static void
reloc_processing (relent,reloc, symbols, abfd, section)
arelent *relent;
struct internal_reloc *reloc;
asymbol **symbols;
bfd *abfd;
asection *section;
{
static bfd_vma ihihalf_vaddr = (bfd_vma) -1;
relent->address = reloc->r_vaddr;
relent->howto = howto_table + reloc->r_type;
if (reloc->r_type == R_IHCONST)
{
/* The address of an R_IHCONST should always be the address of
the immediately preceding R_IHIHALF. relocs generated by gas
are correct, but relocs generated by High C are different (I
can't figure out what the address means for High C). We can
handle both gas and High C by ignoring the address here, and
simply reusing the address saved for R_IHIHALF. */
if (ihihalf_vaddr == (bfd_vma) -1)
abort ();
relent->address = ihihalf_vaddr;
ihihalf_vaddr = (bfd_vma) -1;
relent->addend = reloc->r_symndx;
relent->sym_ptr_ptr= bfd_abs_section_ptr->symbol_ptr_ptr;
}
else
{
asymbol *ptr;
relent->sym_ptr_ptr = symbols + obj_convert (abfd)[reloc->r_symndx];
ptr = *(relent->sym_ptr_ptr);
relent->addend = 0;
relent->address-= section->vma;
if (reloc->r_type == R_IHIHALF)
ihihalf_vaddr = relent->address;
else if (ihihalf_vaddr != (bfd_vma) -1)
abort ();
}
}
/* The reloc processing routine for the optimized COFF linker. */
static boolean
coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
contents, relocs, syms, sections)
bfd *output_bfd;
struct bfd_link_info *info;
bfd *input_bfd;
asection *input_section;
bfd_byte *contents;
struct internal_reloc *relocs;
struct internal_syment *syms;
asection **sections;
{
struct internal_reloc *rel;
struct internal_reloc *relend;
boolean hihalf;
bfd_vma hihalf_val;
/* If we are performing a relocateable link, we don't need to do a
thing. The caller will take care of adjusting the reloc
addresses and symbol indices. */
if (info->relocateable)
return true;
hihalf = false;
hihalf_val = 0;
rel = relocs;
relend = rel + input_section->reloc_count;
for (; rel < relend; rel++)
{
long symndx;
bfd_byte *loc;
struct coff_link_hash_entry *h;
struct internal_syment *sym;
asection *sec;
bfd_vma val;
boolean overflow;
unsigned long insn;
long signed_value;
unsigned long unsigned_value;
bfd_reloc_status_type rstat;
symndx = rel->r_symndx;
loc = contents + rel->r_vaddr - input_section->vma;
if (symndx == -1 || rel->r_type == R_IHCONST)
h = NULL;
else
h = obj_coff_sym_hashes (input_bfd)[symndx];
sym = NULL;
sec = NULL;
val = 0;
/* An R_IHCONST reloc does not have a symbol. Instead, the
symbol index is an addend. R_IHCONST is always used in
conjunction with R_IHHALF. */
if (rel->r_type != R_IHCONST)
{
if (h == NULL)
{
if (symndx == -1)
sec = bfd_abs_section_ptr;
else
{
sym = syms + symndx;
sec = sections[symndx];
val = (sec->output_section->vma
+ sec->output_offset
+ sym->n_value
- sec->vma);
}
}
else
{
if (h->root.type == bfd_link_hash_defined
|| h->root.type == bfd_link_hash_defweak)
{
sec = h->root.u.def.section;
val = (h->root.u.def.value
+ sec->output_section->vma
+ sec->output_offset);
}
else
{
if (! ((*info->callbacks->undefined_symbol)
(info, h->root.root.string, input_bfd, input_section,
rel->r_vaddr - input_section->vma, true)))
return false;
}
}
if (hihalf)
{
if (! ((*info->callbacks->reloc_dangerous)
(info, "missing IHCONST reloc", input_bfd,
input_section, rel->r_vaddr - input_section->vma)))
return false;
hihalf = false;
}
}
overflow = false;
switch (rel->r_type)
{
default:
bfd_set_error (bfd_error_bad_value);
return false;
case R_IREL:
insn = bfd_get_32 (input_bfd, loc);
/* Extract the addend. */
signed_value = EXTRACT_JUMPTARG (insn);
signed_value = SIGN_EXTEND_JUMPTARG (signed_value);
signed_value <<= 2;
/* Determine the destination of the jump. */
signed_value += val;
#if 0
if ((signed_value & ~0x3ffff) == 0)
{
/* We can use an absolute jump. */
insn |= (1 << 24);
}
else
#endif
{
/* Make the destination PC relative. */
signed_value -= (input_section->output_section->vma
+ input_section->output_offset
+ (rel->r_vaddr - input_section->vma));
if (signed_value > 0x7ffffff || signed_value < - 0x8000000)
{
overflow = true;
signed_value = 0;
}
}
/* Put the adjusted value back into the instruction. */
signed_value >>= 2;
insn = INSERT_JUMPTARG(insn, signed_value);
bfd_put_32 (input_bfd, (bfd_vma) insn, loc);
break;
case R_ILOHALF:
insn = bfd_get_32 (input_bfd, loc);
unsigned_value = EXTRACT_HWORD (insn);
unsigned_value += val;
insn = INSERT_HWORD (insn, unsigned_value);
bfd_put_32 (input_bfd, insn, loc);
break;
case R_IHIHALF:
/* Save the value for the R_IHCONST reloc. */
hihalf = true;
hihalf_val = val;
break;
case R_IHCONST:
if (! hihalf)
{
if (! ((*info->callbacks->reloc_dangerous)
(info, "missing IHIHALF reloc", input_bfd,
input_section, rel->r_vaddr - input_section->vma)))
return false;
hihalf_val = 0;
}
insn = bfd_get_32 (input_bfd, loc);
unsigned_value = rel->r_symndx + hihalf_val;
unsigned_value >>= 16;
insn = INSERT_HWORD (insn, unsigned_value);
bfd_put_32 (input_bfd, (bfd_vma) insn, loc);
hihalf = false;
break;
case R_BYTE:
case R_HWORD:
case R_WORD:
rstat = _bfd_relocate_contents (howto_table + rel->r_type,
input_bfd, val, loc);
if (rstat == bfd_reloc_overflow)
overflow = true;
else if (rstat != bfd_reloc_ok)
abort ();
break;
}
if (overflow)
{
const char *name;
char buf[SYMNMLEN + 1];
if (symndx == -1)
name = "*ABS*";
else if (h != NULL)
name = h->root.root.string;
else if (sym == NULL)
name = "*unknown*";
else if (sym->_n._n_n._n_zeroes == 0
&& sym->_n._n_n._n_offset != 0)
name = obj_coff_strings (input_bfd) + sym->_n._n_n._n_offset;
else
{
strncpy (buf, sym->_n._n_name, SYMNMLEN);
buf[SYMNMLEN] = '\0';
name = buf;
}
if (! ((*info->callbacks->reloc_overflow)
(info, name, howto_table[rel->r_type].name, (bfd_vma) 0,
input_bfd, input_section,
rel->r_vaddr - input_section->vma)))
return false;
}
}
return true;
}
#define coff_relocate_section coff_or32_relocate_section
/* We don't want to change the symndx of a R_IHCONST reloc, since it
is actually an addend, not a symbol index at all. */
static boolean
coff_or32_adjust_symndx (obfd, info, ibfd, sec, irel, adjustedp)
bfd *obfd ATTRIBUTE_UNUSED;
struct bfd_link_info *info ATTRIBUTE_UNUSED;
bfd *ibfd ATTRIBUTE_UNUSED;
asection *sec ATTRIBUTE_UNUSED;
struct internal_reloc *irel;
boolean *adjustedp;
{
if (irel->r_type == R_IHCONST)
*adjustedp = true;
else
*adjustedp = false;
return true;
}
#define coff_adjust_symndx coff_or32_adjust_symndx
#include "coffcode.h"
const bfd_target or32coff_big_vec =
{
"coff-or32-big", /* Name. */
bfd_target_coff_flavour,
BFD_ENDIAN_BIG, /* Data byte order is big. */
BFD_ENDIAN_BIG, /* Header byte order is big. */
(HAS_RELOC | EXEC_P | /* Object flags. */
HAS_LINENO | HAS_DEBUG |
HAS_SYMS | HAS_LOCALS | WP_TEXT),
(SEC_HAS_CONTENTS | SEC_ALLOC | /* Section flags. */
SEC_LOAD | SEC_RELOC |
SEC_READONLY ),
'_', /* Leading underscore. */
'/', /* ar_pad_char. */
15, /* ar_max_namelen. */
/* Data. */
bfd_getb64, bfd_getb_signed_64, bfd_putb64,
bfd_getb32, bfd_getb_signed_32, bfd_putb32,
bfd_getb16, bfd_getb_signed_16, bfd_putb16,
/* Headers. */
bfd_getb64, bfd_getb_signed_64, bfd_putb64,
bfd_getb32, bfd_getb_signed_32, bfd_putb32,
bfd_getb16, bfd_getb_signed_16, bfd_putb16,
{
_bfd_dummy_target,
coff_object_p,
bfd_generic_archive_p,
_bfd_dummy_target
},
{
bfd_false,
coff_mkobject,
_bfd_generic_mkarchive,
bfd_false
},
{
bfd_false,
coff_write_object_contents,
_bfd_write_archive_contents,
bfd_false
},
BFD_JUMP_TABLE_GENERIC (coff),
BFD_JUMP_TABLE_COPY (coff),
BFD_JUMP_TABLE_CORE (_bfd_nocore),
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff),
BFD_JUMP_TABLE_SYMBOLS (coff),
BFD_JUMP_TABLE_RELOCS (coff),
BFD_JUMP_TABLE_WRITE (coff),
BFD_JUMP_TABLE_LINK (coff),
BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
/* Alternative_target. */
#ifdef TARGET_LITTLE_SYM
& TARGET_LITTLE_SYM,
#else
NULL,
#endif
COFF_SWAP_TABLE
};

View File

@ -1822,6 +1822,13 @@ coff_set_arch_mach_hook (abfd, filehdr)
machine = 0;
switch (internal_f->f_magic)
{
#ifdef OR32_MAGIC_BIG
case OR32_MAGIC_BIG:
case OR32_MAGIC_LITTLE:
arch = bfd_arch_or32;
machine = 0;
break;
#endif
#ifdef PPCMAGIC
case PPCMAGIC:
arch = bfd_arch_powerpc;
@ -2779,6 +2786,15 @@ coff_set_flags (abfd, magicp, flagsp)
return true;
#endif
#ifdef OR32_MAGIC_BIG
case bfd_arch_or32:
if (bfd_big_endian (abfd))
* magicp = OR32_MAGIC_BIG;
else
* magicp = OR32_MAGIC_LITTLE;
return true;
#endif
default: /* Unknown architecture. */
/* Fall through to "return false" below, to avoid
"statement never reached" errors on the one below. */
@ -3830,6 +3846,11 @@ coff_write_object_contents (abfd)
internal_a.magic = MIPS_PE_MAGIC;
#endif
#ifdef OR32
#define __A_MAGIC_SET__
internal_a.magic = NMAGIC; /* Assume separate i/d. */
#endif
#ifndef __A_MAGIC_SET__
#include "Your aouthdr magic number is not being set!"
#else

View File

@ -43,6 +43,7 @@ m6812*|m68hc12*) targ_archs="bfd_m68hc12_arch bfd_m68hc11_arch" ;;
m68*) targ_archs=bfd_m68k_arch ;;
m88*) targ_archs=bfd_m88k_arch ;;
mips*) targ_archs=bfd_mips_arch ;;
or32*) targ_archs=bfd_or32_arch ;;
pdp11*) targ_archs=bfd_pdp11_arch ;;
pj*) targ_archs="bfd_pj_arch bfd_i386_arch";;
powerpc*) targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
@ -759,6 +760,15 @@ case "${targ}" in
targ_defvec=bfd_elf32_openrisc_vec
;;
or32-*-coff | or32-*-rtems*)
targ_defvec=or32coff_big_vec
targ_underscore=yes
;;
or32-*-elf)
targ_defvec=bfd_elf32_or32_big_vec
;;
pdp11-*-*)
targ_defvec=pdp11_aout_vec
targ_underscore=yes

1014
bfd/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -573,6 +573,7 @@ do
bfd_elf32_mn10200_vec) tb="$tb elf-m10200.lo elf32.lo $elf" ;;
bfd_elf32_mn10300_vec) tb="$tb elf-m10300.lo elf32.lo $elf" ;;
bfd_elf32_openrisc_vec) tb="$tb elf32-openrisc.lo elf32.lo $elf" ;;
bfd_elf32_or32_big_vec) tb="$tb elf32-or32.lo elf32.lo $elf" ;;
bfd_elf32_pj_vec) tb="$tb elf32-pj.lo elf32.lo $elf";;
bfd_elf32_pjl_vec) tb="$tb elf32-pj.lo elf32.lo $elf";;
bfd_elf32_powerpc_vec) tb="$tb elf32-ppc.lo elf32.lo $elf" ;;
@ -669,6 +670,7 @@ do
nlm32_i386_vec) tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;;
nlm32_powerpc_vec) tb="$tb nlm32-ppc.lo nlm32.lo nlm.lo" ;;
nlm32_sparc_vec) tb="$tb nlm32-sparc.lo nlm32.lo nlm.lo" ;;
or32coff_big_vec) tb="$tb coff-or32.lo cofflink.lo" ;;
pc532machaout_vec) tb="$tb pc532-mach.lo aout-ns32k.lo" ;;
pc532netbsd_vec) tb="$tb ns32knetbsd.lo aout-ns32k.lo" ;;
pdp11_aout_vec) tb="$tb pdp11.lo" ;;

40
bfd/cpu-or32.c Normal file
View File

@ -0,0 +1,40 @@
/* BFD support for the OpenRISC 1000 architecture.
Copyright 2002 Free Software Foundation, Inc.
Contributed by Ivan Guzvinec <ivang@opencores.org>
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_or32_arch =
{
32, /* 32 bits in a word. */
32, /* 32 bits in an address. */
8, /* 8 bits in a byte. */
bfd_arch_or32,
0, /* Only 1 machine. */
"or32",
"or32",
4,
true, /* The one and only. */
bfd_default_compatible,
bfd_default_scan ,
0,
};

View File

@ -1,6 +1,6 @@
# Makefile.in generated automatically by automake 1.4 from Makefile.am
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -242,7 +242,7 @@ DIST_COMMON = ChangeLog Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
TAR = gtar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
@ -328,7 +328,7 @@ uninstall-info:
else ii=; fi; \
list='$(INFO_DEPS)'; \
for file in $$list; do \
test -z "$ii" \
test -z "$$ii" \
|| install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
done
@$(NORMAL_UNINSTALL)

542
bfd/elf32-or32.c Normal file
View File

@ -0,0 +1,542 @@
/* OR32-specific support for 32-bit ELF
Copyright (C) 2002 Free Software Foundation, Inc.
Contributed by Ivan Guzvinec <ivang@opencores.org>
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"
#include "elf/or32.h"
#include "libiberty.h"
static reloc_howto_type * bfd_elf32_bfd_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type));
static void or32_info_to_howto_rel PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
static boolean or32_elf_object_p PARAMS ((bfd *));
static void or32_elf_final_write_processing PARAMS ((bfd *, boolean));
static bfd_reloc_status_type or32_elf_32_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
static bfd_reloc_status_type or32_elf_16_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
static bfd_reloc_status_type or32_elf_8_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
static bfd_reloc_status_type or32_elf_const_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
static bfd_reloc_status_type or32_elf_consth_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
static bfd_reloc_status_type or32_elf_jumptarg_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
/* 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
static reloc_howto_type elf_or32_howto_table[] =
{
/* This reloc does nothing. */
HOWTO (R_OR32_NONE, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
bfd_elf_generic_reloc, /* special_function */
"R_OR32_NONE", /* name */
false, /* partial_inplace */
0, /* src_mask */
0, /* dst_mask */
false), /* pcrel_offset */
/* A standard 32 bit relocation. */
HOWTO (R_OR32_32, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
or32_elf_32_reloc, /* special_function */
"R_OR32_32", /* name */
false, /* partial_inplace */
0xffffffff, /* src_mask */
0xffffffff, /* dst_mask */
false), /* pcrel_offset */
/* A standard 16 bit relocation. */
HOWTO (R_OR32_16, /* type */
0, /* rightshift */
1, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
or32_elf_16_reloc, /* special_function */
"R_OR32_16", /* name */
false, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
false), /* pcrel_offset */
/* A standard 8 bit relocation. */
HOWTO (R_OR32_8, /* type */
0, /* rightshift */
0, /* size (0 = byte, 1 = short, 2 = long) */
8, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
complain_overflow_bitfield, /* complain_on_overflow */
or32_elf_8_reloc, /* special_function */
"R_OR32_8", /* name */
false, /* partial_inplace */
0x000000ff, /* src_mask */
0x000000ff, /* dst_mask */
false), /* pcrel_offset */
/* A standard low 16 bit relocation. */
HOWTO (R_OR32_CONST, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
or32_elf_const_reloc, /* special_function */
"R_OR32_CONST", /* name */
false, /* partial_inplace */
0x0000ffff, /* src_mask */
0x0000ffff, /* dst_mask */
false), /* pcrel_offset */
/* A standard high 16 bit relocation. */
HOWTO (R_OR32_CONSTH, /* type */
16, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
16, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
or32_elf_consth_reloc, /* special_function */
"R_OR32_CONSTH", /* name */
false, /* partial_inplace */
0xffff0000, /* src_mask */
0x0000ffff, /* dst_mask */
false), /* pcrel_offset */
/* A standard branch relocation. */
HOWTO (R_OR32_JUMPTARG, /* type */
2, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
28, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
complain_overflow_signed, /* complain_on_overflow */
or32_elf_jumptarg_reloc,/* special_function */
"R_OR32_JUMPTARG", /* name */
false, /* partial_inplace */
0, /* src_mask */
0x03ffffff, /* dst_mask */
true), /* pcrel_offset */
/* GNU extension to record C++ vtable hierarchy. */
HOWTO (R_OR32_GNU_VTINHERIT, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
NULL, /* special_function */
"R_OR32_GNU_VTINHERIT", /* name */
false, /* partial_inplace */
0, /* src_mask */
0, /* dst_mask */
false), /* pcrel_offset */
/* GNU extension to record C++ vtable member usage. */
HOWTO (R_OR32_GNU_VTENTRY, /* type */
0, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
0, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
_bfd_elf_rel_vtable_reloc_fn, /* special_function */
"R_OR32_GNU_VTENTRY", /* name */
false, /* partial_inplace */
0, /* src_mask */
0, /* dst_mask */
false), /* pcrel_offset */
};
/* Map BFD reloc types to OR32 ELF reloc types. */
struct or32_reloc_map
{
bfd_reloc_code_real_type bfd_reloc_val;
unsigned char elf_reloc_val;
};
static const struct or32_reloc_map or32_reloc_map[] =
{
{ BFD_RELOC_NONE, R_OR32_NONE },
{ BFD_RELOC_32, R_OR32_32 },
{ BFD_RELOC_16, R_OR32_16 },
{ BFD_RELOC_8, R_OR32_8 },
{ BFD_RELOC_LO16, R_OR32_CONST },
{ BFD_RELOC_HI16, R_OR32_CONSTH },
{ BFD_RELOC_32_GOT_PCREL, R_OR32_JUMPTARG },
{ BFD_RELOC_VTABLE_INHERIT, R_OR32_GNU_VTINHERIT },
{ BFD_RELOC_VTABLE_ENTRY, R_OR32_GNU_VTENTRY },
};
static reloc_howto_type *
bfd_elf32_bfd_reloc_type_lookup (abfd, code)
bfd *abfd ATTRIBUTE_UNUSED;
bfd_reloc_code_real_type code;
{
unsigned int i;
for (i = ARRAY_SIZE (or32_reloc_map); i--;)
{
if (or32_reloc_map[i].bfd_reloc_val == code)
return &elf_or32_howto_table[or32_reloc_map[i].elf_reloc_val];
}
return NULL;
}
/* Set the howto pointer for an OR32 ELF reloc. */
static void
or32_info_to_howto_rel (abfd, cache_ptr, dst)
bfd *abfd ATTRIBUTE_UNUSED;
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_OR32_max);
cache_ptr->howto = &elf_or32_howto_table[r_type];
}
/* Set the right machine number for an OR32 ELF file. */
static boolean
or32_elf_object_p (abfd)
bfd *abfd;
{
(void) bfd_default_set_arch_mach (abfd, bfd_arch_or32, 0);
return true;
}
/* The final processing done just before writing out an OR32 ELF object file.
This gets the OR32 architecture right based on the machine number. */
static void
or32_elf_final_write_processing (abfd, linker)
bfd *abfd;
boolean linker ATTRIBUTE_UNUSED;
{
int mach;
unsigned long val;
switch (mach = bfd_get_mach (abfd))
{
/*
case bfd_mach_arc_base:
val = E_OR32_MACH_BASE;
break;
*/
default:
val = 0;
return;
}
elf_elfheader (abfd)->e_flags &=~ EF_OR32_MACH;
elf_elfheader (abfd)->e_flags |= val;
}
bfd_reloc_status_type
or32_elf_32_reloc (abfd, reloc_entry, symbol, data, input_section,
output_bfd, error_message)
bfd *abfd;
arelent *reloc_entry;
asymbol *symbol;
PTR data;
asection *input_section;
bfd *output_bfd;
char **error_message ATTRIBUTE_UNUSED;
{
if (output_bfd != (bfd *) NULL)
{
unsigned long insn;
bfd_size_type addr = reloc_entry->address;
reloc_entry->address += input_section->output_offset;
insn = bfd_get_32 (abfd, (bfd_byte *) data + addr);
insn += symbol->section->output_section->vma;
insn += symbol->section->output_offset;
insn += symbol->value;
bfd_put_32 (abfd, insn, (bfd_byte *) data + addr);
return bfd_reloc_ok;
}
return bfd_reloc_continue;
}
bfd_reloc_status_type
or32_elf_16_reloc (abfd, reloc_entry, symbol, data, input_section,
output_bfd, error_message)
bfd *abfd;
arelent *reloc_entry;
asymbol *symbol;
PTR data;
asection *input_section;
bfd *output_bfd;
char **error_message ATTRIBUTE_UNUSED;
{
if (output_bfd != (bfd *) NULL)
{
unsigned short insn;
bfd_size_type addr = reloc_entry->address;
reloc_entry->address += input_section->output_offset;
insn = bfd_get_16 (abfd, (bfd_byte *) data + addr);
insn += symbol->section->output_section->vma;
insn += symbol->section->output_offset;
insn += symbol->value;
bfd_put_16 (abfd, insn, (bfd_byte *) data + addr);
return bfd_reloc_ok;
}
return bfd_reloc_continue;
}
bfd_reloc_status_type
or32_elf_8_reloc (abfd, reloc_entry, symbol, data, input_section,
output_bfd, error_message)
bfd *abfd ATTRIBUTE_UNUSED;
arelent *reloc_entry;
asymbol *symbol;
PTR data;
asection *input_section;
bfd *output_bfd;
char **error_message ATTRIBUTE_UNUSED;
{
if (output_bfd != (bfd *) NULL)
{
unsigned char insn;
bfd_size_type addr = reloc_entry->address;
reloc_entry->address += input_section->output_offset;
insn = bfd_get_8 (abfd, (bfd_byte *) data + addr);
insn += symbol->section->output_section->vma;
insn += symbol->section->output_offset;
insn += symbol->value;
bfd_put_8 (abfd, insn, (bfd_byte *) data + addr);
return bfd_reloc_ok;
}
return bfd_reloc_continue;
}
/* Do a R_OR32_CONSTH relocation. This has to be done in combination
with a R_OR32_CONST reloc, because there is a carry from the LO16 to
the HI16. Here we just save the information we need; we do the
actual relocation when we see the LO16. OR32 ELF requires that the
LO16 immediately follow the HI16. As a GNU extension, we permit an
arbitrary number of HI16 relocs to be associated with a single LO16
reloc. This extension permits gcc to output the HI and LO relocs
itself. This code is copied from the elf32-mips.c. */
struct or32_consth
{
struct or32_consth *next;
bfd_byte *addr;
bfd_vma addend;
};
/* FIXME: This should not be a static variable. */
static struct or32_consth *or32_consth_list;
bfd_reloc_status_type
or32_elf_consth_reloc (abfd, reloc_entry, symbol, data, input_section,
output_bfd, error_message)
bfd *abfd ATTRIBUTE_UNUSED;
arelent *reloc_entry;
asymbol *symbol;
PTR data;
asection *input_section;
bfd *output_bfd;
char **error_message ATTRIBUTE_UNUSED;
{
bfd_reloc_status_type ret;
bfd_vma relocation;
struct or32_consth *n;
ret = bfd_reloc_ok;
if (bfd_is_und_section (symbol->section)
&& output_bfd == (bfd *) NULL)
ret = bfd_reloc_undefined;
if (bfd_is_com_section (symbol->section))
relocation = 0;
else
relocation = symbol->value;
relocation += symbol->section->output_section->vma;
relocation += symbol->section->output_offset;
relocation += reloc_entry->addend;
if (reloc_entry->address > input_section->_cooked_size)
return bfd_reloc_outofrange;
/* Save the information, and let LO16 do the actual relocation. */
n = (struct or32_consth *) bfd_malloc (sizeof *n);
if (n == NULL)
return bfd_reloc_outofrange;
n->addr = (bfd_byte *) data + reloc_entry->address;
n->addend = relocation;
n->next = or32_consth_list;
or32_consth_list = n;
if (output_bfd != (bfd *) NULL)
reloc_entry->address += input_section->output_offset;
return ret;
}
/* Do a R_OR32_CONST relocation. This is a straightforward 16 bit
inplace relocation; this function exists in order to do the
R_OR32_CONSTH relocation described above. */
bfd_reloc_status_type
or32_elf_const_reloc (abfd, reloc_entry, symbol, data, input_section,
output_bfd, error_message)
bfd *abfd;
arelent *reloc_entry;
asymbol *symbol;
PTR data;
asection *input_section;
bfd *output_bfd;
char **error_message;
{
if (or32_consth_list != NULL)
{
struct or32_consth *l;
l = or32_consth_list;
while (l != NULL)
{
unsigned long insn;
unsigned long val;
unsigned long vallo;
struct or32_consth *next;
/* Do the HI16 relocation. Note that we actually don't need
to know anything about the LO16 itself, except where to
find the low 16 bits of the addend needed by the LO16. */
insn = bfd_get_32 (abfd, l->addr);
vallo = (bfd_get_32 (abfd, (bfd_byte *) data + reloc_entry->address)
& 0xffff);
val = ((insn & 0xffff) << 16) + vallo;
val += l->addend;
insn = (insn &~ 0xffff) | ((val >> 16) & 0xffff);
bfd_put_32 (abfd, insn, l->addr);
next = l->next;
free (l);
l = next;
}
or32_consth_list = NULL;
}
if (output_bfd != (bfd *) NULL)
{
unsigned long insn, tmp;
bfd_size_type addr = reloc_entry->address;
reloc_entry->address += input_section->output_offset;
insn = bfd_get_32 (abfd, (bfd_byte *) data + addr);
tmp = insn & 0x0000ffff;
tmp += symbol->section->output_section->vma;
tmp += symbol->section->output_offset;
tmp += symbol->value;
insn = (insn & 0xffff0000) | (tmp & 0x0000ffff);
bfd_put_32 (abfd, insn, (bfd_byte *) data + addr);
return bfd_reloc_ok;
}
/* Now do the LO16 reloc in the usual way. */
return bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
input_section, output_bfd, error_message);
}
bfd_reloc_status_type
or32_elf_jumptarg_reloc (abfd, reloc_entry, symbol, data, input_section,
output_bfd, error_message)
bfd *abfd;
arelent *reloc_entry;
asymbol *symbol ATTRIBUTE_UNUSED;
PTR data;
asection *input_section;
bfd *output_bfd;
char **error_message ATTRIBUTE_UNUSED;
{
if (output_bfd != (bfd *) NULL)
{
unsigned long insn, tmp;
bfd_size_type addr = reloc_entry->address;
reloc_entry->address += input_section->output_offset;
insn = bfd_get_32 (abfd, (bfd_byte *) data + addr);
tmp = insn | 0xfc000000;
tmp -= (input_section->output_offset >> 2);
insn = (insn & 0xfc000000) | (tmp & 0x03ffffff);
bfd_put_32 (abfd, insn, (bfd_byte *) data + addr);
return bfd_reloc_ok;
}
return bfd_reloc_continue;
}
#define TARGET_LITTLE_SYM bfd_elf32_or32_little_vec
#define TARGET_LITTLE_NAME "elf32-littleor32"
#define TARGET_BIG_SYM bfd_elf32_or32_big_vec
#define TARGET_BIG_NAME "elf32-or32"
#define ELF_ARCH bfd_arch_or32
#define ELF_MACHINE_CODE EM_OR32
#define ELF_MAXPAGESIZE 0x1000
#define elf_info_to_howto 0
#define elf_info_to_howto_rel or32_info_to_howto_rel
#define elf_backend_object_p or32_elf_object_p
#define elf_backend_final_write_processing \
or32_elf_final_write_processing
#include "elf32-target.h"

View File

@ -37,6 +37,7 @@ coff-i960.c
coff-m68k.c
coff-m88k.c
coff-mips.c
coff-or32.c
coff-rs6000.c
coff-sh.c
coff-sparc.c
@ -84,6 +85,7 @@ cpu-mips.c
cpu-mmix.c
cpu-ns32k.c
cpu-openrisc.c
cpu-or32.c
cpu-pdp11.c
cpu-pj.c
cpu-powerpc.c

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -525,6 +525,7 @@ extern const bfd_target bfd_elf32_mcore_little_vec;
extern const bfd_target bfd_elf32_mn10200_vec;
extern const bfd_target bfd_elf32_mn10300_vec;
extern const bfd_target bfd_elf32_openrisc_vec;
extern const bfd_target bfd_elf32_or32_big_vec;
extern const bfd_target bfd_elf32_pj_vec;
extern const bfd_target bfd_elf32_pjl_vec;
extern const bfd_target bfd_elf32_powerpc_vec;
@ -621,6 +622,7 @@ extern const bfd_target nlm32_i386_vec;
extern const bfd_target nlm32_powerpc_vec;
extern const bfd_target nlm32_sparc_vec;
extern const bfd_target oasys_vec;
extern const bfd_target or32coff_big_vec;
extern const bfd_target pc532machaout_vec;
extern const bfd_target pc532netbsd_vec;
extern const bfd_target pdp11_aout_vec;
@ -770,6 +772,7 @@ static const bfd_target * const _bfd_target_vector[] = {
&bfd_elf32_mn10200_vec,
&bfd_elf32_mn10300_vec,
&bfd_elf32_openrisc_vec,
&bfd_elf32_or32_big_vec,
&bfd_elf32_pj_vec,
&bfd_elf32_pjl_vec,
&bfd_elf32_powerpc_vec,
@ -903,6 +906,9 @@ static const bfd_target * const _bfd_target_vector[] = {
can be annoying target mis-matches. */
&oasys_vec,
#endif
/* Entry for the OpenRISC family. */
&or32coff_big_vec,
&pc532machaout_vec,
&pc532netbsd_vec,
&pdp11_aout_vec,

View File

@ -49,34 +49,35 @@
#define RELOC_MACROS_GEN_FUNC
#include "elf/i386.h"
#include "elf/v850.h"
#include "elf/ppc.h"
#include "elf/mips.h"
#include "elf/alpha.h"
#include "elf/arc.h"
#include "elf/arm.h"
#include "elf/m68k.h"
#include "elf/sparc.h"
#include "elf/m32r.h"
#include "elf/avr.h"
#include "elf/cris.h"
#include "elf/d10v.h"
#include "elf/d30v.h"
#include "elf/sh.h"
#include "elf/fr30.h"
#include "elf/h8.h"
#include "elf/hppa.h"
#include "elf/i386.h"
#include "elf/i860.h"
#include "elf/i960.h"
#include "elf/ia64.h"
#include "elf/m32r.h"
#include "elf/m68k.h"
#include "elf/mcore.h"
#include "elf/mips.h"
#include "elf/mmix.h"
#include "elf/mn10200.h"
#include "elf/mn10300.h"
#include "elf/hppa.h"
#include "elf/h8.h"
#include "elf/arc.h"
#include "elf/fr30.h"
#include "elf/mcore.h"
#include "elf/mmix.h"
#include "elf/i960.h"
#include "elf/or32.h"
#include "elf/pj.h"
#include "elf/avr.h"
#include "elf/ia64.h"
#include "elf/cris.h"
#include "elf/i860.h"
#include "elf/x86-64.h"
#include "elf/ppc.h"
#include "elf/s390.h"
#include "elf/sh.h"
#include "elf/sparc.h"
#include "elf/v850.h"
#include "elf/x86-64.h"
#include "elf/xstormy16.h"
#include "bucomm.h"
@ -596,6 +597,8 @@ guess_is_rela (e_machine)
case EM_386:
case EM_486:
case EM_960:
case EM_OPENRISC:
case EM_OR32:
case EM_M32R:
case EM_CYGNUS_M32R:
case EM_D10V:
@ -1027,6 +1030,11 @@ dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela)
rtype = elf_h8_reloc_type (type);
break;
case EM_OPENRISC:
case EM_OR32:
rtype = elf_or32_reloc_type (type);
break;
case EM_PJ:
case EM_PJ_OLD:
rtype = elf_pj_reloc_type (type);
@ -1458,6 +1466,8 @@ get_machine_name (e_machine)
case EM_S390_OLD:
case EM_S390: return "IBM S/390";
case EM_XSTORMY16: return "Sanyo Xstormy16 CPU core";
case EM_OPENRISC:
case EM_OR32: return "OpenRISC";
default:
sprintf (buff, _("<unknown>: %x"), e_machine);
return buff;

View File

@ -1,3 +1,18 @@
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
* config/tc-or32.c: New file.
* config/tc-or32.h: New file.
* configure.in: Add support for or32 targets.
* configure: Regenerate.
* config/obj-coff.c: Add support for or32 targets.
* config/obj-coff.h: Add support for or32 targets.
* Makefile.am: Add support for or32 targets.
* Makefile.in: Regenerate.
* NEWS: Mention support for OpenRISC.
* doc/Makefile.in: Regenerate.
* po/POTFILES.in: Regenerate.
* po/gas.pot: Regenerate.
2002-01-30 Richard Sandiford <rsandifo@redhat.com>
* config/tc-sh.c (parse_reg): Fix end-of-word check for is, ix, iy

View File

@ -65,6 +65,7 @@ CPU_TYPES = \
mn10300 \
ns32k \
openrisc \
or32 \
pdp11 \
pj \
ppc \
@ -251,6 +252,7 @@ TARGET_CPU_CFILES = \
config/tc-mn10300.c \
config/tc-ns32k.c \
config/tc-openrisc.c \
config/tc-or32.c \
config/tc-pdp11.c \
config/tc-pj.c \
config/tc-ppc.c \
@ -296,6 +298,7 @@ TARGET_CPU_HFILES = \
config/tc-mn10300.h \
config/tc-ns32k.h \
config/tc-openrisc.h \
config/tc-or32.h \
config/tc-pdp11.h \
config/tc-pj.h \
config/tc-ppc.h \

View File

@ -1,6 +1,6 @@
# Makefile.in generated automatically by automake 1.4 from Makefile.am
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -176,6 +176,7 @@ CPU_TYPES = \
mn10300 \
ns32k \
openrisc \
or32 \
pdp11 \
pj \
ppc \
@ -368,6 +369,7 @@ TARGET_CPU_CFILES = \
config/tc-mn10300.c \
config/tc-ns32k.c \
config/tc-openrisc.c \
config/tc-or32.c \
config/tc-pdp11.c \
config/tc-pj.c \
config/tc-ppc.c \
@ -414,6 +416,7 @@ TARGET_CPU_HFILES = \
config/tc-mn10300.h \
config/tc-ns32k.h \
config/tc-openrisc.h \
config/tc-or32.h \
config/tc-pdp11.h \
config/tc-pj.h \
config/tc-ppc.h \
@ -2228,7 +2231,7 @@ configure configure.in gdbinit.in itbl-lex.c itbl-parse.c
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
TAR = gtar
GZIP_ENV = --best
SOURCES = $(itbl_test_SOURCES) $(as_new_SOURCES) $(EXTRA_as_new_SOURCES) $(gasp_new_SOURCES)
OBJECTS = $(itbl_test_OBJECTS) $(as_new_OBJECTS) $(gasp_new_OBJECTS)
@ -2389,7 +2392,7 @@ maintainer-clean-recursive:
dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
test "$$subdir" = "." && dot_seen=yes; \
test "$$subdir" != "." || dot_seen=yes; \
done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \
target=`echo $@ | sed s/-recursive//`; \

View File

@ -1,4 +1,6 @@
-*- text -*-
Support for the OpenRISC 32-bit embedded processor by OpenCores.
The ARM assembler now accepts -march=..., -mcpu=... and -mfpu=... for
specifying the target instruction set. The old method of specifying the
target processor has been deprecated, but is still accepted for

View File

@ -1,6 +1,6 @@
/* coff object file format
Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001
1999, 2000, 2001, 2002
Free Software Foundation, Inc.
This file is part of GAS.
@ -1889,7 +1889,7 @@ count_entries_in_chain (idx)
{
if (fixup_ptr->fx_done == 0 && TC_COUNT_RELOC (fixup_ptr))
{
#ifdef TC_A29K
#if defined(TC_A29K) || defined(TC_OR32)
if (fixup_ptr->fx_r_type == RELOC_CONSTH)
nrelocs += 2;
else
@ -2047,6 +2047,20 @@ do_relocs_for (abfd, h, file_cursor)
(void) bfd_coff_swap_reloc_out (abfd, &intr, ext_ptr);
ext_ptr++;
}
#endif
#if defined(TC_OR32)
/* The or32 has a special kludge for the high 16 bit
reloc. Two relocations are emited, R_IHIHALF,
and R_IHCONST. The second one doesn't contain a
symbol, but uses the value for offset. */
if (intr.r_type == R_IHIHALF)
{
/* Now emit the second bit. */
intr.r_type = R_IHCONST;
intr.r_symndx = fix_ptr->fx_addnumber;
(void) bfd_coff_swap_reloc_out (abfd, & intr, ext_ptr);
ext_ptr ++;
}
#endif
}
@ -2127,12 +2141,14 @@ fill_section (abfd, h, file_cursor)
COFF_NOLOAD_PROBLEM, and have only one test here. */
#ifndef TC_I386
#ifndef TC_A29K
#ifndef TC_OR32
#ifndef COFF_NOLOAD_PROBLEM
/* Apparently the SVR3 linker (and exec syscall) and UDI
mondfe progrem are confused by noload sections. */
s->s_flags |= STYP_NOLOAD;
#endif
#endif
#endif
#endif
}
else if (strcmp (s->s_name, ".lit") == 0)
@ -4420,7 +4436,7 @@ fixup_segment (segP, this_segment_type)
break;
default:
#if defined(TC_A29K) || (defined(TE_PE) && defined(TC_I386)) || defined(TC_M88K)
#if defined(TC_A29K) || (defined(TE_PE) && defined(TC_I386)) || defined(TC_M88K) || defined(TC_OR32)
/* This really should be handled in the linker, but
backward compatibility forbids. */
add_number += S_GET_VALUE (add_symbolP);
@ -4466,7 +4482,7 @@ fixup_segment (segP, this_segment_type)
if (pcrel)
{
#if !defined(TC_M88K) && !(defined(TE_PE) && defined(TC_I386)) && !defined(TC_A29K)
#if !defined(TC_M88K) && !(defined(TE_PE) && defined(TC_I386)) && !defined(TC_A29K) && !defined(TC_OR32)
/* This adjustment is not correct on the m88k, for which the
linker does all the computation. */
add_number -= md_pcrel_from (fixP);

View File

@ -1,6 +1,6 @@
/* coff object file format
Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000
1999, 2000, 2002
Free Software Foundation, Inc.
This file is part of GAS.
@ -90,6 +90,11 @@
#define TARGET_FORMAT "coff-a29k-big"
#endif
#ifdef TC_OR32
#include "coff/or32.h"
#define TARGET_FORMAT "coff-or32-big"
#endif
#ifdef TC_I960
#include "coff/i960.h"
#define TARGET_FORMAT "coff-Intel-little"
@ -190,9 +195,7 @@ extern void coff_obj_symbol_new_hook PARAMS ((symbolS *));
extern void coff_obj_read_begin_hook PARAMS ((void));
#define obj_read_begin_hook coff_obj_read_begin_hook
/* ***********************************************************************
This file really contains two implementations of the COFF back end.
/* This file really contains two implementations of the COFF back end.
They are in the process of being merged, but this is only a
preliminary, mechanical merging. Many definitions that are
identical between the two are still found in both versions.
@ -226,9 +229,7 @@ extern void coff_obj_read_begin_hook PARAMS ((void));
See doc/internals.texi for a brief discussion of the history, if
you care.
Ken Raeburn, 5 May 1994
*********************************************************************** */
Ken Raeburn, 5 May 1994. */
#ifdef BFD_ASSEMBLER
@ -257,10 +258,10 @@ extern void coff_obj_read_begin_hook PARAMS ((void));
extern void obj_coff_section PARAMS ((int));
/* The number of auxiliary entries */
/* The number of auxiliary entries. */
#define S_GET_NUMBER_AUXILIARY(s) \
(coffsymbol (symbol_get_bfdsym (s))->native->u.syment.n_numaux)
/* The number of auxiliary entries */
/* The number of auxiliary entries. */
#define S_SET_NUMBER_AUXILIARY(s,v) (S_GET_NUMBER_AUXILIARY (s) = (v))
/* True if a symbol name is in the string table, i.e. its length is > 8. */
@ -271,9 +272,9 @@ extern int S_SET_STORAGE_CLASS PARAMS ((symbolS *, int));
extern int S_GET_STORAGE_CLASS PARAMS ((symbolS *));
extern void SA_SET_SYM_ENDNDX PARAMS ((symbolS *, symbolS *));
/* Auxiliary entry macros. SA_ stands for symbol auxiliary */
/* Omit the tv related fields */
/* Accessors */
/* Auxiliary entry macros. SA_ stands for symbol auxiliary. */
/* Omit the tv related fields. */
/* Accessors. */
#define SA_GET_SYM_TAGNDX(s) (SYM_AUXENT (s)->x_sym.x_tagndx.l)
#define SA_GET_SYM_LNNO(s) (SYM_AUXENT (s)->x_sym.x_misc.x_lnsz.x_lnno)
@ -297,15 +298,13 @@ extern void SA_SET_SYM_ENDNDX PARAMS ((symbolS *, symbolS *));
#define SA_SET_SCN_NRELOC(s,v) (SYM_AUXENT (s)->x_scn.x_nreloc=(v))
#define SA_SET_SCN_NLINNO(s,v) (SYM_AUXENT (s)->x_scn.x_nlinno=(v))
/*
* Internal use only definitions. SF_ stands for symbol flags.
*
* These values can be assigned to sy_symbol.ost_flags field of a symbolS.
*
* You'll break i960 if you shift the SYSPROC bits anywhere else. for
* more on the balname/callname hack, see tc-i960.h. b.out is done
* differently.
*/
/* Internal use only definitions. SF_ stands for symbol flags.
These values can be assigned to sy_symbol.ost_flags field of a symbolS.
You'll break i960 if you shift the SYSPROC bits anywhere else. for
more on the balname/callname hack, see tc-i960.h. b.out is done
differently. */
#define SF_I960_MASK (0x000001ff) /* Bits 0-8 are used by the i960 port. */
#define SF_SYSPROC (0x0000003f) /* bits 0-5 are used to store the sysproc number */
@ -330,7 +329,7 @@ extern void SA_SET_SYM_ENDNDX PARAMS ((symbolS *, symbolS *));
#define SF_GET_SEGMENT (0x00200000) /* Get the section of the forward symbol. */
/* All other bits are unused. */
/* Accessors */
/* Accessors. */
#define SF_GET(s) (*symbol_get_obj (s))
#define SF_GET_DEBUG(s) (symbol_get_bfdsym (s)->flags & BSF_DEBUGGING)
#define SF_SET_DEBUG(s) (symbol_get_bfdsym (s)->flags |= BSF_DEBUGGING)
@ -352,7 +351,7 @@ extern void SA_SET_SYM_ENDNDX PARAMS ((symbolS *, symbolS *));
#define SF_GET_IS_SYSPROC(s) (SF_GET (s) & SF_IS_SYSPROC) /* used by i960 */
#define SF_GET_SYSPROC(s) (SF_GET (s) & SF_SYSPROC) /* used by i960 */
/* Modifiers */
/* Modifiers. */
#define SF_SET(s,v) (SF_GET (s) = (v))
#define SF_SET_NORMAL_FIELD(s,v) (SF_GET (s) |= ((v) & SF_NORMAL_MASK))
#define SF_SET_DEBUG_FIELD(s,v) (SF_GET (s) |= ((v) & SF_DEBUG_MASK))
@ -414,7 +413,7 @@ extern symbolS *coff_last_function;
#endif
#endif
/* sanity check */
/* Sanity check. */
#ifdef TC_I960
#ifndef C_LEAFSTAT
@ -424,8 +423,8 @@ hey ! Where is the C_LEAFSTAT definition ? i960 - coff support is depending on i
#else /* not BFD_ASSEMBLER */
#ifdef TC_A29K
/* Allow translate from aout relocs to coff relocs */
#if defined TC_A29K || defined TC_OR32
/* Allow translate from aout relocs to coff relocs. */
#define NO_RELOC 20
#define RELOC_32 1
#define RELOC_8 2
@ -447,7 +446,7 @@ extern const segT N_TYPE_seg[];
/* SYMBOL TABLE */
/* Symbol table entry data type */
/* Symbol table entry data type. */
typedef struct
{
@ -455,18 +454,17 @@ typedef struct
struct internal_syment ost_entry;
/* Auxiliary entry. */
union internal_auxent ost_auxent[OBJ_COFF_MAX_AUXENTRIES];
/* obj_coff internal use only flags */
/* obj_coff internal use only flags. */
unsigned int ost_flags;
} obj_symbol_type;
#ifndef DO_NOT_STRIP
#define DO_NOT_STRIP 0
#endif
/* Symbol table macros and constants */
/* Symbol table macros and constants. */
/* Possible and usefull section number in symbol table
* The values of TEXT, DATA and BSS may not be portable.
*/
The values of TEXT, DATA and BSS may not be portable. */
#define C_ABS_SECTION N_ABS
#define C_UNDEF_SECTION N_UNDEF
@ -475,27 +473,25 @@ typedef struct
#define C_PTV_SECTION P_TV
#define C_REGISTER_SECTION 50
/*
* Macros to extract information from a symbol table entry.
* This syntaxic indirection allows independence regarding a.out or coff.
* The argument (s) of all these macros is a pointer to a symbol table entry.
*/
/* Macros to extract information from a symbol table entry.
This syntaxic indirection allows independence regarding a.out or coff.
The argument (s) of all these macros is a pointer to a symbol table entry. */
/* Predicates */
/* True if the symbol is external */
/* Predicates. */
/* True if the symbol is external. */
#define S_IS_EXTERNAL(s) ((s)->sy_symbol.ost_entry.n_scnum == C_UNDEF_SECTION)
/* True if symbol has been defined, ie :
section > 0 (DATA, TEXT or BSS)
section == 0 and value > 0 (external bss symbol) */
section == 0 and value > 0 (external bss symbol). */
#define S_IS_DEFINED(s) \
((s)->sy_symbol.ost_entry.n_scnum > C_UNDEF_SECTION \
|| ((s)->sy_symbol.ost_entry.n_scnum == C_UNDEF_SECTION \
&& S_GET_VALUE (s) > 0) \
|| ((s)->sy_symbol.ost_entry.n_scnum == C_ABS_SECTION))
/* True if a debug special symbol entry */
/* True if a debug special symbol entry. */
#define S_IS_DEBUG(s) ((s)->sy_symbol.ost_entry.n_scnum == C_DEBUG_SECTION)
/* True if a symbol is local symbol name */
/* A symbol name whose name includes ^A is a gas internal pseudo symbol */
/* True if a symbol is local symbol name. */
/* A symbol name whose name includes ^A is a gas internal pseudo symbol. */
#define S_IS_LOCAL(s) \
((s)->sy_symbol.ost_entry.n_scnum == C_REGISTER_SECTION \
|| (S_LOCAL_NAME(s) && ! flag_keep_locals && ! S_IS_DEBUG (s)) \
@ -504,13 +500,11 @@ typedef struct
|| (flag_strip_local_absolute \
&& !S_IS_EXTERNAL(s) \
&& (s)->sy_symbol.ost_entry.n_scnum == C_ABS_SECTION))
/* True if a symbol is not defined in this file */
/* True if a symbol is not defined in this file. */
#define S_IS_EXTERN(s) ((s)->sy_symbol.ost_entry.n_scnum == 0 \
&& S_GET_VALUE (s) == 0)
/*
* True if a symbol can be multiply defined (bss symbols have this def
* though it is bad practice)
*/
/* True if a symbol can be multiply defined (bss symbols have this def
though it is bad practice). */
#define S_IS_COMMON(s) ((s)->sy_symbol.ost_entry.n_scnum == 0 \
&& S_GET_VALUE (s) != 0)
/* True if a symbol name is in the string table, i.e. its length is > 8. */
@ -526,41 +520,41 @@ typedef struct
((s)->sy_symbol.ost_entry.n_sclass == C_WEAKEXT)
#endif
/* Accessors */
/* The name of the symbol */
/* Accessors. */
/* The name of the symbol. */
#define S_GET_NAME(s) ((char*) (s)->sy_symbol.ost_entry.n_offset)
/* The pointer to the string table */
/* The pointer to the string table. */
#define S_GET_OFFSET(s) ((s)->sy_symbol.ost_entry.n_offset)
/* The numeric value of the segment */
/* The numeric value of the segment. */
#define S_GET_SEGMENT(s) s_get_segment(s)
/* The data type */
/* The data type. */
#define S_GET_DATA_TYPE(s) ((s)->sy_symbol.ost_entry.n_type)
/* The storage class */
/* The storage class. */
#define S_GET_STORAGE_CLASS(s) ((s)->sy_symbol.ost_entry.n_sclass)
/* The number of auxiliary entries */
/* The number of auxiliary entries. */
#define S_GET_NUMBER_AUXILIARY(s) ((s)->sy_symbol.ost_entry.n_numaux)
/* Modifiers */
/* Set the name of the symbol */
/* Modifiers. */
/* Set the name of the symbol. */
#define S_SET_NAME(s,v) ((s)->sy_symbol.ost_entry.n_offset = (unsigned long) (v))
/* Set the offset of the symbol */
/* Set the offset of the symbol. */
#define S_SET_OFFSET(s,v) ((s)->sy_symbol.ost_entry.n_offset = (v))
/* The numeric value of the segment */
/* The numeric value of the segment. */
#define S_SET_SEGMENT(s,v) ((s)->sy_symbol.ost_entry.n_scnum = SEGMENT_TO_SYMBOL_TYPE(v))
/* The data type */
/* The data type. */
#define S_SET_DATA_TYPE(s,v) ((s)->sy_symbol.ost_entry.n_type = (v))
/* The storage class */
/* The storage class. */
#define S_SET_STORAGE_CLASS(s,v) ((s)->sy_symbol.ost_entry.n_sclass = (v))
/* The number of auxiliary entries */
/* The number of auxiliary entries. */
#define S_SET_NUMBER_AUXILIARY(s,v) ((s)->sy_symbol.ost_entry.n_numaux = (v))
/* Additional modifiers */
/* The symbol is external (does not mean undefined) */
/* Additional modifiers. */
/* The symbol is external (does not mean undefined). */
#define S_SET_EXTERNAL(s) { S_SET_STORAGE_CLASS(s, C_EXT) ; SF_CLEAR_LOCAL(s); }
/* Auxiliary entry macros. SA_ stands for symbol auxiliary */
/* Omit the tv related fields */
/* Accessors */
/* Auxiliary entry macros. SA_ stands for symbol auxiliary. */
/* Omit the tv related fields. */
/* Accessors. */
#define SYM_AUXENT(S) (&(S)->sy_symbol.ost_auxent[0])
#define SA_GET_SYM_TAGNDX(s) (SYM_AUXENT (s)->x_sym.x_tagndx.l)
@ -577,7 +571,7 @@ typedef struct
#define SA_GET_SCN_NRELOC(s) (SYM_AUXENT (s)->x_scn.x_nreloc)
#define SA_GET_SCN_NLINNO(s) (SYM_AUXENT (s)->x_scn.x_nlinno)
/* Modifiers */
/* Modifiers. */
#define SA_SET_SYM_TAGNDX(s,v) (SYM_AUXENT (s)->x_sym.x_tagndx.l=(v))
#define SA_SET_SYM_LNNO(s,v) (SYM_AUXENT (s)->x_sym.x_misc.x_lnsz.x_lnno=(v))
#define SA_SET_SYM_SIZE(s,v) (SYM_AUXENT (s)->x_sym.x_misc.x_lnsz.x_size=(v))
@ -592,15 +586,13 @@ typedef struct
#define SA_SET_SCN_NRELOC(s,v) (SYM_AUXENT (s)->x_scn.x_nreloc=(v))
#define SA_SET_SCN_NLINNO(s,v) (SYM_AUXENT (s)->x_scn.x_nlinno=(v))
/*
* Internal use only definitions. SF_ stands for symbol flags.
*
* These values can be assigned to sy_symbol.ost_flags field of a symbolS.
*
* You'll break i960 if you shift the SYSPROC bits anywhere else. for
* more on the balname/callname hack, see tc-i960.h. b.out is done
* differently.
*/
/* Internal use only definitions. SF_ stands for symbol flags.
These values can be assigned to sy_symbol.ost_flags field of a symbolS.
You'll break i960 if you shift the SYSPROC bits anywhere else. for
more on the balname/callname hack, see tc-i960.h. b.out is done
differently. */
#define SF_I960_MASK (0x000001ff) /* Bits 0-8 are used by the i960 port. */
#define SF_SYSPROC (0x0000003f) /* bits 0-5 are used to store the sysproc number */
@ -626,7 +618,7 @@ typedef struct
#define SF_ADJ_LNNOPTR (0x00400000) /* Has a lnnoptr */
/* All other bits are unused. */
/* Accessors */
/* Accessors. */
#define SF_GET(s) ((s)->sy_symbol.ost_flags)
#define SF_GET_NORMAL_FIELD(s) (SF_GET (s) & SF_NORMAL_MASK)
#define SF_GET_DEBUG_FIELD(s) (SF_GET (s) & SF_DEBUG_MASK)
@ -648,7 +640,7 @@ typedef struct
#define SF_GET_IS_SYSPROC(s) (SF_GET (s) & SF_IS_SYSPROC) /* used by i960 */
#define SF_GET_SYSPROC(s) (SF_GET (s) & SF_SYSPROC) /* used by i960 */
/* Modifiers */
/* Modifiers. */
#define SF_SET(s,v) (SF_GET (s) = (v))
#define SF_SET_NORMAL_FIELD(s,v) (SF_GET (s) |= ((v) & SF_NORMAL_MASK))
#define SF_SET_DEBUG_FIELD(s,v) (SF_GET (s) |= ((v) & SF_DEBUG_MASK))
@ -671,12 +663,10 @@ typedef struct
#define SF_SET_IS_SYSPROC(s) (SF_GET (s) |= SF_IS_SYSPROC) /* used by i960 */
#define SF_SET_SYSPROC(s,v) (SF_GET (s) |= ((v) & SF_SYSPROC)) /* used by i960 */
/* File header macro and type definition */
/* File header macro and type definition. */
/*
* File position calculators. Beware to use them when all the
* appropriate fields are set in the header.
*/
/* File position calculators. Beware to use them when all the
appropriate fields are set in the header. */
#ifdef OBJ_COFF_OMIT_OPTIONAL_HEADER
#define OBJ_COFF_AOUTHDRSZ (0)
@ -714,8 +704,8 @@ typedef struct
H_GET_TEXT_SIZE(h) + H_GET_DATA_SIZE(h) + \
H_GET_RELOCATION_SIZE(h) + H_GET_LINENO_SIZE(h))
/* Accessors */
/* aouthdr */
/* Accessors. */
/* aouthdr. */
#define H_GET_MAGIC_NUMBER(h) ((h)->aouthdr.magic)
#define H_GET_VERSION_STAMP(h) ((h)->aouthdr.vstamp)
#define H_GET_TEXT_SIZE(h) ((h)->aouthdr.tsize)
@ -724,7 +714,7 @@ typedef struct
#define H_GET_ENTRY_POINT(h) ((h)->aouthdr.entry)
#define H_GET_TEXT_START(h) ((h)->aouthdr.text_start)
#define H_GET_DATA_START(h) ((h)->aouthdr.data_start)
/* filehdr */
/* filehdr. */
#define H_GET_FILE_MAGIC_NUMBER(h) ((h)->filehdr.f_magic)
#define H_GET_NUMBER_OF_SECTIONS(h) ((h)->filehdr.f_nscns)
#define H_GET_TIME_STAMP(h) ((h)->filehdr.f_timdat)
@ -733,7 +723,7 @@ typedef struct
#define H_GET_SYMBOL_TABLE_SIZE(h) (H_GET_SYMBOL_COUNT(h) * SYMESZ)
#define H_GET_SIZEOF_OPTIONAL_HEADER(h) ((h)->filehdr.f_opthdr)
#define H_GET_FLAGS(h) ((h)->filehdr.f_flags)
/* Extra fields to achieve bsd a.out compatibility and for convenience */
/* Extra fields to achieve bsd a.out compatibility and for convenience. */
#define H_GET_RELOCATION_SIZE(h) ((h)->relocation_size)
#define H_GET_STRING_SIZE(h) ((h)->string_table_size)
#define H_GET_LINENO_SIZE(h) ((h)->lineno_size)
@ -750,8 +740,8 @@ typedef struct
#define H_GET_TEXT_RELOCATION_SIZE(h) (text_section_header.s_nreloc * RELSZ)
#define H_GET_DATA_RELOCATION_SIZE(h) (data_section_header.s_nreloc * RELSZ)
/* Modifiers */
/* aouthdr */
/* Modifiers. */
/* aouthdr. */
#define H_SET_MAGIC_NUMBER(h,v) ((h)->aouthdr.magic = (v))
#define H_SET_VERSION_STAMP(h,v) ((h)->aouthdr.vstamp = (v))
#define H_SET_TEXT_SIZE(h,v) ((h)->aouthdr.tsize = (v))
@ -760,7 +750,7 @@ typedef struct
#define H_SET_ENTRY_POINT(h,v) ((h)->aouthdr.entry = (v))
#define H_SET_TEXT_START(h,v) ((h)->aouthdr.text_start = (v))
#define H_SET_DATA_START(h,v) ((h)->aouthdr.data_start = (v))
/* filehdr */
/* filehdr. */
#define H_SET_FILE_MAGIC_NUMBER(h,v) ((h)->filehdr.f_magic = (v))
#define H_SET_NUMBER_OF_SECTIONS(h,v) ((h)->filehdr.f_nscns = (v))
#define H_SET_TIME_STAMP(h,v) ((h)->filehdr.f_timdat = (v))
@ -768,30 +758,30 @@ typedef struct
#define H_SET_SYMBOL_TABLE_SIZE(h,v) ((h)->filehdr.f_nsyms = (v))
#define H_SET_SIZEOF_OPTIONAL_HEADER(h,v) ((h)->filehdr.f_opthdr = (v))
#define H_SET_FLAGS(h,v) ((h)->filehdr.f_flags = (v))
/* Extra fields to achieve bsd a.out compatibility and for convinience */
/* Extra fields to achieve bsd a.out compatibility and for convinience. */
#define H_SET_RELOCATION_SIZE(h,t,d) ((h)->relocation_size = (t)+(d))
#define H_SET_STRING_SIZE(h,v) ((h)->string_table_size = (v))
#define H_SET_LINENO_SIZE(h,v) ((h)->lineno_size = (v))
/* Segment flipping */
/* Segment flipping. */
typedef struct
{
struct internal_aouthdr aouthdr; /* a.out header */
struct internal_filehdr filehdr; /* File header, not machine dep. */
long string_table_size; /* names + '\0' + sizeof (int) */
long relocation_size; /* Cumulated size of relocation
information for all sections in
bytes. */
long lineno_size; /* Size of the line number information
table in bytes */
long string_table_size; /* names + '\0' + sizeof (int) */
long relocation_size; /* Cumulated size of relocation
information for all sections in
bytes. */
long lineno_size; /* Size of the line number information
table in bytes. */
} object_headers;
struct lineno_list
{
struct bfd_internal_lineno line;
char *frag; /* Frag to which the line number is related */
struct lineno_list *next; /* Forward chain pointer */
char *frag; /* Frag to which the line number is related. */
struct lineno_list *next; /* Forward chain pointer. */
};
#define obj_segment_name(i) (segment_info[(int) (i)].scnhdr.s_name)
@ -823,7 +813,7 @@ extern void c_section_header PARAMS ((struct internal_scnhdr * header,
void tc_coff_symbol_emit_hook PARAMS ((symbolS *));
#endif
/* sanity check */
/* Sanity check. */
#ifdef TC_I960
#ifndef C_LEAFSTAT

1636
gas/config/tc-or32.c Normal file

File diff suppressed because it is too large Load Diff

63
gas/config/tc-or32.h Normal file
View File

@ -0,0 +1,63 @@
/* tc-or32.h -- Assemble for the OpenRISC 1000.
Copyright (C) 2002 Free Software Foundation, Inc.
Contributed by Damjan Lampret <lampret@opencores.org>.
Based upon a29k port.
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_OR32
#define TARGET_BYTES_BIG_ENDIAN 1
#define LEX_DOLLAR 1
#ifdef OBJ_ELF
#define TARGET_FORMAT "elf32-or32"
#define TARGET_ARCH bfd_arch_or32
#endif
#ifdef OBJ_COFF
#define TARGET_FORMAT "coff-or32-big"
#define reloc_type int
#endif
#define tc_unrecognized_line(c) or32_unrecognized_line (c)
extern int or32_unrecognized_line PARAMS ((int));
#define tc_headers_hook(a) ; /* not used */
#define tc_headers_hook(a) ; /* not used */
#define tc_crawl_symbol_chain(a) ; /* not used */
#define tc_coff_symbol_emit_hook(a) ; /* not used */
#define AOUT_MACHTYPE 80
#define TC_COFF_FIX2RTYPE(fix_ptr) tc_coff_fix2rtype (fix_ptr)
#define BFD_ARCH bfd_arch_or32
#define COFF_MAGIC SIPFBOMAGIC
/* Should the reloc be output ?
on the 29k, this is true only if there is a symbol attatched.
on the h8, this is allways true, since no fixup is done. */
#define TC_COUNT_RELOC(x) (x->fx_addsy)
#define TC_CONS_RELOC RELOC_32
#define COFF_FLAGS F_AR32W
#define NEED_FX_R_TYPE
#define ZERO_BASED_SEGMENTS

917
gas/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -137,6 +137,7 @@ changequote([,])dnl
m8*) cpu_type=m88k ;;
mips*el) cpu_type=mips endian=little ;;
mips*) cpu_type=mips endian=big ;;
or32*) cpu_type=or32 endian=big ;;
pjl*) cpu_type=pj endian=little ;;
pj*) cpu_type=pj endian=big ;;
powerpc*le*) cpu_type=ppc endian=little ;;
@ -375,6 +376,9 @@ changequote([,])dnl
mn10200-*-*) fmt=elf bfd_gas=yes ;;
mn10300-*-*) fmt=elf bfd_gas=yes ;;
openrisc-*-*) fmt=elf bfd_gas=yes ;;
or32-*-rtems*) fmt=coff ;;
or32-*-coff) fmt=coff ;;
or32-*-elf) fmt=elf ;;
pj*) fmt=elf ;;
ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
fmt=coff em=pe ;;

View File

@ -1,6 +1,6 @@
# Makefile.in generated automatically by automake 1.4 from Makefile.am
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -188,7 +188,7 @@ DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
TAR = gtar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
@ -278,7 +278,7 @@ uninstall-info:
else ii=; fi; \
list='$(INFO_DEPS)'; \
for file in $$list; do \
test -z "$ii" \
test -z "$$ii" \
|| install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
done
@$(NORMAL_UNINSTALL)

View File

@ -96,6 +96,8 @@ config/tc-ns32k.c
config/tc-ns32k.h
config/tc-openrisc.c
config/tc-openrisc.h
config/tc-or32.c
config/tc-or32.h
config/tc-pdp11.c
config/tc-pdp11.h
config/tc-pj.c

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
2002-01-28 Jason Merrill <jason@redhat.com>
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
* elf/dwarf2.h: Sync with gcc version.
* dis-asm.h : Add support for or32 targets
2002-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
@ -10,11 +10,6 @@
* cgen.h (BFD_VERSION): Use BFD_VERSION_DATE instead.
2002-01-15 Richard Earnshaw <rearnsha@arm.com>
* coff/arm.h (F_VFP_FLOAT): Define.
* elf/arm.h (F_VFP_FLOAT, EF_ARM_VFP_FLOAT): Define.
2001-12-14 Nick Clifton <nickc@cambridge.redhat.com>
* dis-asm.h (INIT_DISASSEMBLE_INFO_NO_ARCH): Initialise the
@ -22,7 +17,6 @@
2001-12-13 Jakub Jelinek <jakub@redhat.com>
* elf/common.h (PT_GNU_EH_FRAME): Define.
* bfdlink.h (struct bfd_link_info): Add eh_frame_hdr field.
2001-12-07 Geoffrey Keating <geoffk@redhat.com>
@ -48,7 +42,7 @@
2001-10-24 Neil Booth <neil@daikokuya.demon.co.uk>
* include/safe-ctype.h (_sch_isbasic, IS_ISOBASIC): New.
* safe-ctype.h (_sch_isbasic, IS_ISOBASIC): New.
2001-10-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
@ -160,12 +154,6 @@
* libiberty.h (lbasename): Change function declaration to return a
const char pointer.
2001-08-10 Richard Sandiford <rsandifo@redhat.com>
* opcode/mips.h (INSN_GP32): Remove.
(OPCODE_IS_MEMBER): Remove gp32 parameter.
(M_MOVE): New macro identifier.
2001-08-02 Mark Kettenis <kettenis@gnu.org>
* xregex.h (_REGEX_RE_COMP): Define.
@ -177,19 +165,10 @@
* bfdlink.h (struct bfd_link_info): add new boolean
field pei386_auto_import.
2001-08-01 Aldy Hernandez <aldyh@redhat.com>
* opcode/mips.h (INSN_ISA_MASK): Nuke bits 12-15.
2001-07-18 Andreas Jaeger <aj@suse.de>
* xregex2.h: Place under LGPL version 2.1.
2001-07-12 Jeff Johnston <jjohnstn@redhat.com>
* opcode/cgen.h (CGEN_INSN): Add regex support.
(build_insn_regex): Declare.
2001-07-10 Jeff Johnston <jjohnstn@redhat.com>
* xregex.h: New file to support libiberty regex.
@ -207,11 +186,6 @@
* ansidecl.h (NULL_PTR): Delete.
2001-05-11 Jakub Jelinek <jakub@redhat.com>
* elf/ia64.h (ELF_STRING_ia64_unwind_once): Define.
(ELF_STRING_ia64_unwind_info_once): Define.
2001-05-07 Zack Weinberg <zackw@stanford.edu>
* demangle.h: Use PARAMS for all prototypes.

View File

@ -1,3 +1,7 @@
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
* or32.h: New file.
2001-12-24 Tom Rix <trix@redhat.com>
* xcoff.h (xcoff_big_format_p): Make <bigaf> the default archive
@ -5,7 +9,6 @@
(XCOFFARMAG_ELEMENT_SIZE, XCOFFARMAGBIG_ELEMENT_SIZE): Define for
archive header ascii elements.
2001-12-17 Tom Rix <trix@redhat.com>
* xcoff.h : Add .except and .typchk section string and styp flags.
@ -15,6 +18,10 @@
* xcoff.h : Clean up formatting.
2002-01-15 Richard Earnshaw <rearnsha@arm.com>
* arm.h (F_VFP_FLOAT): Define.
2001-11-11 Timothy Wall <twall@alum.mit.edu>
* ti.h: Move arch-specific stuff from here...

287
include/coff/or32.h Normal file
View File

@ -0,0 +1,287 @@
/* COFF specification for OpenRISC 1000.
Copyright (C) 1993-2000, 2002 Free Software Foundation, Inc.
Contributed by David Wood @ New York University.
Modified by Johan Rydberg, <johan.rydberg@netinsight.se>
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. */
#ifndef OR32
# define OR32
#endif
/* File Header and related definitions. */
struct external_filehdr
{
char f_magic[2]; /* magic number */
char f_nscns[2]; /* number of sections */
char f_timdat[4]; /* time & date stamp */
char f_symptr[4]; /* file pointer to symtab */
char f_nsyms[4]; /* number of symtab entries */
char f_opthdr[2]; /* sizeof(optional hdr) */
char f_flags[2]; /* flags */
};
#define FILHDR struct external_filehdr
#define FILHSZ 20
/* Magic numbers for OpenRISC 1000. As it is know we use the
numbers for Am29000.
(AT&T will assign the "real" magic number). */
#define SIPFBOMAGIC 0572 /* Am29000 (Byte 0 is MSB). */
#define SIPRBOMAGIC 0573 /* Am29000 (Byte 0 is LSB). */
#define OR32_MAGIC_BIG SIPFBOMAGIC
#define OR32_MAGIC_LITTLE SIPRBOMAGIC
#define OR32BADMAG(x) (((x).f_magic!=OR32_MAGIC_BIG) && \
((x).f_magic!=OR32_MAGIC_LITTLE))
#define OMAGIC OR32_MAGIC_BIG
/* Optional (a.out) header. */
typedef struct external_aouthdr
{
char magic[2]; /* type of file */
char vstamp[2]; /* version stamp */
char tsize[4]; /* text size in bytes, padded to FW bdry */
char dsize[4]; /* initialized data " " */
char bsize[4]; /* uninitialized data " " */
char entry[4]; /* entry pt. */
char text_start[4]; /* base of text used for this file */
char data_start[4]; /* base of data used for this file */
} AOUTHDR;
#define AOUTSZ 28
#define AOUTHDRSZ 28
/* aouthdr magic numbers. */
#define NMAGIC 0410 /* separate i/d executable. */
#define SHMAGIC 0406 /* NYU/Ultra3 shared data executable
(writable text). */
#define _ETEXT "_etext"
/* Section header and related definitions. */
struct external_scnhdr
{
char s_name[8]; /* section name */
char s_paddr[4]; /* physical address, aliased s_nlib */
char s_vaddr[4]; /* virtual address */
char s_size[4]; /* section size */
char s_scnptr[4]; /* file ptr to raw data for section */
char s_relptr[4]; /* file ptr to relocation */
char s_lnnoptr[4]; /* file ptr to line numbers */
char s_nreloc[2]; /* number of relocation entries */
char s_nlnno[2]; /* number of line number entries */
char s_flags[4]; /* flags */
};
#define SCNHDR struct external_scnhdr
#define SCNHSZ 40
/* Names of "special" sections: */
#define _TEXT ".text"
#define _DATA ".data"
#define _BSS ".bss"
#define _LIT ".lit"
/* Section types - with additional section type for global
registers which will be relocatable for the OpenRISC 1000.
In instances where it is necessary for a linker to produce an
output file which contains text or data not based at virtual
address 0, e.g. for a ROM, then the linker should accept
address base information as command input and use PAD sections
to skip over unused addresses. */
#define STYP_BSSREG 0x1200 /* Global register area (like STYP_INFO) */
#define STYP_ENVIR 0x2200 /* Environment (like STYP_INFO) */
#define STYP_ABS 0x4000 /* Absolute (allocated, not reloc, loaded) */
/* Relocation information declaration and related definitions: */
struct external_reloc
{
char r_vaddr[4]; /* (virtual) address of reference */
char r_symndx[4]; /* index into symbol table */
char r_type[2]; /* relocation type */
};
#define RELOC struct external_reloc
#define RELSZ 10 /* sizeof (RELOC) */
/* Relocation types for the OpenRISC 1000: */
#define R_ABS 0 /* reference is absolute */
#define R_IREL 030 /* instruction relative (jmp/call) */
#define R_IABS 031 /* instruction absolute (jmp/call) */
#define R_ILOHALF 032 /* instruction low half (const) */
#define R_IHIHALF 033 /* instruction high half (consth) part 1 */
#define R_IHCONST 034 /* instruction high half (consth) part 2 */
/* constant offset of R_IHIHALF relocation */
#define R_BYTE 035 /* relocatable byte value */
#define R_HWORD 036 /* relocatable halfword value */
#define R_WORD 037 /* relocatable word value */
#define R_IGLBLRC 040 /* instruction global register RC */
#define R_IGLBLRA 041 /* instruction global register RA */
#define R_IGLBLRB 042 /* instruction global register RB */
/*
NOTE:
All the "I" forms refer to 29000 instruction formats. The linker is
expected to know how the numeric information is split and/or aligned
within the instruction word(s). R_BYTE works for instructions, too.
If the parameter to a CONSTH instruction is a relocatable type, two
relocation records are written. The first has an r_type of R_IHIHALF
(33 octal) and a normal r_vaddr and r_symndx. The second relocation
record has an r_type of R_IHCONST (34 octal), a normal r_vaddr (which
is redundant), and an r_symndx containing the 32-bit constant offset
to the relocation instead of the actual symbol table index. This
second record is always written, even if the constant offset is zero.
The constant fields of the instruction are set to zero. */
/* Line number entry declaration and related definitions: */
struct external_lineno
{
union
{
char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
char l_paddr[4]; /* (physical) address of line number */
}
l_addr;
char l_lnno[2]; /* line number */
};
#define LINENO struct external_lineno
#define LINESZ 6 /* sizeof (LINENO) */
/* Symbol entry declaration and related definitions: */
#define E_SYMNMLEN 8 /* Number of characters in a symbol name */
struct external_syment
{
union
{
char e_name[E_SYMNMLEN];
struct
{
char e_zeroes[4];
char e_offset[4];
}
e;
}
e;
char e_value[4];
char e_scnum[2];
char e_type[2];
char e_sclass[1];
char e_numaux[1];
};
#define SYMENT struct external_syment
#define SYMESZ 18
/* Storage class definitions - new classes for global registers: */
#define C_GLBLREG 19 /* global register */
#define C_EXTREG 20 /* external global register */
#define C_DEFREG 21 /* ext. def. of global register */
/* Derived symbol mask/shifts: */
#define N_BTMASK (0xf)
#define N_BTSHFT (4)
#define N_TMASK (0x30)
#define N_TSHIFT (2)
/* Auxiliary symbol table entry declaration and related
definitions. */
#define E_FILNMLEN 14 /* # characters in a file name */
#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
union external_auxent
{
struct
{
char x_tagndx[4]; /* str, un, or enum tag indx */
union
{
struct
{
char x_lnno[2]; /* declaration line number */
char x_size[2]; /* str/union/array size */
}
x_lnsz;
char x_fsize[4]; /* size of function */
}
x_misc;
union
{
struct /* if ISFCN, tag, or .bb */
{
char x_lnnoptr[4]; /* ptr to fcn line # */
char x_endndx[4]; /* entry ndx past block end */
}
x_fcn;
struct /* if ISARY, up to 4 dimen. */
{
char x_dimen[E_DIMNUM][2];
}
x_ary;
}
x_fcnary;
char x_tvndx[2]; /* tv index */
}
x_sym;
union
{
char x_fname[E_FILNMLEN];
struct
{
char x_zeroes[4];
char x_offset[4];
}
x_n;
}
x_file;
struct
{
char x_scnlen[4]; /* section length */
char x_nreloc[2]; /* # relocation entries */
char x_nlinno[2]; /* # line numbers */
}
x_scn;
struct
{
char x_tvfill[4]; /* tv fill value */
char x_tvlen[2]; /* length of .tv */
char x_tvran[2][2]; /* tv range */
}
x_tv; /* info about .tv section
(in auxent of symbol .tv)) */
};
#define AUXENT union external_auxent
#define AUXESZ 18

View File

@ -1,6 +1,6 @@
/* Interface between the opcode library and its callers.
Copyright 2001 Free Software Foundation, Inc.
Copyright 2001, 2002 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
@ -212,6 +212,8 @@ 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_openrisc PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_big_or32 PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_little_or32 PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_pdp11 PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_pj PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_big_powerpc PARAMS ((bfd_vma, disassemble_info*));

View File

@ -1,7 +1,20 @@
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
* or32.h: New file.
* common.h: Add support for or32 targets.
2002-01-28 Jason Merrill <jason@redhat.com>
* dwarf2.h: Sync with gcc version.
2002-01-16 Alan Modra <amodra@bigpond.net.au>
* ppc.h (DT_PPC64_GLINK): Define.
2002-01-15 Richard Earnshaw <rearnsha@arm.com>
* arm.h (F_VFP_FLOAT, EF_ARM_VFP_FLOAT): Define.
2002-01-09 Jason Thorpe <thorpej@wasabisystems.com>
* common.h: Update copyright years.
@ -24,6 +37,10 @@
unsigned int.
* common.h (SHN_BAD): Define.
2001-12-13 Jakub Jelinek <jakub@redhat.com>
* elf/common.h (PT_GNU_EH_FRAME): Define.
2001-12-11 Alan Modra <amodra@bigpond.net.au>
* common.h (SHN_XINDEX): Comment typo fix.
@ -90,7 +107,7 @@
(E_H8_MACH_H8300, E_H8_MACH_H8300H, E_H8_MACH_H8300S): New
machine types.
Tue Aug 26 23:32:34 2001 J"orn Rennecke <amylaar@redhat.com>
2001-08-26 J"orn Rennecke <amylaar@redhat.com>
* h8.h: New file.
@ -118,6 +135,11 @@ Tue Aug 26 23:32:34 2001 J"orn Rennecke <amylaar@redhat.com>
* common.h: Remove definition of EM_MIPS_RS4_BE. The constant was
never in active use and is used otherwise by the ABI.
2001-05-11 Jakub Jelinek <jakub@redhat.com>
* ia64.h (ELF_STRING_ia64_unwind_once): Define.
(ELF_STRING_ia64_unwind_info_once): Define.
2001-05-07 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
* external.h: Fix typo.
@ -390,8 +412,8 @@ Tue Aug 26 23:32:34 2001 J"orn Rennecke <amylaar@redhat.com>
(ELFOSABI_MODESTO): Defined.
(ELFOSABI_OPENBSD): Likewise.
Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com>
David Mosberger <davidm@hpl.hp.com>
2000-04-21 Richard Henderson <rth@cygnus.com>
David Mosberger <davidm@hpl.hp.com>
* ia64.h: New file.
@ -425,7 +447,7 @@ Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com>
(PF_ARM_PI): Define.
(PF_ARM_ABS): Define.
Wed Apr 5 22:08:59 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2000-04-05 J"orn Rennecke <amylaar@cygnus.co.uk>
* sh.h (R_SH_LOOP_START, R_SH_LOOP_END): New RELOC_NUMBERs.
@ -454,7 +476,7 @@ Wed Apr 5 22:08:59 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
* common.h (ELFOSABI_LINUX): Define.
Thu Feb 17 00:18:33 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2000-02-17 J"orn Rennecke <amylaar@cygnus.co.uk>
* sh.h: (EF_SH_MACH_MASK, EF_SH_UNKNOWN, EF_SH1, EF_SH2): New macros.
(EF_SH3, EF_SH_HAS_DSP, EF_SH_DSP, EF_SH3_DSP): Likewise.

View File

@ -199,6 +199,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Old version of PowerPC, this should be removed shortly. */
#define EM_PPC_OLD 17
/* (Depreciated) Temporary number for the OpenRISC processor. */
#define EM_OR32 0x8472
/* Cygnus M32R ELF backend. Written in the absence of an ABI. */
#define EM_CYGNUS_M32R 0x9041

62
include/elf/or32.h Normal file
View File

@ -0,0 +1,62 @@
/* OR1K ELF support for BFD. Derived from ppc.h.
Copyright (C) 2002 Free Software Foundation, Inc.
Contributed by Ivan Guzvinec <ivang@opencores.org>
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. */
#ifndef _ELF_OR1K_H
#define _ELF_OR1K_H
#include "elf/reloc-macros.h"
/* Relocations. */
START_RELOC_NUMBERS (elf_or32_reloc_type)
RELOC_NUMBER (R_OR32_NONE, 0)
RELOC_NUMBER (R_OR32_32, 1)
RELOC_NUMBER (R_OR32_16, 2)
RELOC_NUMBER (R_OR32_8, 3)
RELOC_NUMBER (R_OR32_CONST, 4)
RELOC_NUMBER (R_OR32_CONSTH, 5)
RELOC_NUMBER (R_OR32_JUMPTARG, 6)
RELOC_NUMBER (R_OR32_GNU_VTENTRY, 7)
RELOC_NUMBER (R_OR32_GNU_VTINHERIT, 8)
END_RELOC_NUMBERS (R_OR32_max)
/* Four bit OR32 machine type field. */
#define EF_OR32_MACH 0x0000000f
/* Various CPU types. */
#define E_OR32_MACH_BASE 0x00000000
#define E_OR32_MACH_UNUSED1 0x00000001
#define E_OR32_MACH_UNUSED2 0x00000002
#define E_OR32_MACH_UNUSED4 0x00000003
/* Processor specific section headers, sh_type field */
#define SHT_ORDERED SHT_HIPROC /* Link editor is to sort the \
entries in this section \
based on the address \
specified in the associated \
symbol table entry. */
/* Processor specific section flags, sh_flags field */
#define SHF_EXCLUDE 0x80000000 /* Link editor is to exclude \
this section from executable \
and shared objects that it \
builds when those objects \
are not to be furhter \
relocated. */
#endif /* _ELF_OR1K_H */

View File

@ -1,3 +1,7 @@
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
* or32.h: New file.
2002-01-22 Graydon Hoare <graydon@redhat.com>
* cgen.h (CGEN_MAYBE_MULTI_IFLD): New structure.
@ -118,11 +122,26 @@ Mon Dec 31 16:45:41 2001 Jeffrey A Law (law@cygnus.com)
* ppc.h: Revert 2001-08-08.
2001-08-10 Richard Sandiford <rsandifo@redhat.com>
* mips.h (INSN_GP32): Remove.
(OPCODE_IS_MEMBER): Remove gp32 parameter.
(M_MOVE): New macro identifier.
2001-08-08 Alan Modra <amodra@one.net.au>
1999-10-25 Torbjorn Granlund <tege@swox.com>
* ppc.h (struct powerpc_operand): New field `reloc'.
2001-08-01 Aldy Hernandez <aldyh@redhat.com>
* mips.h (INSN_ISA_MASK): Nuke bits 12-15.
2001-07-12 Jeff Johnston <jjohnstn@redhat.com>
* cgen.h (CGEN_INSN): Add regex support.
(build_insn_regex): Declare.
2001-07-11 Frank Ch. Eigler <fche@redhat.com>
* cgen.h (CGEN_MACH): Add insn_chunk_bitsize field.

188
include/opcode/or32.h Normal file
View File

@ -0,0 +1,188 @@
/* Table of opcodes for the OpenRISC 1000 ISA.
Copyright 2002 Free Software Foundation, Inc.
Contributed by Damjan Lampret (lampret@opencores.org).
This file is part of or1k_gen_isa, or1ksim, GDB and GAS.
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. */
/* We treat all letters the same in encode/decode routines so
we need to assign some characteristics to them like signess etc. */
#ifndef OR32_H_ISA
#define OR32_H_ISA
#define NUM_UNSIGNED (0)
#define NUM_SIGNED (1)
#ifndef PARAMS
#define PARAMS(x) x
#endif
#ifndef CONST
#define CONST const
#endif
#define MAX_GPRS 32
#define PAGE_SIZE 4096
#undef __HALF_WORD_INSN__
#define OPERAND_DELIM (',')
#define OR32_IF_DELAY (1)
#define OR32_W_FLAG (2)
#define OR32_R_FLAG (4)
struct or32_letter
{
char letter;
int sign;
/* int reloc; relocation per letter ?? */
};
/* Main instruction specification array. */
struct or32_opcode
{
/* Name of the instruction. */
char *name;
/* A string of characters which describe the operands.
Valid characters are:
,() Itself. Characters appears in the assembly code.
rA Register operand.
rB Register operand.
rD Register operand.
I An immediate operand, range -32768 to 32767.
J An immediate operand, range . (unused)
K An immediate operand, range 0 to 65535.
L An immediate operand, range 0 to 63.
M An immediate operand, range . (unused)
N An immediate operand, range -33554432 to 33554431.
O An immediate operand, range . (unused). */
char *args;
/* Opcode and operand encoding. */
char *encoding;
void (*exec) PARAMS ((void));
unsigned int flags;
};
#define OPTYPE_LAST (0x80000000)
#define OPTYPE_OP (0x40000000)
#define OPTYPE_REG (0x20000000)
#define OPTYPE_SIG (0x10000000)
#define OPTYPE_DIS (0x08000000)
#define OPTYPE_DST (0x04000000)
#define OPTYPE_SBIT (0x00001F00)
#define OPTYPE_SHR (0x0000001F)
#define OPTYPE_SBIT_SHR (8)
/* MM: Data how to decode operands. */
extern struct insn_op_struct
{
unsigned long type;
unsigned long data;
} **op_start;
#ifdef HAS_EXECUTION
extern void l_invalid PARAMS ((void));
extern void l_sfne PARAMS ((void));
extern void l_bf PARAMS ((void));
extern void l_add PARAMS ((void));
extern void l_sw PARAMS ((void));
extern void l_sb PARAMS ((void));
extern void l_sh PARAMS ((void));
extern void l_lwz PARAMS ((void));
extern void l_lbs PARAMS ((void));
extern void l_lbz PARAMS ((void));
extern void l_lhs PARAMS ((void));
extern void l_lhz PARAMS ((void));
extern void l_movhi PARAMS ((void));
extern void l_and PARAMS ((void));
extern void l_or PARAMS ((void));
extern void l_xor PARAMS ((void));
extern void l_sub PARAMS ((void));
extern void l_mul PARAMS ((void));
extern void l_div PARAMS ((void));
extern void l_divu PARAMS ((void));
extern void l_sll PARAMS ((void));
extern void l_sra PARAMS ((void));
extern void l_srl PARAMS ((void));
extern void l_j PARAMS ((void));
extern void l_jal PARAMS ((void));
extern void l_jalr PARAMS ((void));
extern void l_jr PARAMS ((void));
extern void l_rfe PARAMS ((void));
extern void l_nop PARAMS ((void));
extern void l_bnf PARAMS ((void));
extern void l_sfeq PARAMS ((void));
extern void l_sfgts PARAMS ((void));
extern void l_sfges PARAMS ((void));
extern void l_sflts PARAMS ((void));
extern void l_sfles PARAMS ((void));
extern void l_sfgtu PARAMS ((void));
extern void l_sfgeu PARAMS ((void));
extern void l_sfltu PARAMS ((void));
extern void l_sfleu PARAMS ((void));
extern void l_mtspr PARAMS ((void));
extern void l_mfspr PARAMS ((void));
extern void l_sys PARAMS ((void));
extern void l_trap PARAMS ((void)); /* CZ 21/06/01. */
extern void l_macrc PARAMS ((void));
extern void l_mac PARAMS ((void));
extern void l_msb PARAMS ((void));
extern void l_invalid PARAMS ((void));
extern void l_cust1 PARAMS ((void));
extern void l_cust2 PARAMS ((void));
extern void l_cust3 PARAMS ((void));
extern void l_cust4 PARAMS ((void));
#endif
extern void l_none PARAMS ((void));
extern const struct or32_letter or32_letters[];
extern const struct or32_opcode or32_opcodes[];
extern const unsigned int or32_num_opcodes;
/* Calculates instruction length in bytes. Always 4 for OR32. */
extern int insn_len PARAMS ((int));
/* Is individual insn's operand signed or unsigned? */
extern int letter_signed PARAMS ((char));
/* Number of letters in the individual lettered operand. */
extern int letter_range PARAMS ((char));
/* MM: Returns index of given instruction name. */
extern int insn_index PARAMS ((char *));
/* MM: Returns instruction name from index. */
extern const char *insn_name PARAMS ((int));
/* MM: Constructs new FSM, based on or32_opcodes. */
extern void build_automata PARAMS ((void));
/* MM: Destructs FSM. */
extern void destruct_automata PARAMS ((void));
/* MM: Decodes instruction using FSM. Call build_automata first. */
extern int insn_decode PARAMS ((unsigned int));
/* Disassemble one instruction from insn to disassemble.
Return the size of the instruction. */
int disassemble_insn PARAMS ((unsigned long));
#endif

View File

@ -1,3 +1,15 @@
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
* emulparams/or32.sh: New file.
* emulparams/or32elf.sh: New file.
* scripttempl/or32.sc: New file.
* configure.tgt : Add support for or32.
* configure: Regenerate
* Makefile.am: Add support for or32.
* Makefile.in: Regenerate.
* NEWS: Mention support for or32.
* po/ld.pot: Regenerate.
2002-01-29 Chris Demetriou <cgd@broadcom.com>
Mitch Lichtenberg <mpl@broadcom.com>
@ -479,7 +491,7 @@
* emultempl/elf32.em (gld${EMULATION_NAME}_finish): New.
(struct ld_emulation_xfer_struct): Use it.
Tue Nov 13 11:27:14 2001 Ross Alexander <ross.alexander@uk.neceur.com>
2001-11-13 Ross Alexander <ross.alexander@uk.neceur.com>
* emulparams/elf64hppa.sh (OTHER_BSS_END_SYMBOLS): Add
additional symbols referenced by newer crt0.o files from HP.
@ -832,7 +844,7 @@ Tue Nov 13 11:27:14 2001 Ross Alexander <ross.alexander@uk.neceur.com>
* scripttempl/v850.sc: Add gcc_except_table sections.
Fri Sep 7 11:34:24 2001 Jeffrey A Law (law@cygnus.com)
2001-09-11 Jeffrey A Law (law@cygnus.com)
* emulparams/h8300helf.sh: Move stack to a much higher memory address.
* emulparams/h8300self.sh: Similarly.
@ -888,7 +900,7 @@ Fri Sep 7 11:34:24 2001 Jeffrey A Law (law@cygnus.com)
ARCH specification.
* emulparams/h8300self.sh: Similarly.
Wed Aug 28 13:37:20 2001 J"orn Rennecke <amylaar@redhat.com>
2001-08-28 J"orn Rennecke <amylaar@redhat.com>
* Makefile.am (ALL_EMULATIONS): Add eh8300elf.o, eh8300elf.o and
eh8300self.o .
@ -1989,7 +2001,7 @@ Wed Aug 28 13:37:20 2001 J"orn Rennecke <amylaar@redhat.com>
* emulparams/elf32ppcsim.sh (OTHER_READWRITE_SECTIONS): Likewise.
* emulparams/elf32lppcsim.sh (OTHER_READWRITE_SECTIONS): Likewise.
Mon Dec 11 14:50:33 MET 2000 Jan Hubicka <jh@suse.cz>
2000-12-11 Jan Hubicka <jh@suse.cz>
* NEWS: Add note about x86_64 architecture.
@ -2058,7 +2070,7 @@ Mon Dec 11 14:50:33 MET 2000 Jan Hubicka <jh@suse.cz>
* scripttempl/h8300h.sc: Likewise.
* scripttempl/h8300s.sc: Likewise.
Tue Nov 14 00:59:19 2000 Denis Chertykov <denisc@overta.ru>
2000-11-14 Denis Chertykov <denisc@overta.ru>
* scripttempl/elf32avr.sc: Fix bug in .eeprom segment.
@ -3017,7 +3029,7 @@ Tue Nov 14 00:59:19 2000 Denis Chertykov <denisc@overta.ru>
* lexsup.c (parse_args): `i' == `r', not `q'.
Thu May 18 10:47:57 2000 Jeffrey A Law (law@cygnus.com)
2000-05-18 Jeffrey A Law (law@cygnus.com)
* configure.tgt (hppa*64*-*-*): Enable PA64 target.
@ -3058,7 +3070,7 @@ Thu May 18 10:47:57 2000 Jeffrey A Law (law@cygnus.com)
* lexsup.c (set_section_start): Use bfd_scan_vma rather than
strtoul.
Mon May 1 17:34:34 2000 Jim Wilson <wilson@cygnus.com>
2000-05-01 Jim Wilson <wilson@cygnus.com>
* configure.host (ia64-*-linux-gnu*): Change gcc to ${CC}.
@ -3069,7 +3081,7 @@ Mon May 1 17:34:34 2000 Jim Wilson <wilson@cygnus.com>
* ld.h: Correctly check GCC version.
Tue Apr 25 11:20:43 2000 Jeffrey A Law (law@cygnus.com)
2000-04-25 Jeffrey A Law (law@cygnus.com)
* Makefile.am: Add PA64 support. Add missing dependencies for
PA32 elf support.
@ -3108,8 +3120,8 @@ Tue Apr 25 11:20:43 2000 Jeffrey A Law (law@cygnus.com)
* configure.tgt: Add NetBSD/sparc ELF, and NetBSD/sparc64 support.
Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com>
David Mosberger <davidm@hpl.hp.com>
2000-04-21 Richard Henderson <rth@cygnus.com>
David Mosberger <davidm@hpl.hp.com>
* Makefile.am (ALL_64_EMULATIONS): Add eelf64_ia64.o.
(eelf64_ia64.c): New rule.
@ -3188,7 +3200,7 @@ Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com>
* ld.texinfo (Simple Example): Remove extraneous paragraph.
Fri Apr 7 15:56:57 2000 Andrew Cagney <cagney@b1.cygnus.com>
2000-04-07 Andrew Cagney <cagney@b1.cygnus.com>
* configure.in (WARN_CFLAGS): Set to -W -Wall by default. Add
--enable-build-warnings option.
@ -3457,7 +3469,7 @@ Fri Apr 7 15:56:57 2000 Andrew Cagney <cagney@b1.cygnus.com>
being invoked by a comnpiler driver program.
Fix description of the behaviour of the -n command line switch.
Wed Jan 5 08:02:12 2000 Catherine Moore <clm@cygnus.com>
2000-01-05 Catherine Moore <clm@cygnus.com>
* ld.h (wildcard_spec): Change exclude_name to exclude_name_list.
(name_list): New.

View File

@ -224,6 +224,8 @@ ALL_EMULATIONS = \
emipspe.o \
enews.o \
ens32knbsd.o \
eor32.o \
eor32elf.o \
epc532macha.o \
epdp11.o \
epjelf.o \
@ -793,6 +795,12 @@ enews.c: $(srcdir)/emulparams/news.sh \
ens32knbsd.c: $(srcdir)/emulparams/ns32knbsd.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
${GENSCRIPTS} ns32knbsd "$(tdir_ns32knbsd)"
eor32.c: $(srcdir)/emulparams/or32.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/or32.sc ${GEN_DEPENDS}
${GENSCRIPTS} or32 "$(tdir_or32)"
eor32elf.c: $(srcdir)/emulparams/or32elf.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} or32elf "$(tdir_or32elf)"
epc532macha.c: $(srcdir)/emulparams/pc532macha.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
${GENSCRIPTS} pc532macha "$(tdir_pc532macha)"

View File

@ -1,6 +1,6 @@
# Makefile.in generated automatically by automake 1.4 from Makefile.am
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -333,6 +333,8 @@ ALL_EMULATIONS = \
emipspe.o \
enews.o \
ens32knbsd.o \
eor32.o \
eor32elf.o \
epc532macha.o \
epdp11.o \
epjelf.o \
@ -493,7 +495,7 @@ deffilep.c ldgram.c ldlex.c
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
TAR = gtar
GZIP_ENV = --best
SOURCES = $(ld_new_SOURCES) $(EXTRA_ld_new_SOURCES)
OBJECTS = $(ld_new_OBJECTS)
@ -681,7 +683,7 @@ uninstall-info:
else ii=; fi; \
list='$(INFO_DEPS)'; \
for file in $$list; do \
test -z "$ii" \
test -z "$$ii" \
|| install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
done
@$(NORMAL_UNINSTALL)
@ -794,7 +796,7 @@ maintainer-clean-recursive:
dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
test "$$subdir" = "." && dot_seen=yes; \
test "$$subdir" != "." || dot_seen=yes; \
done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \
target=`echo $@ | sed s/-recursive//`; \
@ -1514,6 +1516,12 @@ enews.c: $(srcdir)/emulparams/news.sh \
ens32knbsd.c: $(srcdir)/emulparams/ns32knbsd.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
${GENSCRIPTS} ns32knbsd "$(tdir_ns32knbsd)"
eor32.c: $(srcdir)/emulparams/or32.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/or32.sc ${GEN_DEPENDS}
${GENSCRIPTS} or32 "$(tdir_or32)"
eor32elf.c: $(srcdir)/emulparams/or32elf.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} or32elf "$(tdir_or32elf)"
epc532macha.c: $(srcdir)/emulparams/pc532macha.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
${GENSCRIPTS} pc532macha "$(tdir_pc532macha)"

View File

@ -1,4 +1,6 @@
-*- text -*-
* Support for the OpenRISC 32-bit embedded processor by OpenCores.
* Support for -z nocopyreloc in the x86 ELF linker, which disables
production of copy relocs. Warning: using this option may result in
non-sharable applications.

197
ld/configure vendored
View File

@ -3145,7 +3145,7 @@ EOF
fi
for ac_hdr in unistd.h
for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
@ -3277,11 +3277,24 @@ else
#include <fcntl.h>
#include <sys/mman.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
/* This mess was copied from the GNU getpagesize.h. */
#ifndef HAVE_GETPAGESIZE
# ifdef HAVE_UNISTD_H
# include <unistd.h>
# endif
/* Assume that all systems that can run configure have sys/param.h. */
# ifndef HAVE_SYS_PARAM_H
@ -3389,7 +3402,7 @@ main()
}
EOF
if { (eval echo configure:3393: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:3406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@ -3417,17 +3430,17 @@ unistd.h values.h sys/param.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:3421: checking for $ac_hdr" >&5
echo "configure:3434: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3426 "configure"
#line 3439 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3431: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:3444: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -3457,12 +3470,12 @@ done
__argz_count __argz_stringify __argz_next
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3461: checking for $ac_func" >&5
echo "configure:3474: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3466 "configure"
#line 3479 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3485,7 +3498,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3514,12 +3527,12 @@ done
for ac_func in stpcpy
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3518: checking for $ac_func" >&5
echo "configure:3531: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3523 "configure"
#line 3536 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3542,7 +3555,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3576,19 +3589,19 @@ EOF
if test $ac_cv_header_locale_h = yes; then
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
echo "configure:3580: checking for LC_MESSAGES" >&5
echo "configure:3593: checking for LC_MESSAGES" >&5
if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3585 "configure"
#line 3598 "configure"
#include "confdefs.h"
#include <locale.h>
int main() {
return LC_MESSAGES
; return 0; }
EOF
if { (eval echo configure:3592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
am_cv_val_LC_MESSAGES=yes
else
@ -3609,7 +3622,7 @@ EOF
fi
fi
echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
echo "configure:3613: checking whether NLS is requested" >&5
echo "configure:3626: checking whether NLS is requested" >&5
# Check whether --enable-nls or --disable-nls was given.
if test "${enable_nls+set}" = set; then
enableval="$enable_nls"
@ -3629,7 +3642,7 @@ fi
EOF
echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
echo "configure:3633: checking whether included gettext is requested" >&5
echo "configure:3646: checking whether included gettext is requested" >&5
# Check whether --with-included-gettext or --without-included-gettext was given.
if test "${with_included_gettext+set}" = set; then
withval="$with_included_gettext"
@ -3648,17 +3661,17 @@ fi
ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
echo "configure:3652: checking for libintl.h" >&5
echo "configure:3665: checking for libintl.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3657 "configure"
#line 3670 "configure"
#include "confdefs.h"
#include <libintl.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3662: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:3675: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -3675,19 +3688,19 @@ fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
echo "configure:3679: checking for gettext in libc" >&5
echo "configure:3692: checking for gettext in libc" >&5
if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3684 "configure"
#line 3697 "configure"
#include "confdefs.h"
#include <libintl.h>
int main() {
return (int) gettext ("")
; return 0; }
EOF
if { (eval echo configure:3691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gt_cv_func_gettext_libc=yes
else
@ -3703,7 +3716,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
if test "$gt_cv_func_gettext_libc" != "yes"; then
echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
echo "configure:3707: checking for bindtextdomain in -lintl" >&5
echo "configure:3720: checking for bindtextdomain in -lintl" >&5
ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -3711,7 +3724,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
#line 3715 "configure"
#line 3728 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -3722,7 +3735,7 @@ int main() {
bindtextdomain()
; return 0; }
EOF
if { (eval echo configure:3726: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -3738,19 +3751,19 @@ fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
echo "configure:3742: checking for gettext in libintl" >&5
echo "configure:3755: checking for gettext in libintl" >&5
if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3747 "configure"
#line 3760 "configure"
#include "confdefs.h"
int main() {
return (int) gettext ("")
; return 0; }
EOF
if { (eval echo configure:3754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gt_cv_func_gettext_libintl=yes
else
@ -3778,7 +3791,7 @@ EOF
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3782: checking for $ac_word" >&5
echo "configure:3795: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3812,12 +3825,12 @@ fi
for ac_func in dcgettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3816: checking for $ac_func" >&5
echo "configure:3829: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3821 "configure"
#line 3834 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3840,7 +3853,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3867,7 +3880,7 @@ done
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3871: checking for $ac_word" >&5
echo "configure:3884: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3903,7 +3916,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3907: checking for $ac_word" >&5
echo "configure:3920: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3935,7 +3948,7 @@ else
fi
cat > conftest.$ac_ext <<EOF
#line 3939 "configure"
#line 3952 "configure"
#include "confdefs.h"
int main() {
@ -3943,7 +3956,7 @@ extern int _nl_msg_cat_cntr;
return _nl_msg_cat_cntr
; return 0; }
EOF
if { (eval echo configure:3947: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
CATOBJEXT=.gmo
DATADIRNAME=share
@ -3975,7 +3988,7 @@ fi
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3979: checking for $ac_word" >&5
echo "configure:3992: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4009,7 +4022,7 @@ fi
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4013: checking for $ac_word" >&5
echo "configure:4026: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4045,7 +4058,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4049: checking for $ac_word" >&5
echo "configure:4062: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4135,7 +4148,7 @@ fi
LINGUAS=
else
echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
echo "configure:4139: checking for catalogs to be installed" >&5
echo "configure:4152: checking for catalogs to be installed" >&5
NEW_LINGUAS=
for lang in ${LINGUAS=$ALL_LINGUAS}; do
case "$ALL_LINGUAS" in
@ -4163,17 +4176,17 @@ echo "configure:4139: checking for catalogs to be installed" >&5
if test "$CATOBJEXT" = ".cat"; then
ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
echo "configure:4167: checking for linux/version.h" >&5
echo "configure:4180: checking for linux/version.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4172 "configure"
#line 4185 "configure"
#include "confdefs.h"
#include <linux/version.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4177: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4190: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -4238,7 +4251,7 @@ fi
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
echo "configure:4242: checking for executable suffix" >&5
echo "configure:4255: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4248,7 +4261,7 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
if { (eval echo configure:4252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
if { (eval echo configure:4265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
*.c | *.o | *.obj) ;;
@ -4274,7 +4287,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4278: checking for $ac_word" >&5
echo "configure:4291: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4310,7 +4323,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4314: checking for $ac_word" >&5
echo "configure:4327: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4343,7 +4356,7 @@ test -n "$LEX" || LEX=""$missing_dir/missing flex""
# Extract the first word of "flex", so it can be a program name with args.
set dummy flex; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4347: checking for $ac_word" >&5
echo "configure:4360: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4377,7 +4390,7 @@ then
*) ac_lib=l ;;
esac
echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
echo "configure:4381: checking for yywrap in -l$ac_lib" >&5
echo "configure:4394: checking for yywrap in -l$ac_lib" >&5
ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -4385,7 +4398,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$ac_lib $LIBS"
cat > conftest.$ac_ext <<EOF
#line 4389 "configure"
#line 4402 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -4396,7 +4409,7 @@ int main() {
yywrap()
; return 0; }
EOF
if { (eval echo configure:4400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -4419,7 +4432,7 @@ fi
fi
echo $ac_n "checking lex output file root""... $ac_c" 1>&6
echo "configure:4423: checking lex output file root" >&5
echo "configure:4436: checking lex output file root" >&5
if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4440,7 +4453,7 @@ echo "$ac_t""$ac_cv_prog_lex_root" 1>&6
LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6
echo "configure:4444: checking whether yytext is a pointer" >&5
echo "configure:4457: checking whether yytext is a pointer" >&5
if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4452,14 +4465,14 @@ echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c
ac_save_LIBS="$LIBS"
LIBS="$LIBS $LEXLIB"
cat > conftest.$ac_ext <<EOF
#line 4456 "configure"
#line 4469 "configure"
#include "confdefs.h"
`cat $LEX_OUTPUT_ROOT.c`
int main() {
; return 0; }
EOF
if { (eval echo configure:4463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_prog_lex_yytext_pointer=yes
else
@ -4482,7 +4495,7 @@ fi
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
echo "configure:4486: checking whether to enable maintainer-specific portions of Makefiles" >&5
echo "configure:4499: checking whether to enable maintainer-specific portions of Makefiles" >&5
# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
if test "${enable_maintainer_mode+set}" = set; then
enableval="$enable_maintainer_mode"
@ -4516,17 +4529,17 @@ for ac_hdr in string.h strings.h stdlib.h unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:4520: checking for $ac_hdr" >&5
echo "configure:4533: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4525 "configure"
#line 4538 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4530: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4543: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -4555,12 +4568,12 @@ done
for ac_func in sbrk
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:4559: checking for $ac_func" >&5
echo "configure:4572: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4564 "configure"
#line 4577 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -4583,7 +4596,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:4587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4600: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -4612,12 +4625,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
echo "configure:4616: checking for $ac_hdr that defines DIR" >&5
echo "configure:4629: checking for $ac_hdr that defines DIR" >&5
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4621 "configure"
#line 4634 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_hdr>
@ -4625,7 +4638,7 @@ int main() {
DIR *dirp = 0;
; return 0; }
EOF
if { (eval echo configure:4629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4642: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_header_dirent_$ac_safe=yes"
else
@ -4650,7 +4663,7 @@ done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
echo "configure:4654: checking for opendir in -ldir" >&5
echo "configure:4667: checking for opendir in -ldir" >&5
ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -4658,7 +4671,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldir $LIBS"
cat > conftest.$ac_ext <<EOF
#line 4662 "configure"
#line 4675 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -4669,7 +4682,7 @@ int main() {
opendir()
; return 0; }
EOF
if { (eval echo configure:4673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4686: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -4691,7 +4704,7 @@ fi
else
echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
echo "configure:4695: checking for opendir in -lx" >&5
echo "configure:4708: checking for opendir in -lx" >&5
ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -4699,7 +4712,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lx $LIBS"
cat > conftest.$ac_ext <<EOF
#line 4703 "configure"
#line 4716 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -4710,7 +4723,7 @@ int main() {
opendir()
; return 0; }
EOF
if { (eval echo configure:4714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -4743,12 +4756,12 @@ EOF
esac
echo $ac_n "checking whether strstr must be declared""... $ac_c" 1>&6
echo "configure:4747: checking whether strstr must be declared" >&5
echo "configure:4760: checking whether strstr must be declared" >&5
if eval "test \"`echo '$''{'bfd_cv_decl_needed_strstr'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4752 "configure"
#line 4765 "configure"
#include "confdefs.h"
#include <stdio.h>
@ -4769,7 +4782,7 @@ int main() {
char *(*pfn) = (char *(*)) strstr
; return 0; }
EOF
if { (eval echo configure:4773: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4786: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_decl_needed_strstr=no
else
@ -4790,12 +4803,12 @@ EOF
fi
echo $ac_n "checking whether free must be declared""... $ac_c" 1>&6
echo "configure:4794: checking whether free must be declared" >&5
echo "configure:4807: checking whether free must be declared" >&5
if eval "test \"`echo '$''{'bfd_cv_decl_needed_free'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4799 "configure"
#line 4812 "configure"
#include "confdefs.h"
#include <stdio.h>
@ -4816,7 +4829,7 @@ int main() {
char *(*pfn) = (char *(*)) free
; return 0; }
EOF
if { (eval echo configure:4820: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4833: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_decl_needed_free=no
else
@ -4837,12 +4850,12 @@ EOF
fi
echo $ac_n "checking whether sbrk must be declared""... $ac_c" 1>&6
echo "configure:4841: checking whether sbrk must be declared" >&5
echo "configure:4854: checking whether sbrk must be declared" >&5
if eval "test \"`echo '$''{'bfd_cv_decl_needed_sbrk'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4846 "configure"
#line 4859 "configure"
#include "confdefs.h"
#include <stdio.h>
@ -4863,7 +4876,7 @@ int main() {
char *(*pfn) = (char *(*)) sbrk
; return 0; }
EOF
if { (eval echo configure:4867: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4880: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_decl_needed_sbrk=no
else
@ -4884,12 +4897,12 @@ EOF
fi
echo $ac_n "checking whether getenv must be declared""... $ac_c" 1>&6
echo "configure:4888: checking whether getenv must be declared" >&5
echo "configure:4901: checking whether getenv must be declared" >&5
if eval "test \"`echo '$''{'bfd_cv_decl_needed_getenv'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4893 "configure"
#line 4906 "configure"
#include "confdefs.h"
#include <stdio.h>
@ -4910,7 +4923,7 @@ int main() {
char *(*pfn) = (char *(*)) getenv
; return 0; }
EOF
if { (eval echo configure:4914: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4927: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_decl_needed_getenv=no
else
@ -4931,12 +4944,12 @@ EOF
fi
echo $ac_n "checking whether environ must be declared""... $ac_c" 1>&6
echo "configure:4935: checking whether environ must be declared" >&5
echo "configure:4948: checking whether environ must be declared" >&5
if eval "test \"`echo '$''{'bfd_cv_decl_needed_environ'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4940 "configure"
#line 4953 "configure"
#include "confdefs.h"
#include <stdio.h>
@ -4957,7 +4970,7 @@ int main() {
char *(*pfn) = (char *(*)) environ
; return 0; }
EOF
if { (eval echo configure:4961: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:4974: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
bfd_cv_decl_needed_environ=no
else
@ -4985,19 +4998,19 @@ fi
# constants, while still supporting pre-ANSI compilers which do not
# support string concatenation.
echo $ac_n "checking whether ANSI C string concatenation works""... $ac_c" 1>&6
echo "configure:4989: checking whether ANSI C string concatenation works" >&5
echo "configure:5002: checking whether ANSI C string concatenation works" >&5
if eval "test \"`echo '$''{'ld_cv_string_concatenation'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4994 "configure"
#line 5007 "configure"
#include "confdefs.h"
int main() {
char *a = "a" "a";
; return 0; }
EOF
if { (eval echo configure:5001: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:5014: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ld_cv_string_concatenation=yes
else

View File

@ -368,6 +368,8 @@ z8k-*-coff) targ_emul=z8002; targ_extra_emuls=z8001 ;;
ns32k-pc532-mach* | ns32k-pc532-ux*) targ_emul=pc532macha ;;
ns32k-pc532-netbsd* | ns32k-pc532-lites*) targ_emul=ns32knbsd ;;
openrisc-*-*) targ_emul=elf32openrisc ;;
or32-*-coff) targ_emul=or32 ;;
or32-*-elf) targ_emul=or32elf ;;
pdp11-*-*) targ_emul=pdp11 ;;
pjl*-*-*) targ_emul=pjlelf ; targ_extra_emuls="elf_i386" ;;
pj*-*-*) targ_emul=pjelf ;;

6
ld/emulparams/or32.sh Normal file
View File

@ -0,0 +1,6 @@
SCRIPT_NAME=or32
OUTPUT_FORMAT="coff-or32-big"
# OUTPUT_FORMAT="elf32-or32"
TEXT_START_ADDR=0x1000000
TARGET_PAGE_SIZE=0x1000000
ARCH=or32

6
ld/emulparams/or32elf.sh Normal file
View File

@ -0,0 +1,6 @@
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-or32"
TEXT_START_ADDR=0x1000000
TARGET_PAGE_SIZE=0x1000000
MAXPAGESIZE=0x1000
ARCH=or32

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2002-01-17 13:58+0000\n"
"POT-Creation-Date: 2002-01-31 17:09+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -272,7 +272,7 @@ msgid "Errors encountered processing file %s for interworking"
msgstr ""
#: emultempl/pe.em:1297 ldlang.c:2050 ldlang.c:4441 ldlang.c:4474
#: ldmain.c:1067
#: ldmain.c:1069
msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
msgstr ""
@ -311,11 +311,11 @@ msgstr ""
msgid "%B%F: could not read symbols; %E\n"
msgstr ""
#: ldcref.c:469 ldmain.c:1133 ldmain.c:1137
#: ldcref.c:469 ldmain.c:1135 ldmain.c:1139
msgid "%B%F: could not read symbols: %E\n"
msgstr ""
#: ldcref.c:537 ldcref.c:544 ldmain.c:1183 ldmain.c:1190
#: ldcref.c:537 ldcref.c:544 ldmain.c:1185 ldmain.c:1192
msgid "%B%F: could not read relocs: %E\n"
msgstr ""
@ -755,222 +755,225 @@ msgstr ""
msgid "%P%F: -f may not be used without -shared\n"
msgstr ""
#: ldmain.c:334
#, c-format
msgid "using %s linker script:\n"
#: ldmain.c:335
msgid "using external linker script:"
msgstr ""
#: ldmain.c:369
#: ldmain.c:337
msgid "using internal linker script:"
msgstr ""
#: ldmain.c:371
msgid "%P%F: no input files\n"
msgstr ""
#: ldmain.c:374
#: ldmain.c:376
msgid "%P: mode %s\n"
msgstr ""
#: ldmain.c:391
#: ldmain.c:393
msgid "%P%F: cannot open map file %s: %E\n"
msgstr ""
#: ldmain.c:438
#: ldmain.c:440
msgid "%P: link errors found, deleting executable `%s'\n"
msgstr ""
#: ldmain.c:449
#: ldmain.c:451
msgid "%F%B: final close failed: %E\n"
msgstr ""
#: ldmain.c:473
#: ldmain.c:475
msgid "%X%P: unable to open for source of copy `%s'\n"
msgstr ""
#: ldmain.c:475
#: ldmain.c:477
msgid "%X%P: unable to open for destination of copy `%s'\n"
msgstr ""
#: ldmain.c:481
#: ldmain.c:483
msgid "%P: Error writing file `%s'\n"
msgstr ""
#: ldmain.c:487 pe-dll.c:1442
#: ldmain.c:489 pe-dll.c:1442
#, c-format
msgid "%P: Error closing file `%s'\n"
msgstr ""
#: ldmain.c:504
#: ldmain.c:506
#, c-format
msgid "%s: total time in link: %ld.%06ld\n"
msgstr ""
#: ldmain.c:507
#: ldmain.c:509
#, c-format
msgid "%s: data size %ld\n"
msgstr ""
#: ldmain.c:548
#: ldmain.c:550
msgid "%P%F: missing argument to -m\n"
msgstr ""
#: ldmain.c:676 ldmain.c:697 ldmain.c:728
#: ldmain.c:678 ldmain.c:699 ldmain.c:730
msgid "%P%F: bfd_hash_table_init failed: %E\n"
msgstr ""
#: ldmain.c:681 ldmain.c:700
#: ldmain.c:683 ldmain.c:702
msgid "%P%F: bfd_hash_lookup failed: %E\n"
msgstr ""
#: ldmain.c:715
#: ldmain.c:717
msgid "%X%P: error: duplicate retain-symbols-file\n"
msgstr ""
#: ldmain.c:759
#: ldmain.c:761
msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
msgstr ""
#: ldmain.c:764
#: ldmain.c:766
msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
msgstr ""
#: ldmain.c:840
#: ldmain.c:842
msgid ""
"Archive member included because of file (symbol)\n"
"\n"
msgstr ""
#: ldmain.c:911
#: ldmain.c:913
msgid "%X%C: multiple definition of `%T'\n"
msgstr ""
#: ldmain.c:914
#: ldmain.c:916
msgid "%D: first defined here\n"
msgstr ""
#: ldmain.c:918
#: ldmain.c:920
msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
msgstr ""
#: ldmain.c:949
#: ldmain.c:951
msgid "%B: warning: definition of `%T' overriding common\n"
msgstr ""
#: ldmain.c:952
#: ldmain.c:954
msgid "%B: warning: common is here\n"
msgstr ""
#: ldmain.c:959
#: ldmain.c:961
msgid "%B: warning: common of `%T' overridden by definition\n"
msgstr ""
#: ldmain.c:962
#: ldmain.c:964
msgid "%B: warning: defined here\n"
msgstr ""
#: ldmain.c:969
#: ldmain.c:971
msgid "%B: warning: common of `%T' overridden by larger common\n"
msgstr ""
#: ldmain.c:972
#: ldmain.c:974
msgid "%B: warning: larger common is here\n"
msgstr ""
#: ldmain.c:976
#: ldmain.c:978
msgid "%B: warning: common of `%T' overriding smaller common\n"
msgstr ""
#: ldmain.c:979
#: ldmain.c:981
msgid "%B: warning: smaller common is here\n"
msgstr ""
#: ldmain.c:983
#: ldmain.c:985
msgid "%B: warning: multiple common of `%T'\n"
msgstr ""
#: ldmain.c:985
#: ldmain.c:987
msgid "%B: warning: previous common is here\n"
msgstr ""
#: ldmain.c:1006 ldmain.c:1045
#: ldmain.c:1008 ldmain.c:1047
msgid "%P: warning: global constructor %s used\n"
msgstr ""
#: ldmain.c:1055
#: ldmain.c:1057
msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
msgstr ""
#: ldmain.c:1239
#: ldmain.c:1241
msgid "%F%P: bfd_hash_table_init failed: %E\n"
msgstr ""
#: ldmain.c:1246
#: ldmain.c:1248
msgid "%F%P: bfd_hash_lookup failed: %E\n"
msgstr ""
#: ldmain.c:1266
#: ldmain.c:1268
msgid "%C: undefined reference to `%T'\n"
msgstr ""
#: ldmain.c:1272
#: ldmain.c:1274
msgid "%D: more undefined references to `%T' follow\n"
msgstr ""
#: ldmain.c:1279
#: ldmain.c:1281
msgid "%B: undefined reference to `%T'\n"
msgstr ""
#: ldmain.c:1285
#: ldmain.c:1287
msgid "%B: more undefined references to `%T' follow\n"
msgstr ""
#: ldmain.c:1305 ldmain.c:1326 ldmain.c:1345
#: ldmain.c:1307 ldmain.c:1328 ldmain.c:1347
msgid "%P%X: generated"
msgstr ""
#: ldmain.c:1308
#: ldmain.c:1310
msgid " relocation truncated to fit: %s %T"
msgstr ""
#: ldmain.c:1329
#: ldmain.c:1331
#, c-format
msgid "dangerous relocation: %s\n"
msgstr ""
#: ldmain.c:1348
#: ldmain.c:1350
msgid " reloc refers to symbol `%T' which is not being output\n"
msgstr ""
#: ldmisc.c:176
#: ldmisc.c:179
msgid "no symbol"
msgstr ""
#: ldmisc.c:240
#: ldmisc.c:243
#, c-format
msgid "built in linker script:%u"
msgstr ""
#: ldmisc.c:290 ldmisc.c:294
#: ldmisc.c:293 ldmisc.c:297
msgid "%B%F: could not read symbols\n"
msgstr ""
#. We use abfd->filename in this initial line,
#. in case filename is a .h file or something
#. similarly unhelpful.
#: ldmisc.c:330
#: ldmisc.c:333
msgid "%B: In function `%T':\n"
msgstr ""
#: ldmisc.c:439
#: ldmisc.c:442
msgid "%F%P: internal error %s %d\n"
msgstr ""
#: ldmisc.c:489
#: ldmisc.c:492
msgid "%P: internal error: aborting at %s line %d in %s\n"
msgstr ""
#: ldmisc.c:492
#: ldmisc.c:495
msgid "%P: internal error: aborting at %s line %d\n"
msgstr ""
#: ldmisc.c:494
#: ldmisc.c:497
msgid "%P%F: please report this bug\n"
msgstr ""
@ -981,7 +984,7 @@ msgid "GNU ld version %s\n"
msgstr ""
#: ldver.c:42
msgid "Copyright 2001 Free Software Foundation, Inc.\n"
msgid "Copyright 2002 Free Software Foundation, Inc.\n"
msgstr ""
#: ldver.c:43

37
ld/scripttempl/or32.sc Normal file
View File

@ -0,0 +1,37 @@
cat <<EOF
OUTPUT_FORMAT("${OUTPUT_FORMAT}")
${LIB_SEARCH_DIRS}
SECTIONS
{
.text : {
*(.text)
${RELOCATING+ __etext = .};
${CONSTRUCTING+ __CTOR_LIST__ = .;}
${CONSTRUCTING+ LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)}
${CONSTRUCTING+ *(.ctors)}
${CONSTRUCTING+ LONG(0)}
${CONSTRUCTING+ __CTOR_END__ = .;}
${CONSTRUCTING+ __DTOR_LIST__ = .;}
${CONSTRUCTING+ LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)}
${CONSTRUCTING+ *(.dtors)}
${CONSTRUCTING+ LONG(0)}
${CONSTRUCTING+ __DTOR_END__ = .;}
*(.lit)
*(.shdata)
}
.shbss SIZEOF(.text) + ADDR(.text) : {
*(.shbss)
}
.data : {
*(.data)
${RELOCATING+ __edata = .};
}
.bss SIZEOF(.data) + ADDR(.data) :
{
*(.bss)
*(COMMON)
${RELOCATING+ __end = ALIGN(0x8)};
}
}
EOF

View File

@ -1,3 +1,15 @@
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
* or32-dis.c: New file.
* or32-opc.c: New file.
* configure.in: Add support for or32.
* configure: Regenerate.
* Makefile.am: Add support for or32.
* Makefile.in: Regenerate.
* disassemble.c: Add support for or32.
* po/POTFILES.in: Regenerate.
* po/opcodes.pot: Regenerate.
2002-01-27 Daniel Jacobowitz <drow@mvista.com>
* configure: Regenerated.

View File

@ -106,6 +106,8 @@ CFILES = \
openrisc-dis.c \
openrisc-ibld.c \
openrisc-opc.c \
or32-dis.c \
or32-opc.c \
pdp11-dis.c \
pdp11-opc.c \
pj-dis.c \
@ -195,6 +197,8 @@ ALL_MACHINES = \
openrisc-dis.lo \
openrisc-ibld.lo \
openrisc-opc.lo \
or32-dis.lo \
or32-opc.lo \
pdp11-dis.lo \
pdp11-opc.lo \
pj-dis.lo \

View File

@ -1,6 +1,6 @@
# Makefile.in generated automatically by automake 1.4 from Makefile.am
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -217,6 +217,8 @@ CFILES = \
openrisc-dis.c \
openrisc-ibld.c \
openrisc-opc.c \
or32-dis.c \
or32-opc.c \
pdp11-dis.c \
pdp11-opc.c \
pj-dis.c \
@ -307,6 +309,8 @@ ALL_MACHINES = \
openrisc-dis.lo \
openrisc-ibld.lo \
openrisc-opc.lo \
or32-dis.lo \
or32-opc.lo \
pdp11-dis.lo \
pdp11-opc.lo \
pj-dis.lo \
@ -407,7 +411,7 @@ acinclude.m4 aclocal.m4 config.in configure configure.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
TAR = gtar
GZIP_ENV = --best
SOURCES = libopcodes.a.c $(libopcodes_la_SOURCES)
OBJECTS = libopcodes.a.$(OBJEXT) $(libopcodes_la_OBJECTS)
@ -572,7 +576,7 @@ maintainer-clean-recursive:
dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
test "$$subdir" = "." && dot_seen=yes; \
test "$$subdir" != "." || dot_seen=yes; \
done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \
target=`echo $@ | sed s/-recursive//`; \

116
opcodes/configure vendored
View File

@ -3240,7 +3240,7 @@ EOF
fi
for ac_hdr in unistd.h
for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
@ -3372,11 +3372,24 @@ else
#include <fcntl.h>
#include <sys/mman.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
/* This mess was copied from the GNU getpagesize.h. */
#ifndef HAVE_GETPAGESIZE
# ifdef HAVE_UNISTD_H
# include <unistd.h>
# endif
/* Assume that all systems that can run configure have sys/param.h. */
# ifndef HAVE_SYS_PARAM_H
@ -3484,7 +3497,7 @@ main()
}
EOF
if { (eval echo configure:3488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
if { (eval echo configure:3501: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@ -3512,17 +3525,17 @@ unistd.h values.h sys/param.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:3516: checking for $ac_hdr" >&5
echo "configure:3529: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3521 "configure"
#line 3534 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3526: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:3539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -3552,12 +3565,12 @@ done
__argz_count __argz_stringify __argz_next
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3556: checking for $ac_func" >&5
echo "configure:3569: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3561 "configure"
#line 3574 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3580,7 +3593,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3597: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3609,12 +3622,12 @@ done
for ac_func in stpcpy
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3613: checking for $ac_func" >&5
echo "configure:3626: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3618 "configure"
#line 3631 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3637,7 +3650,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3641: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3671,19 +3684,19 @@ EOF
if test $ac_cv_header_locale_h = yes; then
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
echo "configure:3675: checking for LC_MESSAGES" >&5
echo "configure:3688: checking for LC_MESSAGES" >&5
if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3680 "configure"
#line 3693 "configure"
#include "confdefs.h"
#include <locale.h>
int main() {
return LC_MESSAGES
; return 0; }
EOF
if { (eval echo configure:3687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
am_cv_val_LC_MESSAGES=yes
else
@ -3704,7 +3717,7 @@ EOF
fi
fi
echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
echo "configure:3708: checking whether NLS is requested" >&5
echo "configure:3721: checking whether NLS is requested" >&5
# Check whether --enable-nls or --disable-nls was given.
if test "${enable_nls+set}" = set; then
enableval="$enable_nls"
@ -3724,7 +3737,7 @@ fi
EOF
echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
echo "configure:3728: checking whether included gettext is requested" >&5
echo "configure:3741: checking whether included gettext is requested" >&5
# Check whether --with-included-gettext or --without-included-gettext was given.
if test "${with_included_gettext+set}" = set; then
withval="$with_included_gettext"
@ -3743,17 +3756,17 @@ fi
ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
echo "configure:3747: checking for libintl.h" >&5
echo "configure:3760: checking for libintl.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3752 "configure"
#line 3765 "configure"
#include "confdefs.h"
#include <libintl.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3757: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:3770: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -3770,19 +3783,19 @@ fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
echo "configure:3774: checking for gettext in libc" >&5
echo "configure:3787: checking for gettext in libc" >&5
if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3779 "configure"
#line 3792 "configure"
#include "confdefs.h"
#include <libintl.h>
int main() {
return (int) gettext ("")
; return 0; }
EOF
if { (eval echo configure:3786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gt_cv_func_gettext_libc=yes
else
@ -3798,7 +3811,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
if test "$gt_cv_func_gettext_libc" != "yes"; then
echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
echo "configure:3802: checking for bindtextdomain in -lintl" >&5
echo "configure:3815: checking for bindtextdomain in -lintl" >&5
ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -3806,7 +3819,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
#line 3810 "configure"
#line 3823 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@ -3817,7 +3830,7 @@ int main() {
bindtextdomain()
; return 0; }
EOF
if { (eval echo configure:3821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@ -3833,19 +3846,19 @@ fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
echo "configure:3837: checking for gettext in libintl" >&5
echo "configure:3850: checking for gettext in libintl" >&5
if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3842 "configure"
#line 3855 "configure"
#include "confdefs.h"
int main() {
return (int) gettext ("")
; return 0; }
EOF
if { (eval echo configure:3849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gt_cv_func_gettext_libintl=yes
else
@ -3873,7 +3886,7 @@ EOF
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3877: checking for $ac_word" >&5
echo "configure:3890: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3907,12 +3920,12 @@ fi
for ac_func in dcgettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3911: checking for $ac_func" >&5
echo "configure:3924: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 3916 "configure"
#line 3929 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@ -3935,7 +3948,7 @@ $ac_func();
; return 0; }
EOF
if { (eval echo configure:3939: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:3952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@ -3962,7 +3975,7 @@ done
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3966: checking for $ac_word" >&5
echo "configure:3979: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -3998,7 +4011,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4002: checking for $ac_word" >&5
echo "configure:4015: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4030,7 +4043,7 @@ else
fi
cat > conftest.$ac_ext <<EOF
#line 4034 "configure"
#line 4047 "configure"
#include "confdefs.h"
int main() {
@ -4038,7 +4051,7 @@ extern int _nl_msg_cat_cntr;
return _nl_msg_cat_cntr
; return 0; }
EOF
if { (eval echo configure:4042: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:4055: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
CATOBJEXT=.gmo
DATADIRNAME=share
@ -4070,7 +4083,7 @@ fi
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4074: checking for $ac_word" >&5
echo "configure:4087: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4104,7 +4117,7 @@ fi
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4108: checking for $ac_word" >&5
echo "configure:4121: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4140,7 +4153,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4144: checking for $ac_word" >&5
echo "configure:4157: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4230,7 +4243,7 @@ fi
LINGUAS=
else
echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
echo "configure:4234: checking for catalogs to be installed" >&5
echo "configure:4247: checking for catalogs to be installed" >&5
NEW_LINGUAS=
for lang in ${LINGUAS=$ALL_LINGUAS}; do
case "$ALL_LINGUAS" in
@ -4258,17 +4271,17 @@ echo "configure:4234: checking for catalogs to be installed" >&5
if test "$CATOBJEXT" = ".cat"; then
ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
echo "configure:4262: checking for linux/version.h" >&5
echo "configure:4275: checking for linux/version.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4267 "configure"
#line 4280 "configure"
#include "confdefs.h"
#include <linux/version.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4272: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4285: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -4346,7 +4359,7 @@ if test "x$cross_compiling" = "xno"; then
EXEEXT_FOR_BUILD='$(EXEEXT)'
else
echo $ac_n "checking for build system executable suffix""... $ac_c" 1>&6
echo "configure:4350: checking for build system executable suffix" >&5
echo "configure:4363: checking for build system executable suffix" >&5
if eval "test \"`echo '$''{'bfd_cv_build_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@ -4383,7 +4396,7 @@ fi
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
echo "configure:4387: checking for a BSD compatible install" >&5
echo "configure:4400: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@ -4440,17 +4453,17 @@ for ac_hdr in string.h strings.h stdlib.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:4444: checking for $ac_hdr" >&5
echo "configure:4457: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 4449 "configure"
#line 4462 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:4454: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:4467: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@ -4597,6 +4610,7 @@ if test x${all_targets} = xfalse ; then
bfd_mn10300_arch) ta="$ta m10300-dis.lo m10300-opc.lo" ;;
bfd_ns32k_arch) ta="$ta ns32k-dis.lo" ;;
bfd_openrisc_arch) ta="$ta openrisc-asm.lo openrisc-desc.lo openrisc-dis.lo openrisc-ibld.lo openrisc-opc.lo" using_cgen=yes ;;
bfd_or32_arch) ta="$ta or32-dis.lo or32-opc.lo" using_cgen=yes ;;
bfd_pdp11_arch) ta="$ta pdp11-dis.lo pdp11-opc.lo" ;;
bfd_pj_arch) ta="$ta pj-dis.lo pj-opc.lo" ;;
bfd_powerpc_arch) ta="$ta ppc-dis.lo ppc-opc.lo" ;;

View File

@ -199,6 +199,7 @@ if test x${all_targets} = xfalse ; then
bfd_mn10300_arch) ta="$ta m10300-dis.lo m10300-opc.lo" ;;
bfd_ns32k_arch) ta="$ta ns32k-dis.lo" ;;
bfd_openrisc_arch) ta="$ta openrisc-asm.lo openrisc-desc.lo openrisc-dis.lo openrisc-ibld.lo openrisc-opc.lo" using_cgen=yes ;;
bfd_or32_arch) ta="$ta or32-dis.lo or32-opc.lo" using_cgen=yes ;;
bfd_pdp11_arch) ta="$ta pdp11-dis.lo pdp11-opc.lo" ;;
bfd_pj_arch) ta="$ta pj-dis.lo pj-opc.lo" ;;
bfd_powerpc_arch) ta="$ta ppc-dis.lo ppc-opc.lo" ;;

View File

@ -1,5 +1,5 @@
/* Select disassembly routine for specified architecture.
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
@ -49,6 +49,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define ARCH_mn10300
#define ARCH_ns32k
#define ARCH_openrisc
#define ARCH_or32
#define ARCH_pdp11
#define ARCH_pj
#define ARCH_powerpc
@ -235,6 +236,14 @@ disassembler (abfd)
disassemble = print_insn_openrisc;
break;
#endif
#ifdef ARCH_or32
case bfd_arch_or32:
if (bfd_big_endian (abfd))
disassemble = print_insn_big_or32;
else
disassemble = print_insn_little_or32;
break;
#endif
#ifdef ARCH_pdp11
case bfd_arch_pdp11:
disassemble = print_insn_pdp11;

345
opcodes/or32-dis.c Normal file
View File

@ -0,0 +1,345 @@
/* Instruction printing code for the OpenRISC 1000
Copyright (C) 2002 Free Software Foundation, Inc.
Contributed by Damjan Lampret <lampret@opencores.org>.
Modified from a29k port.
This file is part of Binutils.
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. */
#define DEBUG 0
#include "dis-asm.h"
#include "opcode/or32.h"
#include "safe-ctype.h"
#include <string.h>
#define EXTEND29(x) ((x) & 0x10000000 ? ((x) | 0xf0000000) : ((x)))
static void find_bytes_big PARAMS ((unsigned char *, unsigned long *));
static void find_bytes_little PARAMS ((unsigned char *, unsigned long *));
static unsigned long or32_extract PARAMS ((char, char *, unsigned long));
static int or32_opcode_match PARAMS ((unsigned long, char *));
static void or32_print_register PARAMS ((char, char *, unsigned long, struct disassemble_info *));
static void or32_print_immediate PARAMS ((char, char *, unsigned long, struct disassemble_info *));
static int print_insn PARAMS ((bfd_vma, struct disassemble_info *));
/* Now find the four bytes of INSN_CH and put them in *INSN. */
static void
find_bytes_big (insn_ch, insn)
unsigned char *insn_ch;
unsigned long *insn;
{
*insn =
((unsigned long) insn_ch[0] << 24) +
((unsigned long) insn_ch[1] << 16) +
((unsigned long) insn_ch[2] << 8) +
((unsigned long) insn_ch[3]);
#if DEBUG
printf ("find_bytes_big3: %x\n", *insn);
#endif
}
static void
find_bytes_little (insn_ch, insn)
unsigned char *insn_ch;
unsigned long *insn;
{
*insn =
((unsigned long) insn_ch[3] << 24) +
((unsigned long) insn_ch[2] << 16) +
((unsigned long) insn_ch[1] << 8) +
((unsigned long) insn_ch[0]);
}
typedef void (*find_byte_func_type)
PARAMS ((unsigned char *, unsigned long *));
static unsigned long
or32_extract (param_ch, enc_initial, insn)
char param_ch;
char *enc_initial;
unsigned long insn;
{
char *enc;
unsigned long ret = 0;
int opc_pos = 0;
int param_pos = 0;
for (enc = enc_initial; *enc != '\0'; enc++)
if (*enc == param_ch)
if (enc - 2 >= enc_initial && (*(enc - 2) == '0') && (*(enc - 1) == 'x'))
continue;
else
param_pos++;
#if DEBUG
printf ("or32_extract: %c %x ", param_ch, param_pos);
#endif
opc_pos = 32;
for (enc = enc_initial; *enc != '\0'; )
if ((*enc == '0') && (*(enc + 1) == 'x'))
{
opc_pos -= 4;
if ((param_ch == '0') || (param_ch == '1'))
{
unsigned long tmp = strtol (enc, NULL, 16);
#if DEBUG
printf (" enc=%s, tmp=%x ", enc, tmp);
#endif
if (param_ch == '0')
tmp = 15 - tmp;
ret |= tmp << opc_pos;
}
enc += 3;
}
else if ((*enc == '0') || (*enc == '1'))
{
opc_pos--;
if (param_ch == *enc)
ret |= 1 << opc_pos;
enc++;
}
else if (*enc == param_ch)
{
opc_pos--;
param_pos--;
#if DEBUG
printf ("\n ret=%x opc_pos=%x, param_pos=%x\n", ret, opc_pos, param_pos);
#endif
ret += ((insn >> opc_pos) & 0x1) << param_pos;
if (!param_pos
&& letter_signed (param_ch)
&& ret >> letter_range (param_ch) - 1)
{
#if DEBUG
printf ("\n ret=%x opc_pos=%x, param_pos=%x\n",
ret, opc_pos, param_pos);
#endif
ret |= 0xffffffff << letter_range(param_ch);
#if DEBUG
printf ("\n after conversion to signed: ret=%x\n", ret);
#endif
}
enc++;
}
else if (ISALPHA (*enc))
{
opc_pos--;
enc++;
}
else if (*enc == '-')
{
opc_pos--;
enc++;
}
else
enc++;
#if DEBUG
printf ("ret=%x\n", ret);
#endif
return ret;
}
static int
or32_opcode_match (insn, encoding)
unsigned long insn;
char *encoding;
{
unsigned long ones, zeros;
#if DEBUG
printf ("or32_opcode_match: %.8lx\n", insn);
#endif
ones = or32_extract ('1', encoding, insn);
zeros = or32_extract ('0', encoding, insn);
#if DEBUG
printf ("ones: %x \n", ones);
printf ("zeros: %x \n", zeros);
#endif
if ((insn & ones) != ones)
{
#if DEBUG
printf ("ret1\n");
#endif
return 0;
}
if ((~insn & zeros) != zeros)
{
#if DEBUG
printf ("ret2\n");
#endif
return 0;
}
#if DEBUG
printf ("ret3\n");
#endif
return 1;
}
/* Print register to INFO->STREAM. Used only by print_insn. */
static void
or32_print_register (param_ch, encoding, insn, info)
char param_ch;
char *encoding;
unsigned long insn;
struct disassemble_info *info;
{
int regnum = or32_extract (param_ch, encoding, insn);
#if DEBUG
printf ("or32_print_register: %c, %s, %x\n", param_ch, encoding, insn);
#endif
if (param_ch == 'A')
(*info->fprintf_func) (info->stream, "r%d", regnum);
else if (param_ch == 'B')
(*info->fprintf_func) (info->stream, "r%d", regnum);
else if (param_ch == 'D')
(*info->fprintf_func) (info->stream, "r%d", regnum);
else if (regnum < 16)
(*info->fprintf_func) (info->stream, "r%d", regnum);
else if (regnum < 32)
(*info->fprintf_func) (info->stream, "r%d", regnum-16);
else
(*info->fprintf_func) (info->stream, "X%d", regnum);
}
/* Print immediate to INFO->STREAM. Used only by print_insn. */
static void
or32_print_immediate (param_ch, encoding, insn, info)
char param_ch;
char *encoding;
unsigned long insn;
struct disassemble_info *info;
{
int imm = or32_extract(param_ch, encoding, insn);
if (letter_signed(param_ch))
(*info->fprintf_func) (info->stream, "0x%x", imm);
/* (*info->fprintf_func) (info->stream, "%d", imm); */
else
(*info->fprintf_func) (info->stream, "0x%x", imm);
}
/* Print one instruction from MEMADDR on INFO->STREAM.
Return the size of the instruction (always 4 on or32). */
static int
print_insn (memaddr, info)
bfd_vma memaddr;
struct disassemble_info *info;
{
/* The raw instruction. */
unsigned char insn_ch[4];
/* Address. Will be sign extened 27-bit. */
int addr;
/* The four bytes of the instruction. */
unsigned long insn;
find_byte_func_type find_byte_func = (find_byte_func_type)info->private_data;
struct or32_opcode CONST * opcode;
{
int status =
(*info->read_memory_func) (memaddr, (bfd_byte *) &insn_ch[0], 4, info);
if (status != 0)
{
(*info->memory_error_func) (status, memaddr, info);
return -1;
}
}
(*find_byte_func) (&insn_ch[0], &insn);
for (opcode = &or32_opcodes[0];
opcode < &or32_opcodes[or32_num_opcodes];
++opcode)
{
if (or32_opcode_match (insn, opcode->encoding))
{
char *s;
(*info->fprintf_func) (info->stream, "%s ", opcode->name);
for (s = opcode->args; *s != '\0'; ++s)
{
switch (*s)
{
case '\0':
return 4;
case 'r':
or32_print_register (*++s, opcode->encoding, insn, info);
break;
case 'X':
addr = or32_extract ('X', opcode->encoding, insn) << 2;
/* Calulate the correct address. XXX is this really correct ?? */
addr = memaddr + EXTEND29 (addr);
(*info->print_address_func)
(addr, info);
break;
default:
if (strchr (opcode->encoding, *s))
or32_print_immediate (*s, opcode->encoding, insn, info);
else
(*info->fprintf_func) (info->stream, "%c", *s);
}
}
return 4;
}
}
/* This used to be %8x for binutils. */
(*info->fprintf_func)
(info->stream, ".word 0x%08x", insn);
return 4;
}
/* Disassemble a big-endian or32 instruction. */
int
print_insn_big_or32 (memaddr, info)
bfd_vma memaddr;
struct disassemble_info *info;
{
info->private_data = (PTR) find_bytes_big;
return print_insn (memaddr, info);
}
/* Disassemble a little-endian or32 instruction. */
int
print_insn_little_or32 (memaddr, info)
bfd_vma memaddr;
struct disassemble_info *info;
{
info->private_data = (PTR) find_bytes_little;
return print_insn (memaddr, info);
}

1049
opcodes/or32-opc.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -78,6 +78,8 @@ openrisc-dis.c
openrisc-ibld.c
openrisc-opc.c
openrisc-opc.h
or32-dis.c
or32-opc.c
pdp11-dis.c
pdp11-opc.c
pj-dis.c

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: opcodes 2.12-pre020121\n"
"POT-Creation-Date: 2002-01-17 13:58+0000\n"
"POT-Creation-Date: 2002-01-31 17:10+0000\n"
"PO-Revision-Date: 2002-01-25 08:00-0500\n"
"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
"Language-Team: French <traduc@traduc.org>\n"
@ -25,21 +25,21 @@ msgstr "saut indic
msgid "Illegal limm reference in last instruction!\n"
msgstr "Référence limite illégale dans la dernière instruction!\n"
#: arm-dis.c:509
#: arm-dis.c:502
msgid "<illegal precision>"
msgstr "<précision illégale>"
#: arm-dis.c:1019
#: arm-dis.c:1012
#, c-format
msgid "Unrecognised register name set: %s\n"
msgstr "Nom de jeu de registres inconnu: %s\n"
#: arm-dis.c:1026
#: arm-dis.c:1019
#, c-format
msgid "Unrecognised disassembler option: %s\n"
msgstr "Option du désassembleur non reconnue: %s\n"
#: arm-dis.c:1198
#: arm-dis.c:1191
msgid ""
"\n"
"The following ARM specific disassembler options are supported for use with\n"
@ -63,6 +63,7 @@ msgid "unknown constraint `%c'"
msgstr "contrainte inconnue `%c'"
#: cgen-asm.c:346 fr30-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195
#: xstormy16-ibld.c:195
#, c-format
msgid "operand out of range (%ld not between %ld and %ld)"
msgstr "opérande hors gamme (%ld n'est pas entre %ld et %ld)"
@ -88,96 +89,101 @@ msgstr "Erreur inconnue %d\n"
msgid "Address 0x%x is out of bounds.\n"
msgstr "Adresse 0x%x est hors gamme.\n"
#: fr30-asm.c:324 m32r-asm.c:326 openrisc-asm.c:245
#: fr30-asm.c:323 m32r-asm.c:325 openrisc-asm.c:244 xstormy16-asm.c:231
#, c-format
msgid "Unrecognized field %d while parsing.\n"
msgstr "Champ non reconnu %d lors de l'analyse.\n"
#: fr30-asm.c:374 m32r-asm.c:376 openrisc-asm.c:295
#: fr30-asm.c:373 m32r-asm.c:375 openrisc-asm.c:294 xstormy16-asm.c:281
msgid "missing mnemonic in syntax string"
msgstr "mnémonique manquante dans la syntaxe de la chaîne"
#. We couldn't parse it.
#: fr30-asm.c:510 fr30-asm.c:514 fr30-asm.c:601 fr30-asm.c:703 m32r-asm.c:512
#: m32r-asm.c:516 m32r-asm.c:603 m32r-asm.c:705 openrisc-asm.c:431
#: openrisc-asm.c:435 openrisc-asm.c:522 openrisc-asm.c:624
#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 m32r-asm.c:511
#: m32r-asm.c:515 m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430
#: openrisc-asm.c:434 openrisc-asm.c:521 openrisc-asm.c:623
#: xstormy16-asm.c:417 xstormy16-asm.c:421 xstormy16-asm.c:508
#: xstormy16-asm.c:610
msgid "unrecognized instruction"
msgstr "instruction non reconnue"
#: fr30-asm.c:557 m32r-asm.c:559 openrisc-asm.c:478
#: fr30-asm.c:556 m32r-asm.c:558 openrisc-asm.c:477 xstormy16-asm.c:464
#, c-format
msgid "syntax error (expected char `%c', found `%c')"
msgstr "erreur de syntaxe (caractère `%c' attendu, `%c' obtenu)"
#: fr30-asm.c:567 m32r-asm.c:569 openrisc-asm.c:488
#: fr30-asm.c:566 m32r-asm.c:568 openrisc-asm.c:487 xstormy16-asm.c:474
#, c-format
msgid "syntax error (expected char `%c', found end of instruction)"
msgstr "erreur de syntaxe (caractère `%c' attendu, fin de l'instruction obtenue)"
msgstr ""
"erreur de syntaxe (caractère `%c' attendu, fin de l'instruction obtenue)"
#: fr30-asm.c:595 m32r-asm.c:597 openrisc-asm.c:516
#: fr30-asm.c:594 m32r-asm.c:596 openrisc-asm.c:515 xstormy16-asm.c:502
msgid "junk at end of line"
msgstr "rebut à la fin de la ligne"
#: fr30-asm.c:702 m32r-asm.c:704 openrisc-asm.c:623
#: fr30-asm.c:701 m32r-asm.c:703 openrisc-asm.c:622 xstormy16-asm.c:609
msgid "unrecognized form of instruction"
msgstr "forme d'instruction non reconnue"
#: fr30-asm.c:714 m32r-asm.c:716 openrisc-asm.c:635
#: fr30-asm.c:713 m32r-asm.c:715 openrisc-asm.c:634 xstormy16-asm.c:621
#, c-format
msgid "bad instruction `%.50s...'"
msgstr "instruction erronée `%.50s...'"
#: fr30-asm.c:717 m32r-asm.c:719 openrisc-asm.c:638
#: fr30-asm.c:716 m32r-asm.c:718 openrisc-asm.c:637 xstormy16-asm.c:624
#, c-format
msgid "bad instruction `%.50s'"
msgstr "instruction erronée `%.50s'"
#. Default text to print if an instruction isn't recognized.
#: fr30-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39
#: xstormy16-dis.c:39
msgid "*unknown*"
msgstr "*inconnu*"
#: fr30-dis.c:319 m32r-dis.c:250 openrisc-dis.c:137
#: fr30-dis.c:318 m32r-dis.c:249 openrisc-dis.c:136 xstormy16-dis.c:169
#, c-format
msgid "Unrecognized field %d while printing insn.\n"
msgstr "Champ non reconnu %d lors de l'impression insn.\n"
#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166
#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166 xstormy16-ibld.c:166
#, c-format
msgid "operand out of range (%ld not between %ld and %lu)"
msgstr "opérande hors gamme (%ld n'est pas entre %ld et %lu)"
#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179
#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179 xstormy16-ibld.c:179
#, c-format
msgid "operand out of range (%lu not between 0 and %lu)"
msgstr "opérande hors gamme (%lu n'est pas entre 0 et %lu)"
#: fr30-ibld.c:731 m32r-ibld.c:660 openrisc-ibld.c:634
#: fr30-ibld.c:730 m32r-ibld.c:659 openrisc-ibld.c:633 xstormy16-ibld.c:678
#, c-format
msgid "Unrecognized field %d while building insn.\n"
msgstr "Champ non reconnu %d lors de la construction de insn.\n"
#: fr30-ibld.c:939 m32r-ibld.c:794 openrisc-ibld.c:737
#: fr30-ibld.c:937 m32r-ibld.c:792 openrisc-ibld.c:735 xstormy16-ibld.c:826
#, c-format
msgid "Unrecognized field %d while decoding insn.\n"
msgstr "Champ non reconnu %d lors du décodage de insn.\n"
#: fr30-ibld.c:1088 m32r-ibld.c:904 openrisc-ibld.c:817
#: fr30-ibld.c:1086 m32r-ibld.c:902 openrisc-ibld.c:815 xstormy16-ibld.c:939
#, c-format
msgid "Unrecognized field %d while getting int operand.\n"
msgstr "Champ non reconnu %d lors de la prise d'une opérande int.\n"
#: fr30-ibld.c:1217 m32r-ibld.c:994 openrisc-ibld.c:877
#: fr30-ibld.c:1215 m32r-ibld.c:992 openrisc-ibld.c:875 xstormy16-ibld.c:1032
#, c-format
msgid "Unrecognized field %d while getting vma operand.\n"
msgstr "Champ non reconnu %d lors de la prise d'une opérande vma.\n"
#: fr30-ibld.c:1351 m32r-ibld.c:1092 openrisc-ibld.c:946
#: fr30-ibld.c:1349 m32r-ibld.c:1090 openrisc-ibld.c:944 xstormy16-ibld.c:1134
#, c-format
msgid "Unrecognized field %d while setting int operand.\n"
msgstr "Champ non reconnu %d lors de l'initialisation d'une opérande int.\n"
#: fr30-ibld.c:1473 m32r-ibld.c:1178 openrisc-ibld.c:1003
#: fr30-ibld.c:1471 m32r-ibld.c:1176 openrisc-ibld.c:1001
#: xstormy16-ibld.c:1224
#, c-format
msgid "Unrecognized field %d while setting vma operand.\n"
msgstr "Champ non reconnu %d lors de l'initialisation d'une opérande vma.\n"
@ -283,7 +289,9 @@ msgstr "option conditionnelle invalide"
#: ppc-opc.c:800
msgid "attempt to set y bit when using + or - modifier"
msgstr "tentative d'initialisation du bit y lorsque le modificateur + ou - a été utilisé"
msgstr ""
"tentative d'initialisation du bit y lorsque le modificateur + ou - a été "
"utilisé"
#: ppc-opc.c:832 ppc-opc.c:884
msgid "offset not a multiple of 4"
@ -299,7 +307,9 @@ msgstr "d
#: ppc-opc.c:910
msgid "ignoring least significant bits in branch offset"
msgstr "Les derniers bits les moins significatifs sont ignorés dans le décalage de branchement"
msgstr ""
"Les derniers bits les moins significatifs sont ignorés dans le décalage de "
"branchement"
#: ppc-opc.c:944 ppc-opc.c:981
msgid "illegal bitmask"
@ -396,5 +406,36 @@ msgstr "La valeur imm
msgid "immediate value must be even"
msgstr "La valeur immédiate doit être paire."
#: xstormy16-asm.c:74
#, fuzzy
msgid "Bad register in preincrement"
msgstr "registre index n'est pas dans la plage de chargement"
#: xstormy16-asm.c:79
#, fuzzy
msgid "Bad register in postincrement"
msgstr "registre invalide pour un ajustement de la pile"
#: xstormy16-asm.c:81
#, fuzzy
msgid "Bad register name"
msgstr "registre index n'est pas dans la plage de chargement"
#: xstormy16-asm.c:85
msgid "Label conflicts with register name"
msgstr ""
#: xstormy16-asm.c:89
msgid "Label conflicts with `Rx'"
msgstr ""
#: xstormy16-asm.c:91
msgid "Bad immediate expression"
msgstr ""
#: xstormy16-asm.c:120
msgid "Small operand was not an immediate number"
msgstr ""
#~ msgid "unrecognized keyword/register name"
#~ msgstr "nom de mot clé ou de registre non reconnu"

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2002-01-17 13:58+0000\n"
"POT-Creation-Date: 2002-01-31 17:10+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -26,21 +26,21 @@ msgstr ""
msgid "Illegal limm reference in last instruction!\n"
msgstr ""
#: arm-dis.c:509
#: arm-dis.c:502
msgid "<illegal precision>"
msgstr ""
#: arm-dis.c:1019
#: arm-dis.c:1012
#, c-format
msgid "Unrecognised register name set: %s\n"
msgstr ""
#: arm-dis.c:1026
#: arm-dis.c:1019
#, c-format
msgid "Unrecognised disassembler option: %s\n"
msgstr ""
#: arm-dis.c:1198
#: arm-dis.c:1191
msgid ""
"\n"
"The following ARM specific disassembler options are supported for use with\n"
@ -61,6 +61,7 @@ msgid "unknown constraint `%c'"
msgstr ""
#: cgen-asm.c:346 fr30-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195
#: xstormy16-ibld.c:195
#, c-format
msgid "operand out of range (%ld not between %ld and %ld)"
msgstr ""
@ -86,96 +87,100 @@ msgstr ""
msgid "Address 0x%x is out of bounds.\n"
msgstr ""
#: fr30-asm.c:324 m32r-asm.c:326 openrisc-asm.c:245
#: fr30-asm.c:323 m32r-asm.c:325 openrisc-asm.c:244 xstormy16-asm.c:231
#, c-format
msgid "Unrecognized field %d while parsing.\n"
msgstr ""
#: fr30-asm.c:374 m32r-asm.c:376 openrisc-asm.c:295
#: fr30-asm.c:373 m32r-asm.c:375 openrisc-asm.c:294 xstormy16-asm.c:281
msgid "missing mnemonic in syntax string"
msgstr ""
#. We couldn't parse it.
#: fr30-asm.c:510 fr30-asm.c:514 fr30-asm.c:601 fr30-asm.c:703 m32r-asm.c:512
#: m32r-asm.c:516 m32r-asm.c:603 m32r-asm.c:705 openrisc-asm.c:431
#: openrisc-asm.c:435 openrisc-asm.c:522 openrisc-asm.c:624
#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 m32r-asm.c:511
#: m32r-asm.c:515 m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430
#: openrisc-asm.c:434 openrisc-asm.c:521 openrisc-asm.c:623
#: xstormy16-asm.c:417 xstormy16-asm.c:421 xstormy16-asm.c:508
#: xstormy16-asm.c:610
msgid "unrecognized instruction"
msgstr ""
#: fr30-asm.c:557 m32r-asm.c:559 openrisc-asm.c:478
#: fr30-asm.c:556 m32r-asm.c:558 openrisc-asm.c:477 xstormy16-asm.c:464
#, c-format
msgid "syntax error (expected char `%c', found `%c')"
msgstr ""
#: fr30-asm.c:567 m32r-asm.c:569 openrisc-asm.c:488
#: fr30-asm.c:566 m32r-asm.c:568 openrisc-asm.c:487 xstormy16-asm.c:474
#, c-format
msgid "syntax error (expected char `%c', found end of instruction)"
msgstr ""
#: fr30-asm.c:595 m32r-asm.c:597 openrisc-asm.c:516
#: fr30-asm.c:594 m32r-asm.c:596 openrisc-asm.c:515 xstormy16-asm.c:502
msgid "junk at end of line"
msgstr ""
#: fr30-asm.c:702 m32r-asm.c:704 openrisc-asm.c:623
#: fr30-asm.c:701 m32r-asm.c:703 openrisc-asm.c:622 xstormy16-asm.c:609
msgid "unrecognized form of instruction"
msgstr ""
#: fr30-asm.c:714 m32r-asm.c:716 openrisc-asm.c:635
#: fr30-asm.c:713 m32r-asm.c:715 openrisc-asm.c:634 xstormy16-asm.c:621
#, c-format
msgid "bad instruction `%.50s...'"
msgstr ""
#: fr30-asm.c:717 m32r-asm.c:719 openrisc-asm.c:638
#: fr30-asm.c:716 m32r-asm.c:718 openrisc-asm.c:637 xstormy16-asm.c:624
#, c-format
msgid "bad instruction `%.50s'"
msgstr ""
#. Default text to print if an instruction isn't recognized.
#: fr30-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39
#: xstormy16-dis.c:39
msgid "*unknown*"
msgstr ""
#: fr30-dis.c:319 m32r-dis.c:250 openrisc-dis.c:137
#: fr30-dis.c:318 m32r-dis.c:249 openrisc-dis.c:136 xstormy16-dis.c:169
#, c-format
msgid "Unrecognized field %d while printing insn.\n"
msgstr ""
#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166
#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166 xstormy16-ibld.c:166
#, c-format
msgid "operand out of range (%ld not between %ld and %lu)"
msgstr ""
#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179
#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179 xstormy16-ibld.c:179
#, c-format
msgid "operand out of range (%lu not between 0 and %lu)"
msgstr ""
#: fr30-ibld.c:731 m32r-ibld.c:660 openrisc-ibld.c:634
#: fr30-ibld.c:730 m32r-ibld.c:659 openrisc-ibld.c:633 xstormy16-ibld.c:678
#, c-format
msgid "Unrecognized field %d while building insn.\n"
msgstr ""
#: fr30-ibld.c:939 m32r-ibld.c:794 openrisc-ibld.c:737
#: fr30-ibld.c:937 m32r-ibld.c:792 openrisc-ibld.c:735 xstormy16-ibld.c:826
#, c-format
msgid "Unrecognized field %d while decoding insn.\n"
msgstr ""
#: fr30-ibld.c:1088 m32r-ibld.c:904 openrisc-ibld.c:817
#: fr30-ibld.c:1086 m32r-ibld.c:902 openrisc-ibld.c:815 xstormy16-ibld.c:939
#, c-format
msgid "Unrecognized field %d while getting int operand.\n"
msgstr ""
#: fr30-ibld.c:1217 m32r-ibld.c:994 openrisc-ibld.c:877
#: fr30-ibld.c:1215 m32r-ibld.c:992 openrisc-ibld.c:875 xstormy16-ibld.c:1032
#, c-format
msgid "Unrecognized field %d while getting vma operand.\n"
msgstr ""
#: fr30-ibld.c:1351 m32r-ibld.c:1092 openrisc-ibld.c:946
#: fr30-ibld.c:1349 m32r-ibld.c:1090 openrisc-ibld.c:944 xstormy16-ibld.c:1134
#, c-format
msgid "Unrecognized field %d while setting int operand.\n"
msgstr ""
#: fr30-ibld.c:1473 m32r-ibld.c:1178 openrisc-ibld.c:1003
#: fr30-ibld.c:1471 m32r-ibld.c:1176 openrisc-ibld.c:1001
#: xstormy16-ibld.c:1224
#, c-format
msgid "Unrecognized field %d while setting vma operand.\n"
msgstr ""
@ -392,3 +397,31 @@ msgstr ""
#: v850-opc.c:375
msgid "immediate value must be even"
msgstr ""
#: xstormy16-asm.c:74
msgid "Bad register in preincrement"
msgstr ""
#: xstormy16-asm.c:79
msgid "Bad register in postincrement"
msgstr ""
#: xstormy16-asm.c:81
msgid "Bad register name"
msgstr ""
#: xstormy16-asm.c:85
msgid "Label conflicts with register name"
msgstr ""
#: xstormy16-asm.c:89
msgid "Label conflicts with `Rx'"
msgstr ""
#: xstormy16-asm.c:91
msgid "Bad immediate expression"
msgstr ""
#: xstormy16-asm.c:120
msgid "Small operand was not an immediate number"
msgstr ""

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: opcodes 2.11\n"
"POT-Creation-Date: 2002-01-17 13:58+0000\n"
"POT-Creation-Date: 2002-01-31 17:10+0000\n"
"PO-Revision-Date: 2001-10-23 15:35+0200\n"
"Last-Translator: Christian Rose <menthos@menthos.com>\n"
"Language-Team: Swedish <sv@li.org>\n"
@ -25,21 +25,21 @@ msgstr "hopptipset ligger inte p
msgid "Illegal limm reference in last instruction!\n"
msgstr "Otillåten limm-referens i sista instruktionen!\n"
#: arm-dis.c:509
#: arm-dis.c:502
msgid "<illegal precision>"
msgstr "<otillåten precision>"
#: arm-dis.c:1019
#: arm-dis.c:1012
#, c-format
msgid "Unrecognised register name set: %s\n"
msgstr "Okänt registernamn är angivet: %s\n"
#: arm-dis.c:1026
#: arm-dis.c:1019
#, c-format
msgid "Unrecognised disassembler option: %s\n"
msgstr "Okänt disassembleralternativ: %s\n"
#: arm-dis.c:1198
#: arm-dis.c:1191
msgid ""
"\n"
"The following ARM specific disassembler options are supported for use with\n"
@ -63,6 +63,7 @@ msgid "unknown constraint `%c'"
msgstr "okänd begränsning \"%c\""
#: cgen-asm.c:346 fr30-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195
#: xstormy16-ibld.c:195
#, c-format
msgid "operand out of range (%ld not between %ld and %ld)"
msgstr "operanden är utanför intervallet (%ld är inte mellan %ld och %ld)"
@ -88,97 +89,101 @@ msgstr "Ok
msgid "Address 0x%x is out of bounds.\n"
msgstr "Adressen 0x%x ligger utanför tillåtna gränser.\n"
#: fr30-asm.c:324 m32r-asm.c:326 openrisc-asm.c:245
#: fr30-asm.c:323 m32r-asm.c:325 openrisc-asm.c:244 xstormy16-asm.c:231
#, c-format
msgid "Unrecognized field %d while parsing.\n"
msgstr "Okänt fält %d vid tolkning.\n"
#: fr30-asm.c:374 m32r-asm.c:376 openrisc-asm.c:295
#: fr30-asm.c:373 m32r-asm.c:375 openrisc-asm.c:294 xstormy16-asm.c:281
msgid "missing mnemonic in syntax string"
msgstr ""
#. We couldn't parse it.
#: fr30-asm.c:510 fr30-asm.c:514 fr30-asm.c:601 fr30-asm.c:703 m32r-asm.c:512
#: m32r-asm.c:516 m32r-asm.c:603 m32r-asm.c:705 openrisc-asm.c:431
#: openrisc-asm.c:435 openrisc-asm.c:522 openrisc-asm.c:624
#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 m32r-asm.c:511
#: m32r-asm.c:515 m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430
#: openrisc-asm.c:434 openrisc-asm.c:521 openrisc-asm.c:623
#: xstormy16-asm.c:417 xstormy16-asm.c:421 xstormy16-asm.c:508
#: xstormy16-asm.c:610
msgid "unrecognized instruction"
msgstr "okänd instruktion"
#: fr30-asm.c:557 m32r-asm.c:559 openrisc-asm.c:478
#: fr30-asm.c:556 m32r-asm.c:558 openrisc-asm.c:477 xstormy16-asm.c:464
#, c-format
msgid "syntax error (expected char `%c', found `%c')"
msgstr "syntaxfel (tecknet \"%c\" förväntades, hittade \"%c\")"
#: fr30-asm.c:567 m32r-asm.c:569 openrisc-asm.c:488
#: fr30-asm.c:566 m32r-asm.c:568 openrisc-asm.c:487 xstormy16-asm.c:474
#, fuzzy, c-format
msgid "syntax error (expected char `%c', found end of instruction)"
msgstr "syntaxfel (tecknet \"%c\" förväntades, hittade \"%c\")"
#: fr30-asm.c:595 m32r-asm.c:597 openrisc-asm.c:516
#: fr30-asm.c:594 m32r-asm.c:596 openrisc-asm.c:515 xstormy16-asm.c:502
msgid "junk at end of line"
msgstr "skräp vid slutet på raden"
#: fr30-asm.c:702 m32r-asm.c:704 openrisc-asm.c:623
#: fr30-asm.c:701 m32r-asm.c:703 openrisc-asm.c:622 xstormy16-asm.c:609
#, fuzzy
msgid "unrecognized form of instruction"
msgstr "okänd instruktion"
#: fr30-asm.c:714 m32r-asm.c:716 openrisc-asm.c:635
#: fr30-asm.c:713 m32r-asm.c:715 openrisc-asm.c:634 xstormy16-asm.c:621
#, c-format
msgid "bad instruction `%.50s...'"
msgstr "felaktig instruktion \"%.50s...\""
#: fr30-asm.c:717 m32r-asm.c:719 openrisc-asm.c:638
#: fr30-asm.c:716 m32r-asm.c:718 openrisc-asm.c:637 xstormy16-asm.c:624
#, c-format
msgid "bad instruction `%.50s'"
msgstr "felaktig instruktion \"%.50s\""
#. Default text to print if an instruction isn't recognized.
#: fr30-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39
#: xstormy16-dis.c:39
msgid "*unknown*"
msgstr "*okänd*"
#: fr30-dis.c:319 m32r-dis.c:250 openrisc-dis.c:137
#: fr30-dis.c:318 m32r-dis.c:249 openrisc-dis.c:136 xstormy16-dis.c:169
#, c-format
msgid "Unrecognized field %d while printing insn.\n"
msgstr "Okänt fält %d vid utskrift av instruktion.\n"
#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166
#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166 xstormy16-ibld.c:166
#, fuzzy, c-format
msgid "operand out of range (%ld not between %ld and %lu)"
msgstr "operanden är utanför intervallet (%ld är inte mellan %ld och %ld)"
#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179
#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179 xstormy16-ibld.c:179
#, c-format
msgid "operand out of range (%lu not between 0 and %lu)"
msgstr "operanden utanför intervallet (%lu inte mellan 0 och %lu)"
#: fr30-ibld.c:731 m32r-ibld.c:660 openrisc-ibld.c:634
#: fr30-ibld.c:730 m32r-ibld.c:659 openrisc-ibld.c:633 xstormy16-ibld.c:678
#, c-format
msgid "Unrecognized field %d while building insn.\n"
msgstr "Okänt fält %d vid konstruktion av instruktion.\n"
#: fr30-ibld.c:939 m32r-ibld.c:794 openrisc-ibld.c:737
#: fr30-ibld.c:937 m32r-ibld.c:792 openrisc-ibld.c:735 xstormy16-ibld.c:826
#, c-format
msgid "Unrecognized field %d while decoding insn.\n"
msgstr "Okänt fält %d vid avkodning av instruktion.\n"
#: fr30-ibld.c:1088 m32r-ibld.c:904 openrisc-ibld.c:817
#: fr30-ibld.c:1086 m32r-ibld.c:902 openrisc-ibld.c:815 xstormy16-ibld.c:939
#, c-format
msgid "Unrecognized field %d while getting int operand.\n"
msgstr "Okänt fält %d vid hämtning av heltalsoperand.\n"
#: fr30-ibld.c:1217 m32r-ibld.c:994 openrisc-ibld.c:877
#: fr30-ibld.c:1215 m32r-ibld.c:992 openrisc-ibld.c:875 xstormy16-ibld.c:1032
#, c-format
msgid "Unrecognized field %d while getting vma operand.\n"
msgstr "Okänt fält %d vid hämtning av vma-operand.\n"
#: fr30-ibld.c:1351 m32r-ibld.c:1092 openrisc-ibld.c:946
#: fr30-ibld.c:1349 m32r-ibld.c:1090 openrisc-ibld.c:944 xstormy16-ibld.c:1134
#, c-format
msgid "Unrecognized field %d while setting int operand.\n"
msgstr "Okänt fält %d vid inställning av heltalsoperand.\n"
#: fr30-ibld.c:1473 m32r-ibld.c:1178 openrisc-ibld.c:1003
#: fr30-ibld.c:1471 m32r-ibld.c:1176 openrisc-ibld.c:1001
#: xstormy16-ibld.c:1224
#, c-format
msgid "Unrecognized field %d while setting vma operand.\n"
msgstr "Okänt fält %d vid inställning av vma-operand.\n"
@ -398,5 +403,36 @@ msgstr "omedelbara v
msgid "immediate value must be even"
msgstr "omedelbara värdet måste vara jämnt"
#: xstormy16-asm.c:74
#, fuzzy
msgid "Bad register in preincrement"
msgstr "indexregistret är i inläsningsintervallet"
#: xstormy16-asm.c:79
#, fuzzy
msgid "Bad register in postincrement"
msgstr "ogiltigt register för stackjustering"
#: xstormy16-asm.c:81
#, fuzzy
msgid "Bad register name"
msgstr "indexregistret är i inläsningsintervallet"
#: xstormy16-asm.c:85
msgid "Label conflicts with register name"
msgstr ""
#: xstormy16-asm.c:89
msgid "Label conflicts with `Rx'"
msgstr ""
#: xstormy16-asm.c:91
msgid "Bad immediate expression"
msgstr ""
#: xstormy16-asm.c:120
msgid "Small operand was not an immediate number"
msgstr ""
#~ msgid "unrecognized keyword/register name"
#~ msgstr "okänt namn på nyckelord/register"

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: opcodes 2.11\n"
"POT-Creation-Date: 2002-01-17 13:58+0000\n"
"POT-Creation-Date: 2002-01-31 17:10+0000\n"
"PO-Revision-Date: 2001-07-29 22:33EEST\n"
"Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@ -26,21 +26,21 @@ msgstr "atlama i
msgid "Illegal limm reference in last instruction!\n"
msgstr "Son iþlemde geçersiz limm referansý!\n"
#: arm-dis.c:509
#: arm-dis.c:502
msgid "<illegal precision>"
msgstr "<geçersiz kesinlik>"
#: arm-dis.c:1019
#: arm-dis.c:1012
#, c-format
msgid "Unrecognised register name set: %s\n"
msgstr "Bilinmeyen yazmaç ad kümesi: %s\n"
#: arm-dis.c:1026
#: arm-dis.c:1019
#, c-format
msgid "Unrecognised disassembler option: %s\n"
msgstr "Bilinmeyen karþýt-çevirici seçeneði: %s\n"
#: arm-dis.c:1198
#: arm-dis.c:1191
msgid ""
"\n"
"The following ARM specific disassembler options are supported for use with\n"
@ -64,6 +64,7 @@ msgid "unknown constraint `%c'"
msgstr "`%c' bilinmeyen kýsýtý"
#: cgen-asm.c:346 fr30-ibld.c:195 m32r-ibld.c:195 openrisc-ibld.c:195
#: xstormy16-ibld.c:195
#, c-format
msgid "operand out of range (%ld not between %ld and %ld)"
msgstr "Kapsam dýþý terim (%ld, %ld ve %ld arasýnda deðil) "
@ -89,97 +90,101 @@ msgstr "Bilinmeyen hata %d\n"
msgid "Address 0x%x is out of bounds.\n"
msgstr "0x%x adresi sýnýrlarýn dýþýnda.\n"
#: fr30-asm.c:324 m32r-asm.c:326 openrisc-asm.c:245
#: fr30-asm.c:323 m32r-asm.c:325 openrisc-asm.c:244 xstormy16-asm.c:231
#, c-format
msgid "Unrecognized field %d while parsing.\n"
msgstr "Ayrýþtýrma esnasýnda bilinmeyen alan %d bulundu.\n"
#: fr30-asm.c:374 m32r-asm.c:376 openrisc-asm.c:295
#: fr30-asm.c:373 m32r-asm.c:375 openrisc-asm.c:294 xstormy16-asm.c:281
msgid "missing mnemonic in syntax string"
msgstr ""
#. We couldn't parse it.
#: fr30-asm.c:510 fr30-asm.c:514 fr30-asm.c:601 fr30-asm.c:703 m32r-asm.c:512
#: m32r-asm.c:516 m32r-asm.c:603 m32r-asm.c:705 openrisc-asm.c:431
#: openrisc-asm.c:435 openrisc-asm.c:522 openrisc-asm.c:624
#: fr30-asm.c:509 fr30-asm.c:513 fr30-asm.c:600 fr30-asm.c:702 m32r-asm.c:511
#: m32r-asm.c:515 m32r-asm.c:602 m32r-asm.c:704 openrisc-asm.c:430
#: openrisc-asm.c:434 openrisc-asm.c:521 openrisc-asm.c:623
#: xstormy16-asm.c:417 xstormy16-asm.c:421 xstormy16-asm.c:508
#: xstormy16-asm.c:610
msgid "unrecognized instruction"
msgstr "bilinmeyen iþlem"
#: fr30-asm.c:557 m32r-asm.c:559 openrisc-asm.c:478
#: fr30-asm.c:556 m32r-asm.c:558 openrisc-asm.c:477 xstormy16-asm.c:464
#, c-format
msgid "syntax error (expected char `%c', found `%c')"
msgstr "biçem hatasý (char `%c' beklenirken `%c' bulundu)"
#: fr30-asm.c:567 m32r-asm.c:569 openrisc-asm.c:488
#: fr30-asm.c:566 m32r-asm.c:568 openrisc-asm.c:487 xstormy16-asm.c:474
#, fuzzy, c-format
msgid "syntax error (expected char `%c', found end of instruction)"
msgstr "biçem hatasý (char `%c' beklenirken `%c' bulundu)"
#: fr30-asm.c:595 m32r-asm.c:597 openrisc-asm.c:516
#: fr30-asm.c:594 m32r-asm.c:596 openrisc-asm.c:515 xstormy16-asm.c:502
msgid "junk at end of line"
msgstr "Satýr sonu bozuk "
#: fr30-asm.c:702 m32r-asm.c:704 openrisc-asm.c:623
#: fr30-asm.c:701 m32r-asm.c:703 openrisc-asm.c:622 xstormy16-asm.c:609
#, fuzzy
msgid "unrecognized form of instruction"
msgstr "bilinmeyen iþlem"
#: fr30-asm.c:714 m32r-asm.c:716 openrisc-asm.c:635
#: fr30-asm.c:713 m32r-asm.c:715 openrisc-asm.c:634 xstormy16-asm.c:621
#, c-format
msgid "bad instruction `%.50s...'"
msgstr "geçersiz iþlem `%.50s...'"
#: fr30-asm.c:717 m32r-asm.c:719 openrisc-asm.c:638
#: fr30-asm.c:716 m32r-asm.c:718 openrisc-asm.c:637 xstormy16-asm.c:624
#, c-format
msgid "bad instruction `%.50s'"
msgstr "geçersiz iþlem `%.50s'"
#. Default text to print if an instruction isn't recognized.
#: fr30-dis.c:39 m32r-dis.c:39 mmix-dis.c:282 openrisc-dis.c:39
#: xstormy16-dis.c:39
msgid "*unknown*"
msgstr "*bilinmeyen*"
#: fr30-dis.c:319 m32r-dis.c:250 openrisc-dis.c:137
#: fr30-dis.c:318 m32r-dis.c:249 openrisc-dis.c:136 xstormy16-dis.c:169
#, c-format
msgid "Unrecognized field %d while printing insn.\n"
msgstr "yönerge yazdýrýlýrken bilinmeyen alan %d bulundu.\n"
#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166
#: fr30-ibld.c:166 m32r-ibld.c:166 openrisc-ibld.c:166 xstormy16-ibld.c:166
#, fuzzy, c-format
msgid "operand out of range (%ld not between %ld and %lu)"
msgstr "Kapsam dýþý terim (%ld, %ld ve %ld arasýnda deðil) "
#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179
#: fr30-ibld.c:179 m32r-ibld.c:179 openrisc-ibld.c:179 xstormy16-ibld.c:179
#, c-format
msgid "operand out of range (%lu not between 0 and %lu)"
msgstr "kapsam dýþý terim (%lu 0 ve %lu arasýnda deðil) "
#: fr30-ibld.c:731 m32r-ibld.c:660 openrisc-ibld.c:634
#: fr30-ibld.c:730 m32r-ibld.c:659 openrisc-ibld.c:633 xstormy16-ibld.c:678
#, c-format
msgid "Unrecognized field %d while building insn.\n"
msgstr "Yönerge oluþturulurken bilinmeyen alan %d bulundu.\n"
#: fr30-ibld.c:939 m32r-ibld.c:794 openrisc-ibld.c:737
#: fr30-ibld.c:937 m32r-ibld.c:792 openrisc-ibld.c:735 xstormy16-ibld.c:826
#, c-format
msgid "Unrecognized field %d while decoding insn.\n"
msgstr "Yönerge çözümlenirken bilinmeyen alan %d bulundu.\n"
#: fr30-ibld.c:1088 m32r-ibld.c:904 openrisc-ibld.c:817
#: fr30-ibld.c:1086 m32r-ibld.c:902 openrisc-ibld.c:815 xstormy16-ibld.c:939
#, c-format
msgid "Unrecognized field %d while getting int operand.\n"
msgstr "`int' terimi alýnýrken bilinmeyen alan %d bulundu.\n"
#: fr30-ibld.c:1217 m32r-ibld.c:994 openrisc-ibld.c:877
#: fr30-ibld.c:1215 m32r-ibld.c:992 openrisc-ibld.c:875 xstormy16-ibld.c:1032
#, c-format
msgid "Unrecognized field %d while getting vma operand.\n"
msgstr "`vma' terimi alýnýrken bilinmeyen alan %d bulundu.\n"
#: fr30-ibld.c:1351 m32r-ibld.c:1092 openrisc-ibld.c:946
#: fr30-ibld.c:1349 m32r-ibld.c:1090 openrisc-ibld.c:944 xstormy16-ibld.c:1134
#, c-format
msgid "Unrecognized field %d while setting int operand.\n"
msgstr "`int' terimi atanýrken bilinmeyen alan %d bulundu.\n"
#: fr30-ibld.c:1473 m32r-ibld.c:1178 openrisc-ibld.c:1003
#: fr30-ibld.c:1471 m32r-ibld.c:1176 openrisc-ibld.c:1001
#: xstormy16-ibld.c:1224
#, c-format
msgid "Unrecognized field %d while setting vma operand.\n"
msgstr "`vma' terimi atanýrken bilinmeyen alan %d bulundu.\n"
@ -398,5 +403,36 @@ msgstr "
msgid "immediate value must be even"
msgstr "þimdiki deðer çift sayý olmalý"
#: xstormy16-asm.c:74
#, fuzzy
msgid "Bad register in preincrement"
msgstr "yükleme aralýðýnda endeks yazmacý"
#: xstormy16-asm.c:79
#, fuzzy
msgid "Bad register in postincrement"
msgstr "yýðýt düzeltmesi için geçersiz yazmaç "
#: xstormy16-asm.c:81
#, fuzzy
msgid "Bad register name"
msgstr "yükleme aralýðýnda endeks yazmacý"
#: xstormy16-asm.c:85
msgid "Label conflicts with register name"
msgstr ""
#: xstormy16-asm.c:89
msgid "Label conflicts with `Rx'"
msgstr ""
#: xstormy16-asm.c:91
msgid "Bad immediate expression"
msgstr ""
#: xstormy16-asm.c:120
msgid "Small operand was not an immediate number"
msgstr ""
#~ msgid "unrecognized keyword/register name"
#~ msgstr "Bilinmeyen anahtar/yazmaç adý"