archive.c bfd_zalloc
[deliverable/binutils-gdb.git] / include / elf / ppc.h
index da00df8688d5f288bf8b66a2eca451e2b855aae9..ee6068111162fd1f5cef1eb6f5dde149a7332de9 100644 (file)
@@ -1,6 +1,5 @@
 /* PPC ELF support for BFD.
-   Copyright 1995, 1996, 1998, 2000, 2001, 2002, 2003, 2005, 2007, 2008,
-   2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 1995-2019 Free Software Foundation, Inc.
 
    By Michael Meissner, Cygnus Support, <meissner@cygnus.com>,
    from information in the System V Application Binary Interface,
@@ -74,10 +73,14 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
   RELOC_NUMBER (R_PPC_ADDR30,           37)
 
 #ifndef RELOC_MACROS_GEN_FUNC
-/* Fake relocations for branch stubs, only used internally by ld.  */
+/* Relocations only used internally by ld.  If you need to use these
+   reloc numbers, you can change them to some other unused value
+   without affecting the ABI.  They will never appear in object files.  */
   RELOC_NUMBER (R_PPC_RELAX,            48)
   RELOC_NUMBER (R_PPC_RELAX_PLT,        49)
   RELOC_NUMBER (R_PPC_RELAX_PLTREL24,   50)
+/* Reloc only used internally by gas.  As above, value is unimportant.  */
+  RELOC_NUMBER (R_PPC_16DX_HA,          51)
 #endif
 
   /* Relocs added to support TLS.  */
@@ -131,6 +134,10 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
   RELOC_NUMBER (R_PPC_EMB_BIT_FLD,     115)
   RELOC_NUMBER (R_PPC_EMB_RELSDA,      116)
 
+/* Marker reloc for inline plt call insns.  */
+  RELOC_NUMBER (R_PPC_PLTSEQ,          119)
+  RELOC_NUMBER (R_PPC_PLTCALL,         120)
+
 /* PowerPC VLE relocations.  */
   RELOC_NUMBER (R_PPC_VLE_REL8,                216)
   RELOC_NUMBER (R_PPC_VLE_REL15,       217)
@@ -149,6 +156,10 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
   RELOC_NUMBER (R_PPC_VLE_SDAREL_HI16D,        230)
   RELOC_NUMBER (R_PPC_VLE_SDAREL_HA16A,        231)
   RELOC_NUMBER (R_PPC_VLE_SDAREL_HA16D,        232)
+  RELOC_NUMBER (R_PPC_VLE_ADDR20,      233)
+
+/* Power9 split rel16 for addpcis.  */
+  RELOC_NUMBER (R_PPC_REL16DX_HA,      246)
 
 /* Support STT_GNU_IFUNC plt calls.  */
   RELOC_NUMBER (R_PPC_IRELATIVE,       248)
@@ -200,15 +211,35 @@ END_RELOC_NUMBERS (R_PPC_max)
                                                   specified in the associated \
                                                   symbol table entry.  */
 
+/* APUinfo note section.  */
+#define APUINFO_SECTION_NAME   ".PPC.EMB.apuinfo"
+#define APUINFO_LABEL          "APUinfo"
+
+#define PPC_APUINFO_ISEL       0x40
+#define PPC_APUINFO_PMR                0x41
+#define PPC_APUINFO_RFMCI      0x42
+#define PPC_APUINFO_CACHELCK   0x43
+#define PPC_APUINFO_SPE                0x100
+#define PPC_APUINFO_EFS                0x101
+#define PPC_APUINFO_BRLOCK     0x102
+#define PPC_APUINFO_VLE                0x104
+
 /* Object attribute tags.  */
 enum
 {
   /* 0-3 are generic.  */
-  Tag_GNU_Power_ABI_FP = 4, /* Value 1 for hard-float, 2 for
-                              soft-float, 3 for single=precision 
-                              hard-float; 0 for not tagged or not
-                              using any ABIs affected by the
-                              differences.  */
+
+  /* FP ABI, low 2 bits:
+     1 for double precision hard-float,
+     2 for soft-float,
+     3 for single precision hard-float.
+     0 for not tagged or not using any ABIs affected by the differences.
+     Next 2 bits:
+     1 for ibm long double
+     2 for 64-bit long double
+     3 for IEEE long double.
+     0 for not tagged or not using any ABIs affected by the differences.  */
+  Tag_GNU_Power_ABI_FP = 4,
 
   /* Value 1 for general purpose registers only, 2 for AltiVec
      registers, 3 for SPE registers; 0 for not tagged or not using any
This page took 0.024405 seconds and 4 git commands to generate.