[X86][Haswell][SchedModel] Add architecture specific scheduling models.
[oota-llvm.git] / lib / Object / ELF.cpp
index c39e1e1805cc5289bfcbb4d755ae11e8f38c46e8..11099bd8bc624ca183bdef5880af03ac34e0bbaf 100644 (file)
@@ -159,6 +159,15 @@ StringRef getELFRelocationTypeName(uint32_t Machine, uint32_t Type) {
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL_HI16);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL_LO16);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GLOB_DAT);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC21_S2);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC26_S2);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC18_S3);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC19_S2);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PCHI16);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PCLO16);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS16_GOT16);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS16_HI16);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS16_LO16);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_COPY);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_JUMP_SLOT);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_26_S1);
@@ -177,6 +186,7 @@ StringRef getELFRelocationTypeName(uint32_t Machine, uint32_t Type) {
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_TPREL_HI16);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_TPREL_LO16);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_NUM);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC32);
     default:
       break;
     }
@@ -213,6 +223,8 @@ StringRef getELFRelocationTypeName(uint32_t Machine, uint32_t Type) {
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST32_ABS_LO12_NC);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST64_ABS_LO12_NC);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST128_ABS_LO12_NC);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_GOTREL64);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_GOTREL32);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADR_GOT_PAGE);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LD64_GOT_LO12_NC);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G2);
@@ -256,6 +268,15 @@ StringRef getELFRelocationTypeName(uint32_t Machine, uint32_t Type) {
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_LD64_LO12_NC);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_ADD_LO12_NC);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_CALL);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_COPY);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_GLOB_DAT);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_JUMP_SLOT);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_RELATIVE);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLS_DTPREL64);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLS_DTPMOD64);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLS_TPREL64);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_IRELATIVE);
     default:
       break;
     }
@@ -509,6 +530,7 @@ StringRef getELFRelocationTypeName(uint32_t Machine, uint32_t Type) {
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_LO);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_HI);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_HA);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_PLTREL24);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL32);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TLS);
       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPMOD32);
@@ -704,6 +726,98 @@ StringRef getELFRelocationTypeName(uint32_t Machine, uint32_t Type) {
       break;
     }
     break;
+  case ELF::EM_SPARC:
+  case ELF::EM_SPARC32PLUS:
+  case ELF::EM_SPARCV9:
+    switch (Type) {
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_NONE);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_8);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_16);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_32);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP8);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP16);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP32);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP30);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HI22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_13);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LO10);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOT10);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOT13);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOT22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC10);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WPLT30);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_COPY);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GLOB_DAT);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_JMP_SLOT);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_RELATIVE);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_UA32);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PLT32);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HIPLT22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LOPLT10);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PCPLT32);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PCPLT22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PCPLT10);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_10);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_11);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_64);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_OLO10);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HH22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HM10);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LM22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC_HH22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC_HM10);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC_LM22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP16);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP19);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_7);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_5);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_6);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP64);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PLT64);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HIX22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LOX10);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_H44);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_M44);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_L44);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_REGISTER);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_UA64);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_UA16);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_HI22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_LO10);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_ADD);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_CALL);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_HI22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_LO10);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_ADD);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_CALL);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDO_HIX22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDO_LOX10);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDO_ADD);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_HI22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_LO10);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_LD);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_LDX);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_ADD);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LE_HIX22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LE_LOX10);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPMOD32);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPMOD64);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPOFF32);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPOFF64);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_TPOFF32);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_TPOFF64);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_HIX22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_LOX22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_OP_HIX22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_OP_LOX22);
+      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_OP);
+    default:
+      break;
+    }
+    break;
   default:
     break;
   }