Update year range in copyright notice of binutils files
[deliverable/binutils-gdb.git] / include / elf / alpha.h
index 1ae9d5efd6d5e57a7da19fe642baea7810b1b920..37d97a11b17e648a4bccdd6904f046d5956f8dba 100644 (file)
@@ -1,24 +1,25 @@
 /* ALPHA ELF support for BFD.
-   Copyright (C) 1996, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1996-2020 Free Software Foundation, Inc.
 
    By Eric Youngdale, <eric@aib.com>.  No processor supplement available
    for this platform.
 
-This file is part of BFD, the Binary File Descriptor library.
+   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 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 3 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.
+   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.  */
+   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., 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,6 +64,9 @@ typedef struct
 #define STO_ALPHA_NOPV         0x80
 #define STO_ALPHA_STD_GPLOAD   0x88
 
+/* Special values for Elf64_Dyn tag.  */
+#define DT_ALPHA_PLTRO         DT_LOPROC
+
 #include "elf/reloc-macros.h"
 
 /* Alpha relocs.  */
@@ -80,29 +84,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 */
 
-  EMPTY_RELOC  (R_ALPHA_max)
-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.176112 seconds and 4 git commands to generate.