diff options
author | Alan Modra <modra@gmail.com> | 2001-06-11 14:05:07 +0400 |
---|---|---|
committer | Alan Modra <modra@gmail.com> | 2001-06-11 14:05:07 +0400 |
commit | 87e04ecda988c0ac89182f3988894a08183b847a (patch) | |
tree | 9c42f7058276e351e069da199c807040dbac8329 | |
parent | 9bb71f7d9def8dcf3e5f46499e0fec60f4431825 (diff) |
Merge from mainline.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | README-maintainer-mode | 8 | ||||
-rw-r--r-- | include/coff/ChangeLog | 7 | ||||
-rw-r--r-- | include/coff/pe.h | 4 | ||||
-rw-r--r-- | include/elf/ChangeLog | 32 | ||||
-rw-r--r-- | include/elf/common.h | 1 | ||||
-rw-r--r-- | include/elf/external.h | 2 | ||||
-rw-r--r-- | include/elf/mips.h | 126 | ||||
-rw-r--r-- | include/elf/sparc.h | 2 | ||||
-rw-r--r-- | include/ieee.h | 252 | ||||
-rw-r--r-- | include/oasys.h | 286 | ||||
-rw-r--r-- | include/opcode/ChangeLog | 20 | ||||
-rw-r--r-- | include/opcode/m68k.h | 4 | ||||
-rw-r--r-- | include/opcode/mips.h | 27 |
14 files changed, 470 insertions, 308 deletions
@@ -1,3 +1,10 @@ +2001-06-11 Alan Modra <amodra@bigpond.net.au> + + Merge from mainline. + 2001-03-23 Nick Clifton <nickc@redhat.com> + * README-maintainer-mode: Add note about inability to use "make + distclean" in maintainer mode. + 2001-03-22 Philip Blundell <philb@gnu.org> * config.sub, config.guess: Import latest from subversions. diff --git a/README-maintainer-mode b/README-maintainer-mode index ee57e8486..fbe508f0c 100644 --- a/README-maintainer-mode +++ b/README-maintainer-mode @@ -4,3 +4,11 @@ Note that if you configure with --enable-maintainer-mode, you will need special versions of automake, autoconf, libtool and gettext. You will find the sources for these in ftp://sourceware.cygnus.com/pub/binutils. + +Note - "make distclean" does not work with maintainer mode enabled. +The Makefiles in the some of the po/ subdirectories depend upon the +Makefiles in their parent directories, and distclean will delete the +Makefiles in the parent directories before running the Makefiles in +the child directories. There is no easy way around this (short of +changing the automake macros) as these dependencies need to exist in +order to correctly build the NLS files. diff --git a/include/coff/ChangeLog b/include/coff/ChangeLog index e94c281dd..efde1bf90 100644 --- a/include/coff/ChangeLog +++ b/include/coff/ChangeLog @@ -1,3 +1,10 @@ +2001-06-11 Alan Modra <amodra@bigpond.net.au> + + Merge from mainline. + 2001-02-09 David Mosberger <davidm@hpl.hp.com> + * pe.h (PEPAOUTSZ): Rename from PEP64AOUTSZ. + Rename from PEPAOUTHDR. + 2001-06-07 Alan Modra <amodra@bigpond.net.au> * Many files: Update copyright notices. diff --git a/include/coff/pe.h b/include/coff/pe.h index ac22a035c..ff3787569 100644 --- a/include/coff/pe.h +++ b/include/coff/pe.h @@ -279,8 +279,8 @@ typedef struct char NumberOfRvaAndSizes[4]; /* IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; */ char DataDirectory[16][2][4]; /* 16 entries, 2 elements/entry, 4 chars. */ -} PEP64AOUTHDR; -#define PEP64AOUTSZ 240 +} PEPAOUTHDR; +#define PEPAOUTSZ 240 #undef E_FILNMLEN #define E_FILNMLEN 18 /* # characters in a file name. */ diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index e050201a9..bc82c7378 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,35 @@ +2001-06-11 Alan Modra <amodra@bigpond.net.au> + + Merge from mainline. + 2001-05-15 Ralf Baechle <ralf@gnu.org> + * 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-07 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + * external.h: Fix typo. + * mips.h: Add/Extend many comments with reference to the MIPS ELF64 + spec v. 2.4, available at e.g. + ftp://oss.sgi.com/pub/linux/mips/doc/ABI/ELF64.ps. + (EF_MIPS_UCODE): Define. + (EF_MIPS_OPTIONS_FIRST): Define. + (EF_MIPS_ARCH_ASE): Define. + (EF_MIPS_ARCH_ASE_MDMX): Define. + (EF_MIPS_ARCH_ASE_M16): Define. + (SHF_MIPS_ADDR): Renamed SHF_MIPS_ADDR32. + (SHF_MIPS_STRING): Renamed SHF_MIPS_ADDR64. + (SHF_MIPS_NODUPES): Define. + (ELF64_MIPS_R_SSYM): New MIPS ELF 64 relocation info access macro. + (ELF64_MIPS_R_TYPE3): Likewise. + (ELF64_MIPS_R_TYPE2): Likewise. + (ELF64_MIPS_R_TYPE): Likewise. + (OHW_R10KLDL): Define. + + 2001-04-24 Todd Fries <todd@fries.net> + * sparc.h: Fix typo. + + 2001-03-23 Nick Clifton <nickc@redhat.com> + * mips.h: Remove extraneous whitespace. + 2001-06-07 Alan Modra <amodra@bigpond.net.au> * Many files: Update copyright notices. diff --git a/include/elf/common.h b/include/elf/common.h index 84822458a..4c50b890c 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -105,7 +105,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define EM_860 7 /* Intel 80860 */ #define EM_MIPS 8 /* MIPS R3000 (officially, big-endian only) */ #define EM_S370 9 /* IBM System/370 */ -#define EM_MIPS_RS4_BE 10 /* MIPS R4000 big-endian */ /* Depreciated */ #define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian (Oct 4 1999 Draft)*/ /* Depreciated */ #define EM_PARISC 15 /* HPPA */ diff --git a/include/elf/external.h b/include/elf/external.h index 93193c0e5..38e6596de 100644 --- a/include/elf/external.h +++ b/include/elf/external.h @@ -26,7 +26,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This file is part of ELF support for BFD, and contains the portions that describe how ELF is represented externally by the BFD library. I.E. it describes the in-file representation of ELF. It requires - the elf-common.h file which contains the portions that are common to + the elf/common.h file which contains the portions that are common to both the internal and external representations. */ /* The 64-bit stuff is kind of random. Perhaps someone will publish a diff --git a/include/elf/mips.h b/include/elf/mips.h index da0483696..6ad8d5b96 100644 --- a/include/elf/mips.h +++ b/include/elf/mips.h @@ -34,16 +34,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ START_RELOC_NUMBERS (elf_mips_reloc_type) RELOC_NUMBER (R_MIPS_NONE, 0) RELOC_NUMBER (R_MIPS_16, 1) - RELOC_NUMBER (R_MIPS_32, 2) - RELOC_NUMBER (R_MIPS_REL32, 3) + RELOC_NUMBER (R_MIPS_32, 2) /* In Elf 64: alias R_MIPS_ADD */ + RELOC_NUMBER (R_MIPS_REL32, 3) /* In Elf 64: alias R_MIPS_REL */ RELOC_NUMBER (R_MIPS_26, 4) RELOC_NUMBER (R_MIPS_HI16, 5) RELOC_NUMBER (R_MIPS_LO16, 6) - RELOC_NUMBER (R_MIPS_GPREL16, 7) + RELOC_NUMBER (R_MIPS_GPREL16, 7) /* In Elf 64: alias R_MIPS_GPREL */ RELOC_NUMBER (R_MIPS_LITERAL, 8) - RELOC_NUMBER (R_MIPS_GOT16, 9) + RELOC_NUMBER (R_MIPS_GOT16, 9) /* In Elf 64: alias R_MIPS_GOT */ RELOC_NUMBER (R_MIPS_PC16, 10) - RELOC_NUMBER (R_MIPS_CALL16, 11) + RELOC_NUMBER (R_MIPS_CALL16, 11) /* In Elf 64: alias R_MIPS_CALL */ RELOC_NUMBER (R_MIPS_GPREL32, 12) /* The remaining relocs are defined on Irix, although they are not in the MIPS ELF ABI. */ @@ -99,10 +99,25 @@ END_RELOC_NUMBERS (R_MIPS_maxext) position independent code. */ #define EF_MIPS_CPIC 0x00000004 +/* Code in file uses UCODE (obsolete) */ +#define EF_MIPS_UCODE 0x00000010 + /* Code in file uses new ABI (-n32 on Irix 6). */ #define EF_MIPS_ABI2 0x00000020 -/* Indicates code compiled for a 64-bit machine in 32-bit mode. +/* Process the .MIPS.options section first by ld */ +#define EF_MIPS_OPTIONS_FIRST 0x00000080 + +/* Architectural Extensions used by this file */ +#define EF_MIPS_ARCH_ASE 0x0f000000 + +/* Use MDMX multimedia extensions */ +#define EF_MIPS_ARCH_ASE_MDMX 0x08000000 + +/* Use MIPS-16 ISA extensions */ +#define EF_MIPS_ARCH_ASE_M16 0x04000000 + +/* Indicates code compiled for a 64-bit machine in 32-bit mode. (regs are 32-bits wide.) */ #define EF_MIPS_32BITMODE 0x00000100 @@ -265,19 +280,19 @@ END_RELOC_NUMBERS (R_MIPS_maxext) /* ??? */ #define SHT_MIPS_RFDESC 0x7000001a -/* ??? */ +/* Delta C++: symbol table */ #define SHT_MIPS_DELTASYM 0x7000001b -/* ??? */ +/* Delta C++: instance table */ #define SHT_MIPS_DELTAINST 0x7000001c -/* ??? */ +/* Delta C++: class table */ #define SHT_MIPS_DELTACLASS 0x7000001d /* DWARF debugging section. */ #define SHT_MIPS_DWARF 0x7000001e -/* ??? */ +/* Delta C++: declarations */ #define SHT_MIPS_DELTADECL 0x7000001f /* List of libraries the binary depends on. Includes a time stamp, version @@ -290,25 +305,25 @@ END_RELOC_NUMBERS (R_MIPS_maxext) /* ??? */ #define SHT_MIPS_TRANSLATE 0x70000022 -/* ??? */ +/* Special pixie sections */ #define SHT_MIPS_PIXIE 0x70000023 -/* ??? */ +/* Address translation table (for debug info) */ #define SHT_MIPS_XLATE 0x70000024 -/* ??? */ +/* SGI internal address translation table (for debug info) */ #define SHT_MIPS_XLATE_DEBUG 0x70000025 -/* ??? */ +/* Intermediate code */ #define SHT_MIPS_WHIRL 0x70000026 -/* ??? */ +/* C++ exception handling region info */ #define SHT_MIPS_EH_REGION 0x70000027 -/* ??? */ +/* Obsolete address translation table (for debug info) */ #define SHT_MIPS_XLATE_OLD 0x70000028 -/* ??? */ +/* Runtime procedure descriptor table exception information (ucode) ??? */ #define SHT_MIPS_PDR_EXCEPTION 0x70000029 @@ -446,11 +461,12 @@ extern void bfd_mips_elf32_swap_reginfo_out /* This section should be merged. */ #define SHF_MIPS_MERGE 0x20000000 -/* This section contains 32 bit addresses. */ -#define SHF_MIPS_ADDR32 0x40000000 +/* This section contains address data of size implied by section + element size. */ +#define SHF_MIPS_ADDR 0x40000000 -/* This section contains 64 bit addresses. */ -#define SHF_MIPS_ADDR64 0x80000000 +/* This section contains string data. */ +#define SHF_MIPS_STRING 0x80000000 /* This section may not be stripped. */ #define SHF_MIPS_NOSTRIP 0x08000000 @@ -460,6 +476,10 @@ extern void bfd_mips_elf32_swap_reginfo_out /* Linker should generate implicit weak names for this section. */ #define SHF_MIPS_NAMES 0x02000000 + +/* Section contais text/data which may be replicated in other sections. + Linker should retain only one copy. */ +#define SHF_MIPS_NODUPES 0x01000000 /* Processor specific program header types. */ @@ -469,7 +489,7 @@ extern void bfd_mips_elf32_swap_reginfo_out /* Runtime procedure table. */ #define PT_MIPS_RTPROC 0x70000001 -/* Options (for what ???). */ +/* .MIPS.options section. */ #define PT_MIPS_OPTIONS 0x70000002 /* Processor specific dynamic array tags. */ @@ -561,19 +581,19 @@ extern void bfd_mips_elf32_swap_reginfo_out /* Pixie information (???). */ #define DT_MIPS_PIXIE_INIT 0x70000023 -/* ??? */ +/* Address of .MIPS.symlib */ #define DT_MIPS_SYMBOL_LIB 0x70000024 -/* ??? */ +/* The GOT index of the first PTE for a segment */ #define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025 -/* ??? */ +/* The GOT index of the first PTE for a local symbol */ #define DT_MIPS_LOCAL_GOTIDX 0x70000026 -/* ??? */ +/* The GOT index of the first PTE for a hidden symbol */ #define DT_MIPS_HIDDEN_GOTIDX 0x70000027 -/* ??? */ +/* The GOT index of the first PTE for a protected symbol */ #define DT_MIPS_PROTECTED_GOTIDX 0x70000028 /* Address of `.MIPS.options'. */ @@ -615,20 +635,44 @@ extern void bfd_mips_elf32_swap_reginfo_out #define RHF_NOTPOT 0x00000002 /* Ignore LD_LIBRARY_PATH. */ -#define RHS_NO_LIBRARY_REPLACEMENT \ - 0x00000004 +#define RHS_NO_LIBRARY_REPLACEMENT 0x00000004 -#define RHF_NO_MOVE 0x00000008 -#define RHF_SGI_ONLY 0x00000010 +/* DSO address may not be relocated. */ +#define RHF_NO_MOVE 0x00000008 + +/* SGI specific features. */ +#define RHF_SGI_ONLY 0x00000010 + +/* Guarantee that .init will finish executing before any non-init + code in DSO is called. */ #define RHF_GUARANTEE_INIT 0x00000020 + +/* Contains Delta C++ code. */ #define RHF_DELTA_C_PLUS_PLUS 0x00000040 + +/* Guarantee that .init will start executing before any non-init + code in DSO is called. */ #define RHF_GUARANTEE_START_INIT 0x00000080 + +/* Generated by pixie. */ #define RHF_PIXIE 0x00000100 + +/* Delay-load DSO by default. */ #define RHF_DEFAULT_DELAY_LOAD 0x00000200 + +/* Object may be requickstarted */ #define RHF_REQUICKSTART 0x00000400 + +/* Object has been requickstarted */ #define RHF_REQUICKSTARTED 0x00000800 + +/* Generated by cord. */ #define RHF_CORD 0x00001000 + +/* Object contains no unresolved undef symbols. */ #define RHF_NO_UNRES_UNDEF 0x00002000 + +/* Symbol table is in a safe order. */ #define RHF_RLD_ORDER_SAFE 0x00004000 /* Special values for the st_other field in the symbol table. These @@ -722,6 +766,12 @@ typedef struct bfd_signed_vma r_addend; } Elf64_Mips_Internal_Rela; +/* MIPS ELF 64 relocation info access macros. */ +#define ELF64_MIPS_R_SSYM(i) (((i) >> 24) & 0xff) +#define ELF64_MIPS_R_TYPE3(i) (((i) >> 16) & 0xff) +#define ELF64_MIPS_R_TYPE2(i) (((i) >> 8) & 0xff) +#define ELF64_MIPS_R_TYPE(i) ((i) & 0xff) + /* Values found in the r_ssym field of a relocation entry. */ /* No relocation. */ @@ -878,7 +928,8 @@ extern void bfd_mips_elf64_swap_reginfo_out #define OEX_FPU_MAX 0x1f00 /* FPEs which may be enabled. */ #define OEX_PAGE0 0x10000 /* Page zero must be mapped. */ #define OEX_SMM 0x20000 /* Force sequential memory mode. */ -#define OEX_FPDBUG 0x40000 /* Force floating-point debug mode. */ +#define OEX_FPDBUG 0x40000 /* Force precise floating-point + exceptions (debug mode). */ #define OEX_DISMISS 0x80000 /* Dismiss invalid address faults. */ /* Masks of the FP exceptions for OEX_FPU_MIN and OEX_FPU_MAX. */ @@ -894,10 +945,13 @@ extern void bfd_mips_elf64_swap_reginfo_out #define OPAD_SYMBOL 0x04 /* Masks for the info word of an ODK_HWPATCH descriptor. */ -#define OHW_R4KEOP 0x01 /* R4000 end-of-page patch. */ -#define OHW_R8KPFETCH 0x02 /* May need R8000 prefetch patch. */ -#define OHW_R5KEOP 0x04 /* R5000 end-of-page patch. */ -#define OHW_R5KCVTL 0x08 /* R5000 cvt.[ds].l bug (clean == 1). */ +#define OHW_R4KEOP 0x00000001 /* R4000 end-of-page patch. */ +#define OHW_R8KPFETCH 0x00000002 /* May need R8000 prefetch patch. */ +#define OHW_R5KEOP 0x00000004 /* R5000 end-of-page patch. */ +#define OHW_R5KCVTL 0x00000008 /* R5000 cvt.[ds].l bug + (clean == 1). */ +#define OHW_R10KLDL 0x00000010 /* Needs R10K misaligned + load patch. */ /* Masks for the info word of an ODK_IDENT/ODK_GP_GROUP descriptor. */ #define OGP_GROUP 0x0000ffff /* GP group number. */ diff --git a/include/elf/sparc.h b/include/elf/sparc.h index a9b757377..7c780f7c3 100644 --- a/include/elf/sparc.h +++ b/include/elf/sparc.h @@ -86,7 +86,7 @@ START_RELOC_NUMBERS (elf_sparc_reloc_type) RELOC_NUMBER (R_SPARC_UA32, 23) /* ??? These 6 relocs are new but not currently used. For binary - compatility in the sparc64-elf toolchain, we leave them out. + compatibility in the sparc64-elf toolchain, we leave them out. A non-binary upward compatible change is expected for sparc64-elf. */ #ifndef SPARC64_OLD_RELOCS /* ??? New relocs on the UltraSPARC. Not sure what they're for yet. */ diff --git a/include/ieee.h b/include/ieee.h index c601332e2..5abc32b62 100644 --- a/include/ieee.h +++ b/include/ieee.h @@ -22,135 +22,143 @@ #define N_W_VARIABLES 8 #define Module_Beginning 0xe0 -typedef struct ieee_module { - char *processor; - char *module_name; -} ieee_module_begin_type; +typedef struct ieee_module + { + char *processor; + char *module_name; + } +ieee_module_begin_type; #define Address_Descriptor 0xec -typedef struct ieee_address { -bfd_vma number_of_bits_mau; - bfd_vma number_of_maus_in_address; +typedef struct ieee_address + { + bfd_vma number_of_bits_mau; + bfd_vma number_of_maus_in_address; - unsigned char byte_order; + unsigned char byte_order; #define IEEE_LITTLE 0xcc #define IEEE_BIG 0xcd -} ieee_address_descriptor_type; - -typedef union ieee_w_variable { - file_ptr offset[N_W_VARIABLES]; - struct { - file_ptr extension_record; - file_ptr environmental_record; - file_ptr section_part; - file_ptr external_part; - file_ptr debug_information_part; - file_ptr data_part; - file_ptr trailer_part; - file_ptr me_record; - } r; -} ieee_w_variable_type; - - - - + } +ieee_address_descriptor_type; + +typedef union ieee_w_variable + { + file_ptr offset[N_W_VARIABLES]; + + struct + { + file_ptr extension_record; + file_ptr environmental_record; + file_ptr section_part; + file_ptr external_part; + file_ptr debug_information_part; + file_ptr data_part; + file_ptr trailer_part; + file_ptr me_record; + } + r; + } +ieee_w_variable_type; typedef enum ieee_record -{ - ieee_number_start_enum = 0x00, - ieee_number_end_enum=0x7f, - ieee_number_repeat_start_enum = 0x80, - ieee_number_repeat_end_enum = 0x88, - ieee_number_repeat_4_enum = 0x84, - ieee_number_repeat_3_enum = 0x83, - ieee_number_repeat_2_enum = 0x82, - ieee_number_repeat_1_enum = 0x81, - ieee_module_beginning_enum = 0xe0, - ieee_module_end_enum = 0xe1, - ieee_extension_length_1_enum = 0xde, - ieee_extension_length_2_enum = 0xdf, - ieee_section_type_enum = 0xe6, - ieee_section_alignment_enum = 0xe7, - ieee_external_symbol_enum = 0xe8, - ieee_comma = 0x90, - ieee_external_reference_enum = 0xe9, - ieee_set_current_section_enum = 0xe5, - ieee_address_descriptor_enum = 0xec, - ieee_load_constant_bytes_enum = 0xed, - ieee_load_with_relocation_enum = 0xe4, - - ieee_variable_A_enum = 0xc1, - ieee_variable_B_enum = 0xc2, - ieee_variable_C_enum = 0xc3, - ieee_variable_D_enum = 0xc4, - ieee_variable_E_enum = 0xc5, - ieee_variable_F_enum = 0xc6, - ieee_variable_G_enum = 0xc7, - ieee_variable_H_enum = 0xc8, - ieee_variable_I_enum = 0xc9, - ieee_variable_J_enum = 0xca, - ieee_variable_K_enum = 0xcb, - ieee_variable_L_enum = 0xcc, - ieee_variable_M_enum = 0xcd, - ieee_variable_N_enum = 0xce, - ieee_variable_O_enum = 0xcf, - ieee_variable_P_enum = 0xd0, - ieee_variable_Q_enum = 0xd1, - ieee_variable_R_enum = 0xd2, - ieee_variable_S_enum = 0xd3, - ieee_variable_T_enum = 0xd4, - ieee_variable_U_enum = 0xd5, - ieee_variable_V_enum = 0xd6, - ieee_variable_W_enum = 0xd7, - ieee_variable_X_enum = 0xd8, - ieee_variable_Y_enum = 0xd9, - ieee_variable_Z_enum = 0xda, - ieee_function_plus_enum = 0xa5, - ieee_function_minus_enum = 0xa6, - ieee_function_signed_open_b_enum = 0xba, - ieee_function_signed_close_b_enum = 0xbb, - - ieee_function_unsigned_open_b_enum = 0xbc, - ieee_function_unsigned_close_b_enum = 0xbd, - - ieee_function_either_open_b_enum = 0xbe, - ieee_function_either_close_b_enum = 0xbf, - ieee_record_seperator_enum = 0xdb, - - ieee_e2_first_byte_enum = 0xe2, - ieee_section_size_enum = 0xe2d3, - ieee_physical_region_size_enum = 0xe2c1, - ieee_region_base_address_enum = 0xe2c2, - ieee_mau_size_enum = 0xe2c6, - ieee_m_value_enum = 0xe2cd, - ieee_section_base_address_enum = 0xe2cc, - ieee_asn_record_enum = 0xe2ce, - ieee_section_offset_enum = 0xe2d2, - ieee_value_starting_address_enum = 0xe2c7, - ieee_assign_value_to_variable_enum = 0xe2d7, - ieee_set_current_pc_enum = 0xe2d0, - ieee_value_record_enum = 0xe2c9, - ieee_nn_record = 0xf0, - ieee_at_record_enum = 0xf1, - ieee_ty_record_enum = 0xf2, - ieee_attribute_record_enum = 0xf1c9, - ieee_atn_record_enum = 0xf1ce, - ieee_external_reference_info_record_enum = 0xf1d8, - ieee_weak_external_reference_enum= 0xf4, - ieee_repeat_data_enum = 0xf7, - ieee_bb_record_enum = 0xf8, - ieee_be_record_enum = 0xf9 -} ieee_record_enum_type; - - -typedef struct ieee_section { - unsigned int section_index; - unsigned int section_type; - char *section_name; - unsigned int parent_section_index; - unsigned int sibling_section_index; - unsigned int context_index; -} ieee_section_type; + { + ieee_number_start_enum = 0x00, + ieee_number_end_enum=0x7f, + ieee_number_repeat_start_enum = 0x80, + ieee_number_repeat_end_enum = 0x88, + ieee_number_repeat_4_enum = 0x84, + ieee_number_repeat_3_enum = 0x83, + ieee_number_repeat_2_enum = 0x82, + ieee_number_repeat_1_enum = 0x81, + ieee_module_beginning_enum = 0xe0, + ieee_module_end_enum = 0xe1, + ieee_extension_length_1_enum = 0xde, + ieee_extension_length_2_enum = 0xdf, + ieee_section_type_enum = 0xe6, + ieee_section_alignment_enum = 0xe7, + ieee_external_symbol_enum = 0xe8, + ieee_comma = 0x90, + ieee_external_reference_enum = 0xe9, + ieee_set_current_section_enum = 0xe5, + ieee_address_descriptor_enum = 0xec, + ieee_load_constant_bytes_enum = 0xed, + ieee_load_with_relocation_enum = 0xe4, + + ieee_variable_A_enum = 0xc1, + ieee_variable_B_enum = 0xc2, + ieee_variable_C_enum = 0xc3, + ieee_variable_D_enum = 0xc4, + ieee_variable_E_enum = 0xc5, + ieee_variable_F_enum = 0xc6, + ieee_variable_G_enum = 0xc7, + ieee_variable_H_enum = 0xc8, + ieee_variable_I_enum = 0xc9, + ieee_variable_J_enum = 0xca, + ieee_variable_K_enum = 0xcb, + ieee_variable_L_enum = 0xcc, + ieee_variable_M_enum = 0xcd, + ieee_variable_N_enum = 0xce, + ieee_variable_O_enum = 0xcf, + ieee_variable_P_enum = 0xd0, + ieee_variable_Q_enum = 0xd1, + ieee_variable_R_enum = 0xd2, + ieee_variable_S_enum = 0xd3, + ieee_variable_T_enum = 0xd4, + ieee_variable_U_enum = 0xd5, + ieee_variable_V_enum = 0xd6, + ieee_variable_W_enum = 0xd7, + ieee_variable_X_enum = 0xd8, + ieee_variable_Y_enum = 0xd9, + ieee_variable_Z_enum = 0xda, + ieee_function_plus_enum = 0xa5, + ieee_function_minus_enum = 0xa6, + ieee_function_signed_open_b_enum = 0xba, + ieee_function_signed_close_b_enum = 0xbb, + + ieee_function_unsigned_open_b_enum = 0xbc, + ieee_function_unsigned_close_b_enum = 0xbd, + + ieee_function_either_open_b_enum = 0xbe, + ieee_function_either_close_b_enum = 0xbf, + ieee_record_seperator_enum = 0xdb, + + ieee_e2_first_byte_enum = 0xe2, + ieee_section_size_enum = 0xe2d3, + ieee_physical_region_size_enum = 0xe2c1, + ieee_region_base_address_enum = 0xe2c2, + ieee_mau_size_enum = 0xe2c6, + ieee_m_value_enum = 0xe2cd, + ieee_section_base_address_enum = 0xe2cc, + ieee_asn_record_enum = 0xe2ce, + ieee_section_offset_enum = 0xe2d2, + ieee_value_starting_address_enum = 0xe2c7, + ieee_assign_value_to_variable_enum = 0xe2d7, + ieee_set_current_pc_enum = 0xe2d0, + ieee_value_record_enum = 0xe2c9, + ieee_nn_record = 0xf0, + ieee_at_record_enum = 0xf1, + ieee_ty_record_enum = 0xf2, + ieee_attribute_record_enum = 0xf1c9, + ieee_atn_record_enum = 0xf1ce, + ieee_external_reference_info_record_enum = 0xf1d8, + ieee_weak_external_reference_enum= 0xf4, + ieee_repeat_data_enum = 0xf7, + ieee_bb_record_enum = 0xf8, + ieee_be_record_enum = 0xf9 + } +ieee_record_enum_type; + +typedef struct ieee_section + { + unsigned int section_index; + unsigned int section_type; + char * section_name; + unsigned int parent_section_index; + unsigned int sibling_section_index; + unsigned int context_index; + } +ieee_section_type; + #define IEEE_REFERENCE_BASE 11 #define IEEE_PUBLIC_BASE 32 #define IEEE_SECTION_NUMBER_BASE 1 diff --git a/include/oasys.h b/include/oasys.h index 8d4596599..c8f737a45 100644 --- a/include/oasys.h +++ b/include/oasys.h @@ -22,117 +22,133 @@ #define OASYS_MAX_SEC_COUNT 16 /* **** */ -typedef struct oasys_archive_header { - unsigned int version; - char create_date[12]; - char revision_date[12]; - unsigned int mod_count; - file_ptr mod_tbl_offset; - unsigned int sym_tbl_size; - unsigned int sym_count; - file_ptr sym_tbl_offset; - unsigned int xref_count; - file_ptr xref_lst_offset; -} oasys_archive_header_type; - -typedef struct oasys_extarchive_header { - bfd_byte version[4]; - bfd_byte create_date[12]; - bfd_byte revision_date[12]; - bfd_byte mod_count[4]; - bfd_byte mod_tbl_offset[4]; - bfd_byte sym_tbl_size[4]; - bfd_byte sym_count[4]; - bfd_byte sym_tbl_offset[4]; - bfd_byte xref_count[4]; - bfd_byte xref_lst_offset[4]; -} oasys_extarchive_header_type; - -typedef struct oasys_module_table { - int mod_number; - char mod_date[12]; - unsigned int mod_size; - unsigned int dep_count; - unsigned int depee_count; - file_ptr file_offset; - unsigned int sect_count; - char *module_name; - unsigned int module_name_size; -} oasys_module_table_type; - - -typedef struct oasys_extmodule_table_a { - bfd_byte mod_number[4]; - bfd_byte mod_date[12]; - bfd_byte mod_size[4]; - bfd_byte dep_count[4]; - bfd_byte depee_count[4]; - bfd_byte sect_count[4]; - bfd_byte file_offset[4]; - bfd_byte mod_name[32]; -} oasys_extmodule_table_type_a_type; - -typedef struct oasys_extmodule_table_b { - bfd_byte mod_number[4]; - bfd_byte mod_date[12]; - bfd_byte mod_size[4]; - bfd_byte dep_count[4]; - bfd_byte depee_count[4]; - bfd_byte sect_count[4]; - bfd_byte file_offset[4]; - bfd_byte mod_name_length[4]; -} oasys_extmodule_table_type_b_type; - - -typedef enum oasys_record { - oasys_record_is_end_enum = 0, - oasys_record_is_data_enum = 1, - oasys_record_is_symbol_enum = 2, - oasys_record_is_header_enum = 3, - oasys_record_is_named_section_enum = 4, - oasys_record_is_com_enum = 5, - oasys_record_is_debug_enum = 6, - oasys_record_is_section_enum = 7, - oasys_record_is_debug_file_enum = 8, - oasys_record_is_module_enum = 9, - oasys_record_is_local_enum = 10 -} oasys_record_enum_type; - - - -typedef struct oasys_record_header { - unsigned char length; - unsigned char check_sum; - unsigned char type; - unsigned char fill; -} oasys_record_header_type; - -typedef struct oasys_data_record { - oasys_record_header_type header; - unsigned char relb; - bfd_byte addr[4]; - /* maximum total size of data record is 255 bytes */ - bfd_byte data[246]; -} oasys_data_record_type; - -typedef struct oasys_header_record { - oasys_record_header_type header; - unsigned char version_number; - unsigned char rev_number; - char module_name[26-6]; - char description[64-26]; -} oasys_header_record_type; +typedef struct oasys_archive_header + { + unsigned int version; + char create_date[12]; + char revision_date[12]; + unsigned int mod_count; + file_ptr mod_tbl_offset; + unsigned int sym_tbl_size; + unsigned int sym_count; + file_ptr sym_tbl_offset; + unsigned int xref_count; + file_ptr xref_lst_offset; + } +oasys_archive_header_type; + +typedef struct oasys_extarchive_header + { + bfd_byte version[4]; + bfd_byte create_date[12]; + bfd_byte revision_date[12]; + bfd_byte mod_count[4]; + bfd_byte mod_tbl_offset[4]; + bfd_byte sym_tbl_size[4]; + bfd_byte sym_count[4]; + bfd_byte sym_tbl_offset[4]; + bfd_byte xref_count[4]; + bfd_byte xref_lst_offset[4]; + } +oasys_extarchive_header_type; + +typedef struct oasys_module_table + { + int mod_number; + char mod_date[12]; + unsigned int mod_size; + unsigned int dep_count; + unsigned int depee_count; + file_ptr file_offset; + unsigned int sect_count; + char *module_name; + unsigned int module_name_size; + } +oasys_module_table_type; + +typedef struct oasys_extmodule_table_a + { + bfd_byte mod_number[4]; + bfd_byte mod_date[12]; + bfd_byte mod_size[4]; + bfd_byte dep_count[4]; + bfd_byte depee_count[4]; + bfd_byte sect_count[4]; + bfd_byte file_offset[4]; + bfd_byte mod_name[32]; + } +oasys_extmodule_table_type_a_type; + +typedef struct oasys_extmodule_table_b + { + bfd_byte mod_number[4]; + bfd_byte mod_date[12]; + bfd_byte mod_size[4]; + bfd_byte dep_count[4]; + bfd_byte depee_count[4]; + bfd_byte sect_count[4]; + bfd_byte file_offset[4]; + bfd_byte mod_name_length[4]; + } +oasys_extmodule_table_type_b_type; + +typedef enum oasys_record + { + oasys_record_is_end_enum = 0, + oasys_record_is_data_enum = 1, + oasys_record_is_symbol_enum = 2, + oasys_record_is_header_enum = 3, + oasys_record_is_named_section_enum = 4, + oasys_record_is_com_enum = 5, + oasys_record_is_debug_enum = 6, + oasys_record_is_section_enum = 7, + oasys_record_is_debug_file_enum = 8, + oasys_record_is_module_enum = 9, + oasys_record_is_local_enum = 10 + } +oasys_record_enum_type; + +typedef struct oasys_record_header + { + unsigned char length; + unsigned char check_sum; + unsigned char type; + unsigned char fill; + } +oasys_record_header_type; + +typedef struct oasys_data_record + { + oasys_record_header_type header; + unsigned char relb; + bfd_byte addr[4]; + /* maximum total size of data record is 255 bytes */ + bfd_byte data[246]; + } +oasys_data_record_type; + +typedef struct oasys_header_record + { + oasys_record_header_type header; + unsigned char version_number; + unsigned char rev_number; + char module_name[26-6]; + char description[64-26]; + } +oasys_header_record_type; #define OASYS_VERSION_NUMBER 0 #define OASYS_REV_NUMBER 0 -typedef struct oasys_symbol_record { - oasys_record_header_type header; - unsigned char relb; - bfd_byte value[4]; - bfd_byte refno[2]; - char name[64]; -} oasys_symbol_record_type; +typedef struct oasys_symbol_record + { + oasys_record_header_type header; + unsigned char relb; + bfd_byte value[4]; + bfd_byte refno[2]; + char name[64]; + } +oasys_symbol_record_type; #define RELOCATION_PCREL_BIT 0x80 #define RELOCATION_32BIT_BIT 0x40 @@ -143,28 +159,34 @@ typedef struct oasys_symbol_record { #define RELOCATION_TYPE_COM 0x30 #define RELOCATION_SECT_BITS 0x0f -typedef struct oasys_section_record { - oasys_record_header_type header; - unsigned char relb; - bfd_byte value[4]; - bfd_byte vma[4]; - bfd_byte fill[3]; -} oasys_section_record_type; - -typedef struct oasys_end_record { - oasys_record_header_type header; - unsigned char relb; - bfd_byte entry[4]; - bfd_byte fill[2]; - bfd_byte zero; -} oasys_end_record_type; - -typedef union oasys_record_union { - oasys_record_header_type header; - oasys_data_record_type data; - oasys_section_record_type section; - oasys_symbol_record_type symbol; - oasys_header_record_type first; - oasys_end_record_type end; - bfd_byte pad[256]; -} oasys_record_union_type; +typedef struct oasys_section_record + { + oasys_record_header_type header; + unsigned char relb; + bfd_byte value[4]; + bfd_byte vma[4]; + bfd_byte fill[3]; + } +oasys_section_record_type; + +typedef struct oasys_end_record + { + oasys_record_header_type header; + unsigned char relb; + bfd_byte entry[4]; + bfd_byte fill[2]; + bfd_byte zero; + } +oasys_end_record_type; + +typedef union oasys_record_union + { + oasys_record_header_type header; + oasys_data_record_type data; + oasys_section_record_type section; + oasys_symbol_record_type symbol; + oasys_header_record_type first; + oasys_end_record_type end; + bfd_byte pad[256]; + } +oasys_record_union_type; diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index 5427a9ea9..9e40d0ce9 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,23 @@ +2001-06-11 Alan Modra <amodra@bigpond.net.au> + + Merge from mainline. + 2001-05-23 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + * mips.h (CPU_R12000): Define. + + 2001-05-15 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + * mips.h (INSN_ISA_MASK): Define. + + 2001-03-21 Kazu Hirata <kazu@hxi.com> + * h8300.h: Fix formatting. + + 2001-02-28 Igor Shevlyakov <igor@windriver.com> + * m68k.h: new defines for Coldfire V4. Update mcf to know + about mcf5407. + + 2001-02-10 Nick Clifton <nickc@redhat.com> + * mips.h: Remove extraneous whitespace. Formating change to allow + for future contribution. + 2001-06-07 Alan Modra <amodra@bigpond.net.au> * Many files: Update copyright notices. diff --git a/include/opcode/m68k.h b/include/opcode/m68k.h index b07cbff0a..3371d38a7 100644 --- a/include/opcode/m68k.h +++ b/include/opcode/m68k.h @@ -39,6 +39,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #define mcf5200 0x200 #define mcf5206e 0x400 #define mcf5307 0x800 +#define mcf5407 0x1000 /* handy aliases */ #define m68040up (m68040 | m68060) @@ -46,7 +47,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #define m68020up (m68020 | m68030up) #define m68010up (m68010 | cpu32 | m68020up) #define m68000up (m68000 | m68010up) -#define mcf (mcf5200 | mcf5206e | mcf5307) +#define mcf (mcf5200 | mcf5206e | mcf5307 | mcf5407) +#define mcf5307up (mcf5307 | mcf5407) #define mfloat (m68881 | m68882 | m68040 | m68060) #define mmmu (m68851 | m68030 | m68040 | m68060) diff --git a/include/opcode/mips.h b/include/opcode/mips.h index 7ff806825..7fd4703e5 100644 --- a/include/opcode/mips.h +++ b/include/opcode/mips.h @@ -31,9 +31,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * i = (i &~ (OP_MASK_X << OP_SH_X)) | (j << OP_SH_X) Make sure you use fields that are appropriate for the instruction, - of course. + of course. - The 'i' format uses OP, RS, RT and IMMEDIATE. + The 'i' format uses OP, RS, RT and IMMEDIATE. The 'j' format uses OP and TARGET. @@ -124,7 +124,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * #define OP_SH_HINT 16 #define OP_MASK_HINT 0x1f #define OP_SH_MMI 0 /* Multimedia (parallel) op. */ -#define OP_MASK_MMI 0x3f +#define OP_MASK_MMI 0x3f #define OP_SH_MMISUB 6 #define OP_MASK_MMISUB 0x1f #define OP_MASK_PERFREG 0x1f /* Performance monitoring. */ @@ -307,6 +307,7 @@ struct mips_opcode ORs of these bits, indicatingthat they support the instructions defined at the given level. */ +#define INSN_ISA_MASK 0x0000ffff #define INSN_ISA1 0x00000010 #define INSN_ISA2 0x00000020 #define INSN_ISA3 0x00000040 @@ -357,6 +358,7 @@ struct mips_opcode #define CPU_R6000 6000 #define CPU_R8000 8000 #define CPU_R10000 10000 +#define CPU_R12000 12000 #define CPU_MIPS16 16 #define CPU_MIPS32 32 #define CPU_MIPS32_4K 3204113 /* 32, 04, octal 'K'. */ @@ -367,14 +369,15 @@ struct mips_opcode /* Test for membership in an ISA including chip specific ISAs. INSN is pointer to an element of the opcode table; ISA is the specified ISA to test against; and CPU is the CPU specific ISA - to test, or zero if no CPU specific ISA test is desired. + to test, or zero if no CPU specific ISA test is desired. The gp32 arg is set when you need to force 32-bit register usage on a machine with 64-bit registers; see the documentation under -mgp32 in the MIPS gas docs. */ #define OPCODE_IS_MEMBER(insn, isa, cpu, gp32) \ ((((insn)->membership & isa) != 0 \ - && ((insn)->membership & INSN_GP32 ? gp32 : 1)) \ + && ((insn)->membership & INSN_GP32 ? gp32 : 1) \ + ) \ || (cpu == CPU_R4650 && ((insn)->membership & INSN_4650) != 0) \ || (cpu == CPU_R4010 && ((insn)->membership & INSN_4010) != 0) \ || ((cpu == CPU_VR4100 || cpu == CPU_R4111) \ @@ -382,7 +385,7 @@ struct mips_opcode || (cpu == CPU_R3900 && ((insn)->membership & INSN_3900) != 0)) /* This is a list of macro expanded instructions. - + _I appended means immediate _A appended means address _AB appended means address with base register @@ -447,11 +450,11 @@ enum M_DLA_AB, M_DLI, M_DMUL, - M_DMUL_I, + M_DMUL_I, M_DMULO, - M_DMULO_I, + M_DMULO_I, M_DMULOU, - M_DMULOU_I, + M_DMULOU_I, M_DREM_3, M_DREM_3I, M_DREMU_3, @@ -506,11 +509,11 @@ enum M_LWR_AB, M_LWU_AB, M_MUL, - M_MUL_I, + M_MUL_I, M_MULO, - M_MULO_I, + M_MULO_I, M_MULOU, - M_MULOU_I, + M_MULOU_I, M_NOR_I, M_OR_I, M_REM_3, |