* common.h (EM_M32C_NEW): Rename to EM_M32C.
[deliverable/binutils-gdb.git] / include / elf / alpha.h
index f6899a7063d76d00016c97eec7f2afc045711cbe..e53202c6e4ba465f1d3f56b202dec9124494d6d6 100644 (file)
@@ -1,5 +1,5 @@
 /* ALPHA ELF support for BFD.
-   Copyright (C) 1996, 1998 Free Software Foundation, Inc.
+   Copyright 1996, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
 
    By Eric Youngdale, <eric@aib.com>.  No processor supplement available
    for this platform.
@@ -18,7 +18,7 @@ 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.  */
+Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 /* This file holds definitions specific to the ALPHA ELF ABI.  Note
    that most of this is not actually implemented by BFD.  */
@@ -63,12 +63,10 @@ typedef struct
 #define STO_ALPHA_NOPV         0x80
 #define STO_ALPHA_STD_GPLOAD   0x88
 
-/* Unless otherwise told we define an enum with the relocation entries.  */
-#ifndef START_RELOC_NUMBERS
-# define START_RELOC_NUMBERS(name)   enum name {
-# define RELOC_NUMBER(name, number)  name = number ,
-# define END_RELOC_NUMBERS           };
-#endif
+/* Special values for Elf64_Dyn tag.  */
+#define DT_ALPHA_PLTRO         DT_LOPROC
+
+#include "elf/reloc-macros.h"
 
 /* Alpha relocs.  */
 START_RELOC_NUMBERS (elf_alpha_reloc_type)
@@ -85,29 +83,48 @@ START_RELOC_NUMBERS (elf_alpha_reloc_type)
   RELOC_NUMBER (R_ALPHA_SREL32, 10)    /* PC relative 32 bit */
   RELOC_NUMBER (R_ALPHA_SREL64, 11)    /* PC relative 64 bit */
 
-/* Inherited these from ECOFF, but they are not particularly useful
-   and are depreciated.  And not implemented in the BFD, btw.  */
-  RELOC_NUMBER (R_ALPHA_OP_PUSH, 12)   /* OP stack push */
-  RELOC_NUMBER (R_ALPHA_OP_STORE, 13)  /* OP stack pop and store */
-  RELOC_NUMBER (R_ALPHA_OP_PSUB, 14)   /* OP stack subtract */
-  RELOC_NUMBER (R_ALPHA_OP_PRSHIFT, 15)        /* OP stack right shift */
-
-  RELOC_NUMBER (R_ALPHA_GPVALUE, 16)
-  RELOC_NUMBER (R_ALPHA_GPRELHIGH, 17)
-  RELOC_NUMBER (R_ALPHA_GPRELLOW, 18)
-  RELOC_NUMBER (R_ALPHA_IMMED_GP_16, 19)
-  RELOC_NUMBER (R_ALPHA_IMMED_GP_HI32, 20)
-  RELOC_NUMBER (R_ALPHA_IMMED_SCN_HI32, 21)
-  RELOC_NUMBER (R_ALPHA_IMMED_BR_HI32, 22)
-  RELOC_NUMBER (R_ALPHA_IMMED_LO32, 23)
-
-/* These relocations are specific to shared libraries.  */
+  /* Skip 12 - 16; deprecated ECOFF relocs.  */
+
+  RELOC_NUMBER (R_ALPHA_GPRELHIGH, 17) /* GP relative 32 bit, high 16 bits */
+  RELOC_NUMBER (R_ALPHA_GPRELLOW, 18)  /* GP relative 32 bit, low 16 bits */
+  RELOC_NUMBER (R_ALPHA_GPREL16, 19)   /* GP relative 16 bit */
+
+  /* Skip 20 - 23; deprecated ECOFF relocs.  */
+
+  /* These relocations are specific to shared libraries.  */
   RELOC_NUMBER (R_ALPHA_COPY, 24)      /* Copy symbol at runtime */
   RELOC_NUMBER (R_ALPHA_GLOB_DAT, 25)  /* Create GOT entry */
   RELOC_NUMBER (R_ALPHA_JMP_SLOT, 26)  /* Create PLT entry */
   RELOC_NUMBER (R_ALPHA_RELATIVE, 27)  /* Adjust by program base */
 
-  RELOC_NUMBER (R_ALPHA_max, 28)
-END_RELOC_NUMBERS
+  /* Like BRADDR, but assert that the source and target object file
+     share the same GP value, and adjust the target address for 
+     STO_ALPHA_STD_GPLOAD.  */
+  RELOC_NUMBER (R_ALPHA_BRSGP, 28)
+
+  /* Thread-Local Storage.  */
+  RELOC_NUMBER (R_ALPHA_TLSGD, 29)
+  RELOC_NUMBER (R_ALPHA_TLSLDM, 30)
+  RELOC_NUMBER (R_ALPHA_DTPMOD64, 31)
+  RELOC_NUMBER (R_ALPHA_GOTDTPREL, 32)
+  RELOC_NUMBER (R_ALPHA_DTPREL64, 33)
+  RELOC_NUMBER (R_ALPHA_DTPRELHI, 34)
+  RELOC_NUMBER (R_ALPHA_DTPRELLO, 35)
+  RELOC_NUMBER (R_ALPHA_DTPREL16, 36)
+  RELOC_NUMBER (R_ALPHA_GOTTPREL, 37)
+  RELOC_NUMBER (R_ALPHA_TPREL64, 38)
+  RELOC_NUMBER (R_ALPHA_TPRELHI, 39)
+  RELOC_NUMBER (R_ALPHA_TPRELLO, 40)
+  RELOC_NUMBER (R_ALPHA_TPREL16, 41)
+
+END_RELOC_NUMBERS (R_ALPHA_max)
+
+#define LITUSE_ALPHA_ADDR      0
+#define LITUSE_ALPHA_BASE      1
+#define LITUSE_ALPHA_BYTOFF    2
+#define LITUSE_ALPHA_JSR       3
+#define LITUSE_ALPHA_TLSGD     4
+#define LITUSE_ALPHA_TLSLDM    5
+#define LITUSE_ALPHA_JSRDIRECT 6
 
 #endif /* _ELF_ALPHA_H */
This page took 0.025037 seconds and 4 git commands to generate.