From 4086bde1cdb1572f659c4e6102b0dba7e1a99e20 Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Wed, 28 Jan 1998 17:45:50 +0000 Subject: [PATCH] txvu.h deleted in favor of generating mips files --- include/elf/.Sanitize | 9 +-- include/elf/mips.h | 135 ++++++++++++++++++++++++++++++++++++++++-- include/elf/txvu.h | 35 ----------- 3 files changed, 130 insertions(+), 49 deletions(-) delete mode 100644 include/elf/txvu.h diff --git a/include/elf/.Sanitize b/include/elf/.Sanitize index 2c83e1c1289..78b21078e9c 100644 --- a/include/elf/.Sanitize +++ b/include/elf/.Sanitize @@ -15,13 +15,6 @@ Do-first: -sky_files=txvu.h -if ( echo $* | grep keep\-sky > /dev/null ) ; then - keep_these_too="${sky_files} ${keep_these_too}" -else - lose_these_too="${sky_files} ${lose_these_too}" -fi - # All files listed between the "Things-to-keep:" line and the # "Files-to-sed:" line will be kept. All other files will be removed. # Directories listed in this section will have their own Sanitize @@ -133,7 +126,7 @@ else done fi -sky_files="ChangeLog common.h" +sky_files="ChangeLog mips.h" if ( echo $* | grep keep\-sky > /dev/null ) ; then for i in $sky_files ; do if test ! -d $i && (grep sanitize-sky $i > /dev/null) ; then diff --git a/include/elf/mips.h b/include/elf/mips.h index 80ed526b7ce..2c9faac499c 100644 --- a/include/elf/mips.h +++ b/include/elf/mips.h @@ -1,5 +1,5 @@ /* MIPS ELF support for BFD. - Copyright (C) 1993, 1994 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation, Inc. By Ian Lance Taylor, Cygnus Support, , from information in the System V Application Binary Interface, MIPS @@ -39,6 +39,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ position independent code. */ #define EF_MIPS_CPIC 0x00000004 +/* Code in file uses new ABI (-n32 on Irix 6). */ +#define EF_MIPS_ABI2 0x00000020 + /* Four bit MIPS architecture field. */ #define EF_MIPS_ARCH 0xf0000000 @@ -103,14 +106,22 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Section contains register usage information. */ #define SHT_MIPS_REGINFO 0x70000006 -/* Section contains miscellaneous options (used on Irix). */ +/* Section contains interface information. */ +#define SHT_MIPS_IFACE 0x7000000b + +/* Section contains description of contents of another section. */ +#define SHT_MIPS_CONTENT 0x7000000c + +/* Section contains miscellaneous options. */ #define SHT_MIPS_OPTIONS 0x7000000d -/* DWARF debugging section (used on Irix 6). */ +/* DWARF debugging section. */ #define SHT_MIPS_DWARF 0x7000001e -/* Events section. This appears on Irix 6. I don't know what it - means. */ +/* I'm not sure what this is, but it appears on Irix 6. */ +#define SHT_MIPS_SYMBOL_LIB 0x70000020 + +/* Events section. */ #define SHT_MIPS_EVENTS 0x70000021 /* A section of type SHT_MIPS_LIBLIST contains an array of the @@ -216,6 +227,24 @@ extern void bfd_mips_elf32_swap_reginfo_out /* This section must be in the global data area. */ #define SHF_MIPS_GPREL 0x10000000 + +/* This section should be merged. */ +#define SHF_MIPS_MERGE 0x20000000 + +/* This section contains 32 bit addresses. */ +#define SHF_MIPS_ADDR32 0x40000000 + +/* This section contains 64 bit addresses. */ +#define SHF_MIPS_ADDR64 0x80000000 + +/* This section may not be stripped. */ +#define SHF_MIPS_NOSTRIP 0x08000000 + +/* This section is local to threads. */ +#define SHF_MIPS_LOCAL 0x04000000 + +/* Linker should generate implicit weak names for this section. */ +#define SHF_MIPS_NAMES 0x02000000 /* Processor specific program header types. */ @@ -297,8 +326,20 @@ extern void bfd_mips_elf32_swap_reginfo_out #define STO_INTERNAL 0x01 #define STO_HIDDEN 0x02 #define STO_PROTECTED 0x03 + +/* start-sanitize-sky */ +/* These values are used for the dvp. */ +#define STO_DVP_DMA 0xe8 +#define STO_DVP_PKE 0xe9 +#define STO_DVP_GPUIF 0xea +#define STO_DVP_VU 0xeb +#define MIPS_STO_DVP_P(sto) ((sto) >= STO_DVP_DMA && (sto) <= STO_DVP_VU) + +/* end-sanitize-sky */ +/* This value is used for a mips16 .text symbol. */ +#define STO_MIPS16 0xf0 -/* The 64-bit MIPS ELF ABI uses an usual reloc format. Each +/* The 64-bit MIPS ELF ABI uses an unusual reloc format. Each relocation entry specifies up to three actual relocations, all at the same address. The first relocation which required a symbol uses the symbol in the r_sym field. The second relocation which @@ -391,5 +432,87 @@ typedef struct /* Address of location being relocated. */ #define RSS_LOC 3 + +/* A SHT_MIPS_OPTIONS section contains a series of options, each of + which starts with this header. */ + +typedef struct +{ + /* Type of option. */ + unsigned char kind[1]; + /* Size of option descriptor, including header. */ + unsigned char size[1]; + /* Section index of affected section, or 0 for global option. */ + unsigned char section[2]; + /* Information specific to this kind of option. */ + unsigned char info[4]; +} Elf_External_Options; + +typedef struct +{ + /* Type of option. */ + unsigned char kind; + /* Size of option descriptor, including header. */ + unsigned char size; + /* Section index of affected section, or 0 for global option. */ + unsigned short section; + /* Information specific to this kind of option. */ + unsigned long info; +} Elf_Internal_Options; + +/* MIPS ELF option header swapping routines. */ +extern void bfd_mips_elf_swap_options_in + PARAMS ((bfd *, const Elf_External_Options *, Elf_Internal_Options *)); +extern void bfd_mips_elf_swap_options_out + PARAMS ((bfd *, const Elf_Internal_Options *, Elf_External_Options *)); + +/* Values which may appear in the kind field of an Elf_Options + structure. */ + +/* Undefined. */ +#define ODK_NULL 0 + +/* Register usage and GP value. */ +#define ODK_REGINFO 1 + +/* Exception processing information. */ +#define ODK_EXCEPTIONS 2 + +/* Section padding information. */ +#define ODK_PAD 3 + +/* In the 32 bit ABI, an ODK_REGINFO option is just a Elf32_Reginfo + structure. In the 64 bit ABI, it is the following structure. The + info field of the options header is not used. */ + +typedef struct +{ + /* Mask of general purpose registers used. */ + unsigned char ri_gprmask[4]; + /* Padding. */ + unsigned char ri_pad[4]; + /* Mask of co-processor registers used. */ + unsigned char ri_cprmask[4][4]; + /* GP register value for this object file. */ + unsigned char ri_gp_value[8]; +} Elf64_External_RegInfo; + +typedef struct +{ + /* Mask of general purpose registers used. */ + unsigned long ri_gprmask; + /* Padding. */ + unsigned long ri_pad; + /* Mask of co-processor registers used. */ + unsigned long ri_cprmask[4]; + /* GP register value for this object file. */ + bfd_vma ri_gp_value; +} Elf64_Internal_RegInfo; + +/* MIPS ELF reginfo swapping routines. */ +extern void bfd_mips_elf64_swap_reginfo_in + PARAMS ((bfd *, const Elf64_External_RegInfo *, Elf64_Internal_RegInfo *)); +extern void bfd_mips_elf64_swap_reginfo_out + PARAMS ((bfd *, const Elf64_Internal_RegInfo *, Elf64_External_RegInfo *)); #endif /* _ELF_MIPS_H */ diff --git a/include/elf/txvu.h b/include/elf/txvu.h deleted file mode 100644 index fc8df7d9282..00000000000 --- a/include/elf/txvu.h +++ /dev/null @@ -1,35 +0,0 @@ -/* TXVU ELF support for BFD. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - -This file is part of BFD, the Binary File Descriptor library. - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software Foundation, Inc., -59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#ifndef _ELF_TXVU_H -#define _ELF_TXVU_H - -enum reloc_type -{ - R_TXVU_NONE = 0, - R_TXVU_8, - R_TXVU_16, - R_TXVU_32, - R_TXVU_UA16, - R_TXVU_UA32, - R_TXVU_11_PCREL, - R_TXVU_max -}; - -#endif -- 2.30.2