mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
[MC] Merge VK_PPC_TPREL in to generic VK_TPREL.
Differential Revision: http://reviews.llvm.org/D17038 llvm-svn: 260401
This commit is contained in:
parent
3f7545fbb6
commit
db6a39c7b6
@ -215,7 +215,6 @@ public:
|
|||||||
VK_PPC_TOC_HI, // symbol@toc@h
|
VK_PPC_TOC_HI, // symbol@toc@h
|
||||||
VK_PPC_TOC_HA, // symbol@toc@ha
|
VK_PPC_TOC_HA, // symbol@toc@ha
|
||||||
VK_PPC_DTPMOD, // symbol@dtpmod
|
VK_PPC_DTPMOD, // symbol@dtpmod
|
||||||
VK_PPC_TPREL, // symbol@tprel
|
|
||||||
VK_PPC_TPREL_LO, // symbol@tprel@l
|
VK_PPC_TPREL_LO, // symbol@tprel@l
|
||||||
VK_PPC_TPREL_HI, // symbol@tprel@h
|
VK_PPC_TPREL_HI, // symbol@tprel@h
|
||||||
VK_PPC_TPREL_HA, // symbol@tprel@ha
|
VK_PPC_TPREL_HA, // symbol@tprel@ha
|
||||||
@ -223,7 +222,6 @@ public:
|
|||||||
VK_PPC_TPREL_HIGHERA, // symbol@tprel@highera
|
VK_PPC_TPREL_HIGHERA, // symbol@tprel@highera
|
||||||
VK_PPC_TPREL_HIGHEST, // symbol@tprel@highest
|
VK_PPC_TPREL_HIGHEST, // symbol@tprel@highest
|
||||||
VK_PPC_TPREL_HIGHESTA, // symbol@tprel@highesta
|
VK_PPC_TPREL_HIGHESTA, // symbol@tprel@highesta
|
||||||
VK_PPC_DTPREL, // symbol@dtprel
|
|
||||||
VK_PPC_DTPREL_LO, // symbol@dtprel@l
|
VK_PPC_DTPREL_LO, // symbol@dtprel@l
|
||||||
VK_PPC_DTPREL_HI, // symbol@dtprel@h
|
VK_PPC_DTPREL_HI, // symbol@dtprel@h
|
||||||
VK_PPC_DTPREL_HA, // symbol@dtprel@ha
|
VK_PPC_DTPREL_HA, // symbol@dtprel@ha
|
||||||
|
@ -406,13 +406,14 @@ void MCELFStreamer::fixSymbolsInTLSFixups(const MCExpr *expr) {
|
|||||||
case MCSymbolRefExpr::VK_TLSLD:
|
case MCSymbolRefExpr::VK_TLSLD:
|
||||||
case MCSymbolRefExpr::VK_TLSLDM:
|
case MCSymbolRefExpr::VK_TLSLDM:
|
||||||
case MCSymbolRefExpr::VK_TPOFF:
|
case MCSymbolRefExpr::VK_TPOFF:
|
||||||
|
case MCSymbolRefExpr::VK_TPREL:
|
||||||
case MCSymbolRefExpr::VK_DTPOFF:
|
case MCSymbolRefExpr::VK_DTPOFF:
|
||||||
|
case MCSymbolRefExpr::VK_DTPREL:
|
||||||
case MCSymbolRefExpr::VK_Mips_TLSGD:
|
case MCSymbolRefExpr::VK_Mips_TLSGD:
|
||||||
case MCSymbolRefExpr::VK_Mips_GOTTPREL:
|
case MCSymbolRefExpr::VK_Mips_GOTTPREL:
|
||||||
case MCSymbolRefExpr::VK_Mips_TPREL_HI:
|
case MCSymbolRefExpr::VK_Mips_TPREL_HI:
|
||||||
case MCSymbolRefExpr::VK_Mips_TPREL_LO:
|
case MCSymbolRefExpr::VK_Mips_TPREL_LO:
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPMOD:
|
case MCSymbolRefExpr::VK_PPC_DTPMOD:
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL:
|
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL_LO:
|
case MCSymbolRefExpr::VK_PPC_TPREL_LO:
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL_HI:
|
case MCSymbolRefExpr::VK_PPC_TPREL_HI:
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL_HA:
|
case MCSymbolRefExpr::VK_PPC_TPREL_HA:
|
||||||
@ -420,7 +421,6 @@ void MCELFStreamer::fixSymbolsInTLSFixups(const MCExpr *expr) {
|
|||||||
case MCSymbolRefExpr::VK_PPC_TPREL_HIGHERA:
|
case MCSymbolRefExpr::VK_PPC_TPREL_HIGHERA:
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL_HIGHEST:
|
case MCSymbolRefExpr::VK_PPC_TPREL_HIGHEST:
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL_HIGHESTA:
|
case MCSymbolRefExpr::VK_PPC_TPREL_HIGHESTA:
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL:
|
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL_LO:
|
case MCSymbolRefExpr::VK_PPC_DTPREL_LO:
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL_HI:
|
case MCSymbolRefExpr::VK_PPC_DTPREL_HI:
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL_HA:
|
case MCSymbolRefExpr::VK_PPC_DTPREL_HA:
|
||||||
|
@ -178,6 +178,8 @@ StringRef MCSymbolRefExpr::getVariantKindName(VariantKind Kind) {
|
|||||||
case VK_Invalid: return "<<invalid>>";
|
case VK_Invalid: return "<<invalid>>";
|
||||||
case VK_None: return "<<none>>";
|
case VK_None: return "<<none>>";
|
||||||
|
|
||||||
|
case VK_DTPOFF: return "DTPOFF";
|
||||||
|
case VK_DTPREL: return "DTPREL";
|
||||||
case VK_GOT: return "GOT";
|
case VK_GOT: return "GOT";
|
||||||
case VK_GOTOFF: return "GOTOFF";
|
case VK_GOTOFF: return "GOTOFF";
|
||||||
case VK_GOTREL: return "GOTREL";
|
case VK_GOTREL: return "GOTREL";
|
||||||
@ -191,7 +193,7 @@ StringRef MCSymbolRefExpr::getVariantKindName(VariantKind Kind) {
|
|||||||
case VK_TLSLD: return "TLSLD";
|
case VK_TLSLD: return "TLSLD";
|
||||||
case VK_TLSLDM: return "TLSLDM";
|
case VK_TLSLDM: return "TLSLDM";
|
||||||
case VK_TPOFF: return "TPOFF";
|
case VK_TPOFF: return "TPOFF";
|
||||||
case VK_DTPOFF: return "DTPOFF";
|
case VK_TPREL: return "TPREL";
|
||||||
case VK_TLVP: return "TLVP";
|
case VK_TLVP: return "TLVP";
|
||||||
case VK_TLVPPAGE: return "TLVPPAGE";
|
case VK_TLVPPAGE: return "TLVPPAGE";
|
||||||
case VK_TLVPPAGEOFF: return "TLVPPAGEOFF";
|
case VK_TLVPPAGEOFF: return "TLVPPAGEOFF";
|
||||||
@ -228,7 +230,6 @@ StringRef MCSymbolRefExpr::getVariantKindName(VariantKind Kind) {
|
|||||||
case VK_PPC_TOC_HI: return "toc@h";
|
case VK_PPC_TOC_HI: return "toc@h";
|
||||||
case VK_PPC_TOC_HA: return "toc@ha";
|
case VK_PPC_TOC_HA: return "toc@ha";
|
||||||
case VK_PPC_DTPMOD: return "dtpmod";
|
case VK_PPC_DTPMOD: return "dtpmod";
|
||||||
case VK_PPC_TPREL: return "tprel";
|
|
||||||
case VK_PPC_TPREL_LO: return "tprel@l";
|
case VK_PPC_TPREL_LO: return "tprel@l";
|
||||||
case VK_PPC_TPREL_HI: return "tprel@h";
|
case VK_PPC_TPREL_HI: return "tprel@h";
|
||||||
case VK_PPC_TPREL_HA: return "tprel@ha";
|
case VK_PPC_TPREL_HA: return "tprel@ha";
|
||||||
@ -236,7 +237,6 @@ StringRef MCSymbolRefExpr::getVariantKindName(VariantKind Kind) {
|
|||||||
case VK_PPC_TPREL_HIGHERA: return "tprel@highera";
|
case VK_PPC_TPREL_HIGHERA: return "tprel@highera";
|
||||||
case VK_PPC_TPREL_HIGHEST: return "tprel@highest";
|
case VK_PPC_TPREL_HIGHEST: return "tprel@highest";
|
||||||
case VK_PPC_TPREL_HIGHESTA: return "tprel@highesta";
|
case VK_PPC_TPREL_HIGHESTA: return "tprel@highesta";
|
||||||
case VK_PPC_DTPREL: return "dtprel";
|
|
||||||
case VK_PPC_DTPREL_LO: return "dtprel@l";
|
case VK_PPC_DTPREL_LO: return "dtprel@l";
|
||||||
case VK_PPC_DTPREL_HI: return "dtprel@h";
|
case VK_PPC_DTPREL_HI: return "dtprel@h";
|
||||||
case VK_PPC_DTPREL_HA: return "dtprel@ha";
|
case VK_PPC_DTPREL_HA: return "dtprel@ha";
|
||||||
@ -302,8 +302,6 @@ StringRef MCSymbolRefExpr::getVariantKindName(VariantKind Kind) {
|
|||||||
case VK_Hexagon_IE: return "IE";
|
case VK_Hexagon_IE: return "IE";
|
||||||
case VK_Hexagon_IE_GOT: return "IEGOT";
|
case VK_Hexagon_IE_GOT: return "IEGOT";
|
||||||
case VK_WebAssembly_FUNCTION: return "FUNCTION";
|
case VK_WebAssembly_FUNCTION: return "FUNCTION";
|
||||||
case VK_TPREL: return "tprel";
|
|
||||||
case VK_DTPREL: return "dtprel";
|
|
||||||
}
|
}
|
||||||
llvm_unreachable("Invalid variant kind");
|
llvm_unreachable("Invalid variant kind");
|
||||||
}
|
}
|
||||||
@ -311,6 +309,8 @@ StringRef MCSymbolRefExpr::getVariantKindName(VariantKind Kind) {
|
|||||||
MCSymbolRefExpr::VariantKind
|
MCSymbolRefExpr::VariantKind
|
||||||
MCSymbolRefExpr::getVariantKindForName(StringRef Name) {
|
MCSymbolRefExpr::getVariantKindForName(StringRef Name) {
|
||||||
return StringSwitch<VariantKind>(Name.lower())
|
return StringSwitch<VariantKind>(Name.lower())
|
||||||
|
.Case("dtprel", VK_DTPREL)
|
||||||
|
.Case("dtpoff", VK_DTPOFF)
|
||||||
.Case("got", VK_GOT)
|
.Case("got", VK_GOT)
|
||||||
.Case("gotoff", VK_GOTOFF)
|
.Case("gotoff", VK_GOTOFF)
|
||||||
.Case("gotrel", VK_GOTREL)
|
.Case("gotrel", VK_GOTREL)
|
||||||
@ -324,7 +324,7 @@ MCSymbolRefExpr::getVariantKindForName(StringRef Name) {
|
|||||||
.Case("tlsld", VK_TLSLD)
|
.Case("tlsld", VK_TLSLD)
|
||||||
.Case("tlsldm", VK_TLSLDM)
|
.Case("tlsldm", VK_TLSLDM)
|
||||||
.Case("tpoff", VK_TPOFF)
|
.Case("tpoff", VK_TPOFF)
|
||||||
.Case("dtpoff", VK_DTPOFF)
|
.Case("tprel", VK_TPREL)
|
||||||
.Case("tlvp", VK_TLVP)
|
.Case("tlvp", VK_TLVP)
|
||||||
.Case("tlvppage", VK_TLVPPAGE)
|
.Case("tlvppage", VK_TLVPPAGE)
|
||||||
.Case("tlvppageoff", VK_TLVPPAGEOFF)
|
.Case("tlvppageoff", VK_TLVPPAGEOFF)
|
||||||
@ -353,7 +353,6 @@ MCSymbolRefExpr::getVariantKindForName(StringRef Name) {
|
|||||||
.Case("toc@ha", VK_PPC_TOC_HA)
|
.Case("toc@ha", VK_PPC_TOC_HA)
|
||||||
.Case("tls", VK_PPC_TLS)
|
.Case("tls", VK_PPC_TLS)
|
||||||
.Case("dtpmod", VK_PPC_DTPMOD)
|
.Case("dtpmod", VK_PPC_DTPMOD)
|
||||||
.Case("tprel", VK_PPC_TPREL)
|
|
||||||
.Case("tprel@l", VK_PPC_TPREL_LO)
|
.Case("tprel@l", VK_PPC_TPREL_LO)
|
||||||
.Case("tprel@h", VK_PPC_TPREL_HI)
|
.Case("tprel@h", VK_PPC_TPREL_HI)
|
||||||
.Case("tprel@ha", VK_PPC_TPREL_HA)
|
.Case("tprel@ha", VK_PPC_TPREL_HA)
|
||||||
@ -361,7 +360,6 @@ MCSymbolRefExpr::getVariantKindForName(StringRef Name) {
|
|||||||
.Case("tprel@highera", VK_PPC_TPREL_HIGHERA)
|
.Case("tprel@highera", VK_PPC_TPREL_HIGHERA)
|
||||||
.Case("tprel@highest", VK_PPC_TPREL_HIGHEST)
|
.Case("tprel@highest", VK_PPC_TPREL_HIGHEST)
|
||||||
.Case("tprel@highesta", VK_PPC_TPREL_HIGHESTA)
|
.Case("tprel@highesta", VK_PPC_TPREL_HIGHESTA)
|
||||||
.Case("dtprel", VK_PPC_DTPREL)
|
|
||||||
.Case("dtprel@l", VK_PPC_DTPREL_LO)
|
.Case("dtprel@l", VK_PPC_DTPREL_LO)
|
||||||
.Case("dtprel@h", VK_PPC_DTPREL_HI)
|
.Case("dtprel@h", VK_PPC_DTPREL_HI)
|
||||||
.Case("dtprel@ha", VK_PPC_DTPREL_HA)
|
.Case("dtprel@ha", VK_PPC_DTPREL_HA)
|
||||||
|
@ -50,7 +50,7 @@ unsigned HexagonELFObjectWriter::getRelocType(MCContext &Ctx,
|
|||||||
break;
|
break;
|
||||||
case FK_Data_4:
|
case FK_Data_4:
|
||||||
switch(Variant) {
|
switch(Variant) {
|
||||||
case MCSymbolRefExpr::VariantKind::VK_PPC_DTPREL:
|
case MCSymbolRefExpr::VariantKind::VK_DTPREL:
|
||||||
return ELF::R_HEX_DTPREL_32;
|
return ELF::R_HEX_DTPREL_32;
|
||||||
case MCSymbolRefExpr::VariantKind::VK_GOT:
|
case MCSymbolRefExpr::VariantKind::VK_GOT:
|
||||||
return ELF::R_HEX_GOT_32;
|
return ELF::R_HEX_GOT_32;
|
||||||
@ -66,7 +66,7 @@ unsigned HexagonELFObjectWriter::getRelocType(MCContext &Ctx,
|
|||||||
return ELF::R_HEX_LD_GOT_32;
|
return ELF::R_HEX_LD_GOT_32;
|
||||||
case MCSymbolRefExpr::VariantKind::VK_Hexagon_PCREL:
|
case MCSymbolRefExpr::VariantKind::VK_Hexagon_PCREL:
|
||||||
return ELF::R_HEX_32_PCREL;
|
return ELF::R_HEX_32_PCREL;
|
||||||
case MCSymbolRefExpr::VariantKind::VK_PPC_TPREL:
|
case MCSymbolRefExpr::VariantKind::VK_TPREL:
|
||||||
return ELF::R_HEX_TPREL_32;
|
return ELF::R_HEX_TPREL_32;
|
||||||
case MCSymbolRefExpr::VariantKind::VK_None:
|
case MCSymbolRefExpr::VariantKind::VK_None:
|
||||||
return IsPCRel ? ELF::R_HEX_32_PCREL : ELF::R_HEX_32;
|
return IsPCRel ? ELF::R_HEX_32_PCREL : ELF::R_HEX_32;
|
||||||
@ -77,7 +77,7 @@ unsigned HexagonELFObjectWriter::getRelocType(MCContext &Ctx,
|
|||||||
return ELF::R_HEX_32_PCREL;
|
return ELF::R_HEX_32_PCREL;
|
||||||
case FK_Data_2:
|
case FK_Data_2:
|
||||||
switch(Variant) {
|
switch(Variant) {
|
||||||
case MCSymbolRefExpr::VariantKind::VK_PPC_DTPREL:
|
case MCSymbolRefExpr::VariantKind::VK_DTPREL:
|
||||||
return ELF::R_HEX_DTPREL_16;
|
return ELF::R_HEX_DTPREL_16;
|
||||||
case MCSymbolRefExpr::VariantKind::VK_GOT:
|
case MCSymbolRefExpr::VariantKind::VK_GOT:
|
||||||
return ELF::R_HEX_GOT_16;
|
return ELF::R_HEX_GOT_16;
|
||||||
@ -87,7 +87,7 @@ unsigned HexagonELFObjectWriter::getRelocType(MCContext &Ctx,
|
|||||||
return ELF::R_HEX_IE_GOT_16;
|
return ELF::R_HEX_IE_GOT_16;
|
||||||
case MCSymbolRefExpr::VariantKind::VK_Hexagon_LD_GOT:
|
case MCSymbolRefExpr::VariantKind::VK_Hexagon_LD_GOT:
|
||||||
return ELF::R_HEX_LD_GOT_16;
|
return ELF::R_HEX_LD_GOT_16;
|
||||||
case MCSymbolRefExpr::VariantKind::VK_PPC_TPREL:
|
case MCSymbolRefExpr::VariantKind::VK_TPREL:
|
||||||
return ELF::R_HEX_TPREL_16;
|
return ELF::R_HEX_TPREL_16;
|
||||||
case MCSymbolRefExpr::VariantKind::VK_None:
|
case MCSymbolRefExpr::VariantKind::VK_None:
|
||||||
return ELF::R_HEX_16;
|
return ELF::R_HEX_16;
|
||||||
|
@ -279,9 +279,9 @@ Hexagon::Fixups getFixupNoBits(MCInstrInfo const &MCII, const MCInst &MI,
|
|||||||
return Hexagon::fixup_Hexagon_GOTREL_32_6_X;
|
return Hexagon::fixup_Hexagon_GOTREL_32_6_X;
|
||||||
case MCSymbolRefExpr::VK_GOT:
|
case MCSymbolRefExpr::VK_GOT:
|
||||||
return Hexagon::fixup_Hexagon_GOT_32_6_X;
|
return Hexagon::fixup_Hexagon_GOT_32_6_X;
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL:
|
case MCSymbolRefExpr::VK_TPREL:
|
||||||
return Hexagon::fixup_Hexagon_TPREL_32_6_X;
|
return Hexagon::fixup_Hexagon_TPREL_32_6_X;
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL:
|
case MCSymbolRefExpr::VK_DTPREL:
|
||||||
return Hexagon::fixup_Hexagon_DTPREL_32_6_X;
|
return Hexagon::fixup_Hexagon_DTPREL_32_6_X;
|
||||||
case MCSymbolRefExpr::VK_Hexagon_GD_GOT:
|
case MCSymbolRefExpr::VK_Hexagon_GD_GOT:
|
||||||
return Hexagon::fixup_Hexagon_GD_GOT_32_6_X;
|
return Hexagon::fixup_Hexagon_GD_GOT_32_6_X;
|
||||||
@ -319,9 +319,9 @@ Hexagon::Fixups getFixupNoBits(MCInstrInfo const &MCII, const MCInst &MI,
|
|||||||
return Hexagon::fixup_Hexagon_IE_HI16;
|
return Hexagon::fixup_Hexagon_IE_HI16;
|
||||||
case MCSymbolRefExpr::VK_Hexagon_IE_GOT:
|
case MCSymbolRefExpr::VK_Hexagon_IE_GOT:
|
||||||
return Hexagon::fixup_Hexagon_IE_GOT_HI16;
|
return Hexagon::fixup_Hexagon_IE_GOT_HI16;
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL:
|
case MCSymbolRefExpr::VK_TPREL:
|
||||||
return Hexagon::fixup_Hexagon_TPREL_HI16;
|
return Hexagon::fixup_Hexagon_TPREL_HI16;
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL:
|
case MCSymbolRefExpr::VK_DTPREL:
|
||||||
return Hexagon::fixup_Hexagon_DTPREL_HI16;
|
return Hexagon::fixup_Hexagon_DTPREL_HI16;
|
||||||
case MCSymbolRefExpr::VK_None:
|
case MCSymbolRefExpr::VK_None:
|
||||||
return Hexagon::fixup_Hexagon_HI16;
|
return Hexagon::fixup_Hexagon_HI16;
|
||||||
@ -344,9 +344,9 @@ Hexagon::Fixups getFixupNoBits(MCInstrInfo const &MCII, const MCInst &MI,
|
|||||||
return Hexagon::fixup_Hexagon_IE_LO16;
|
return Hexagon::fixup_Hexagon_IE_LO16;
|
||||||
case MCSymbolRefExpr::VK_Hexagon_IE_GOT:
|
case MCSymbolRefExpr::VK_Hexagon_IE_GOT:
|
||||||
return Hexagon::fixup_Hexagon_IE_GOT_LO16;
|
return Hexagon::fixup_Hexagon_IE_GOT_LO16;
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL:
|
case MCSymbolRefExpr::VK_TPREL:
|
||||||
return Hexagon::fixup_Hexagon_TPREL_LO16;
|
return Hexagon::fixup_Hexagon_TPREL_LO16;
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL:
|
case MCSymbolRefExpr::VK_DTPREL:
|
||||||
return Hexagon::fixup_Hexagon_DTPREL_LO16;
|
return Hexagon::fixup_Hexagon_DTPREL_LO16;
|
||||||
case MCSymbolRefExpr::VK_None:
|
case MCSymbolRefExpr::VK_None:
|
||||||
return Hexagon::fixup_Hexagon_LO16;
|
return Hexagon::fixup_Hexagon_LO16;
|
||||||
@ -452,7 +452,7 @@ unsigned HexagonMCCodeEmitter::getExprOpValue(const MCInst &MI,
|
|||||||
raise_relocation_error(bits, kind);
|
raise_relocation_error(bits, kind);
|
||||||
case 32:
|
case 32:
|
||||||
switch (kind) {
|
switch (kind) {
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL:
|
case MCSymbolRefExpr::VK_DTPREL:
|
||||||
FixupKind = *Extended ? Hexagon::fixup_Hexagon_DTPREL_32_6_X
|
FixupKind = *Extended ? Hexagon::fixup_Hexagon_DTPREL_32_6_X
|
||||||
: Hexagon::fixup_Hexagon_DTPREL_32;
|
: Hexagon::fixup_Hexagon_DTPREL_32;
|
||||||
break;
|
break;
|
||||||
@ -487,7 +487,7 @@ unsigned HexagonMCCodeEmitter::getExprOpValue(const MCInst &MI,
|
|||||||
FixupKind =
|
FixupKind =
|
||||||
*Extended ? Hexagon::fixup_Hexagon_32_6_X : Hexagon::fixup_Hexagon_32;
|
*Extended ? Hexagon::fixup_Hexagon_32_6_X : Hexagon::fixup_Hexagon_32;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL:
|
case MCSymbolRefExpr::VK_TPREL:
|
||||||
FixupKind = *Extended ? Hexagon::fixup_Hexagon_TPREL_32_6_X
|
FixupKind = *Extended ? Hexagon::fixup_Hexagon_TPREL_32_6_X
|
||||||
: Hexagon::fixup_Hexagon_TPREL_32;
|
: Hexagon::fixup_Hexagon_TPREL_32;
|
||||||
break;
|
break;
|
||||||
@ -519,7 +519,7 @@ unsigned HexagonMCCodeEmitter::getExprOpValue(const MCInst &MI,
|
|||||||
case 16:
|
case 16:
|
||||||
if (*Extended) {
|
if (*Extended) {
|
||||||
switch (kind) {
|
switch (kind) {
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL:
|
case MCSymbolRefExpr::VK_DTPREL:
|
||||||
FixupKind = Hexagon::fixup_Hexagon_DTPREL_16_X;
|
FixupKind = Hexagon::fixup_Hexagon_DTPREL_16_X;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_GOT:
|
case MCSymbolRefExpr::VK_GOT:
|
||||||
@ -543,7 +543,7 @@ unsigned HexagonMCCodeEmitter::getExprOpValue(const MCInst &MI,
|
|||||||
case MCSymbolRefExpr::VK_None:
|
case MCSymbolRefExpr::VK_None:
|
||||||
FixupKind = Hexagon::fixup_Hexagon_16_X;
|
FixupKind = Hexagon::fixup_Hexagon_16_X;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL:
|
case MCSymbolRefExpr::VK_TPREL:
|
||||||
FixupKind = Hexagon::fixup_Hexagon_TPREL_16_X;
|
FixupKind = Hexagon::fixup_Hexagon_TPREL_16_X;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -551,7 +551,7 @@ unsigned HexagonMCCodeEmitter::getExprOpValue(const MCInst &MI,
|
|||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
switch (kind) {
|
switch (kind) {
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL:
|
case MCSymbolRefExpr::VK_DTPREL:
|
||||||
FixupKind = Hexagon::fixup_Hexagon_DTPREL_16;
|
FixupKind = Hexagon::fixup_Hexagon_DTPREL_16;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_GOTREL:
|
case MCSymbolRefExpr::VK_GOTREL:
|
||||||
@ -578,7 +578,7 @@ unsigned HexagonMCCodeEmitter::getExprOpValue(const MCInst &MI,
|
|||||||
case MCSymbolRefExpr::VK_Hexagon_LO16:
|
case MCSymbolRefExpr::VK_Hexagon_LO16:
|
||||||
FixupKind = Hexagon::fixup_Hexagon_LO16;
|
FixupKind = Hexagon::fixup_Hexagon_LO16;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL:
|
case MCSymbolRefExpr::VK_TPREL:
|
||||||
FixupKind = Hexagon::fixup_Hexagon_TPREL_16;
|
FixupKind = Hexagon::fixup_Hexagon_TPREL_16;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -630,7 +630,7 @@ unsigned HexagonMCCodeEmitter::getExprOpValue(const MCInst &MI,
|
|||||||
case 11:
|
case 11:
|
||||||
if (*Extended)
|
if (*Extended)
|
||||||
switch (kind) {
|
switch (kind) {
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL:
|
case MCSymbolRefExpr::VK_DTPREL:
|
||||||
FixupKind = Hexagon::fixup_Hexagon_DTPREL_11_X;
|
FixupKind = Hexagon::fixup_Hexagon_DTPREL_11_X;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_GOT:
|
case MCSymbolRefExpr::VK_GOT:
|
||||||
@ -651,7 +651,7 @@ unsigned HexagonMCCodeEmitter::getExprOpValue(const MCInst &MI,
|
|||||||
case MCSymbolRefExpr::VK_None:
|
case MCSymbolRefExpr::VK_None:
|
||||||
FixupKind = Hexagon::fixup_Hexagon_11_X;
|
FixupKind = Hexagon::fixup_Hexagon_11_X;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL:
|
case MCSymbolRefExpr::VK_TPREL:
|
||||||
FixupKind = Hexagon::fixup_Hexagon_TPREL_11_X;
|
FixupKind = Hexagon::fixup_Hexagon_TPREL_11_X;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -659,7 +659,7 @@ unsigned HexagonMCCodeEmitter::getExprOpValue(const MCInst &MI,
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
switch (kind) {
|
switch (kind) {
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL:
|
case MCSymbolRefExpr::VK_TPREL:
|
||||||
FixupKind = Hexagon::fixup_Hexagon_TPREL_11_X;
|
FixupKind = Hexagon::fixup_Hexagon_TPREL_11_X;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -713,7 +713,7 @@ unsigned HexagonMCCodeEmitter::getExprOpValue(const MCInst &MI,
|
|||||||
case 6:
|
case 6:
|
||||||
if (*Extended) {
|
if (*Extended) {
|
||||||
switch (kind) {
|
switch (kind) {
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL:
|
case MCSymbolRefExpr::VK_DTPREL:
|
||||||
FixupKind = Hexagon::fixup_Hexagon_DTPREL_16_X;
|
FixupKind = Hexagon::fixup_Hexagon_DTPREL_16_X;
|
||||||
break;
|
break;
|
||||||
// This is part of an extender, GOT_11 is a
|
// This is part of an extender, GOT_11 is a
|
||||||
@ -727,7 +727,7 @@ unsigned HexagonMCCodeEmitter::getExprOpValue(const MCInst &MI,
|
|||||||
case MCSymbolRefExpr::VK_Hexagon_PCREL:
|
case MCSymbolRefExpr::VK_Hexagon_PCREL:
|
||||||
FixupKind = Hexagon::fixup_Hexagon_6_PCREL_X;
|
FixupKind = Hexagon::fixup_Hexagon_6_PCREL_X;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL:
|
case MCSymbolRefExpr::VK_TPREL:
|
||||||
FixupKind = Hexagon::fixup_Hexagon_TPREL_16_X;
|
FixupKind = Hexagon::fixup_Hexagon_TPREL_16_X;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_None:
|
case MCSymbolRefExpr::VK_None:
|
||||||
|
@ -186,7 +186,7 @@ unsigned PPCELFObjectWriter::getRelocType(MCContext &Ctx, const MCValue &Target,
|
|||||||
case MCSymbolRefExpr::VK_PPC_TOC_HA:
|
case MCSymbolRefExpr::VK_PPC_TOC_HA:
|
||||||
Type = ELF::R_PPC64_TOC16_HA;
|
Type = ELF::R_PPC64_TOC16_HA;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL:
|
case MCSymbolRefExpr::VK_TPREL:
|
||||||
Type = ELF::R_PPC_TPREL16;
|
Type = ELF::R_PPC_TPREL16;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL_LO:
|
case MCSymbolRefExpr::VK_PPC_TPREL_LO:
|
||||||
@ -210,7 +210,7 @@ unsigned PPCELFObjectWriter::getRelocType(MCContext &Ctx, const MCValue &Target,
|
|||||||
case MCSymbolRefExpr::VK_PPC_TPREL_HIGHESTA:
|
case MCSymbolRefExpr::VK_PPC_TPREL_HIGHESTA:
|
||||||
Type = ELF::R_PPC64_TPREL16_HIGHESTA;
|
Type = ELF::R_PPC64_TPREL16_HIGHESTA;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL:
|
case MCSymbolRefExpr::VK_DTPREL:
|
||||||
Type = ELF::R_PPC64_DTPREL16;
|
Type = ELF::R_PPC64_DTPREL16;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL_LO:
|
case MCSymbolRefExpr::VK_PPC_DTPREL_LO:
|
||||||
@ -319,13 +319,13 @@ unsigned PPCELFObjectWriter::getRelocType(MCContext &Ctx, const MCValue &Target,
|
|||||||
case MCSymbolRefExpr::VK_PPC_TOC_LO:
|
case MCSymbolRefExpr::VK_PPC_TOC_LO:
|
||||||
Type = ELF::R_PPC64_TOC16_LO_DS;
|
Type = ELF::R_PPC64_TOC16_LO_DS;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL:
|
case MCSymbolRefExpr::VK_TPREL:
|
||||||
Type = ELF::R_PPC64_TPREL16_DS;
|
Type = ELF::R_PPC64_TPREL16_DS;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL_LO:
|
case MCSymbolRefExpr::VK_PPC_TPREL_LO:
|
||||||
Type = ELF::R_PPC64_TPREL16_LO_DS;
|
Type = ELF::R_PPC64_TPREL16_LO_DS;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL:
|
case MCSymbolRefExpr::VK_DTPREL:
|
||||||
Type = ELF::R_PPC64_DTPREL16_DS;
|
Type = ELF::R_PPC64_DTPREL16_DS;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL_LO:
|
case MCSymbolRefExpr::VK_PPC_DTPREL_LO:
|
||||||
@ -380,10 +380,10 @@ unsigned PPCELFObjectWriter::getRelocType(MCContext &Ctx, const MCValue &Target,
|
|||||||
case MCSymbolRefExpr::VK_PPC_DTPMOD:
|
case MCSymbolRefExpr::VK_PPC_DTPMOD:
|
||||||
Type = ELF::R_PPC64_DTPMOD64;
|
Type = ELF::R_PPC64_DTPMOD64;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_PPC_TPREL:
|
case MCSymbolRefExpr::VK_TPREL:
|
||||||
Type = ELF::R_PPC64_TPREL64;
|
Type = ELF::R_PPC64_TPREL64;
|
||||||
break;
|
break;
|
||||||
case MCSymbolRefExpr::VK_PPC_DTPREL:
|
case MCSymbolRefExpr::VK_DTPREL:
|
||||||
Type = ELF::R_PPC64_DTPREL64;
|
Type = ELF::R_PPC64_DTPREL64;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ MCSection *PPC64LinuxTargetObjectFile::SelectSectionForGlobal(
|
|||||||
const MCExpr *PPC64LinuxTargetObjectFile::
|
const MCExpr *PPC64LinuxTargetObjectFile::
|
||||||
getDebugThreadLocalSymbol(const MCSymbol *Sym) const {
|
getDebugThreadLocalSymbol(const MCSymbol *Sym) const {
|
||||||
const MCExpr *Expr =
|
const MCExpr *Expr =
|
||||||
MCSymbolRefExpr::create(Sym, MCSymbolRefExpr::VK_PPC_DTPREL, getContext());
|
MCSymbolRefExpr::create(Sym, MCSymbolRefExpr::VK_DTPREL, getContext());
|
||||||
return MCBinaryExpr::createAdd(Expr,
|
return MCBinaryExpr::createAdd(Expr,
|
||||||
MCConstantExpr::create(0x8000, getContext()),
|
MCConstantExpr::create(0x8000, getContext()),
|
||||||
getContext());
|
getContext());
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
; check that the expected TLS address description is the first thing in the debug_addr section
|
; check that the expected TLS address description is the first thing in the debug_addr section
|
||||||
; CHECK: debug_addr
|
; CHECK: debug_addr
|
||||||
; CHECK-NEXT: .Laddr_sec:
|
; CHECK-NEXT: .Laddr_sec:
|
||||||
; CHECK-NEXT: .quad tls@dtprel+32768
|
; CHECK-NEXT: .quad tls@DTPREL+32768
|
||||||
|
|
||||||
@tls = thread_local global i32 0, align 4
|
@tls = thread_local global i32 0, align 4
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
; DW_OP_const8u
|
; DW_OP_const8u
|
||||||
; CHECK: .byte 14
|
; CHECK: .byte 14
|
||||||
; The debug relocation of the address of the tls variable
|
; The debug relocation of the address of the tls variable
|
||||||
; CHECK: .quad tls@dtprel+32768
|
; CHECK: .quad tls@DTPREL+32768
|
||||||
; DW_OP_GNU_push_tls_address
|
; DW_OP_GNU_push_tls_address
|
||||||
; CHECK: .byte 224
|
; CHECK: .byte 224
|
||||||
|
|
||||||
|
@ -338,10 +338,10 @@ base:
|
|||||||
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_TPREL16_LO target 0x0
|
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_TPREL16_LO target 0x0
|
||||||
addi 3, 3, target@tprel@l
|
addi 3, 3, target@tprel@l
|
||||||
|
|
||||||
# CHECK-BE: addi 3, 3, target@tprel # encoding: [0x38,0x63,A,A]
|
# CHECK-BE: addi 3, 3, target@TPREL # encoding: [0x38,0x63,A,A]
|
||||||
# CHECK-LE: addi 3, 3, target@tprel # encoding: [A,A,0x63,0x38]
|
# CHECK-LE: addi 3, 3, target@TPREL # encoding: [A,A,0x63,0x38]
|
||||||
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@tprel, kind: fixup_ppc_half16
|
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@TPREL, kind: fixup_ppc_half16
|
||||||
# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@tprel, kind: fixup_ppc_half16
|
# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@TPREL, kind: fixup_ppc_half16
|
||||||
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_TPREL16 target 0x0
|
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_TPREL16 target 0x0
|
||||||
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_TPREL16 target 0x0
|
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_TPREL16 target 0x0
|
||||||
addi 3, 3, target@tprel
|
addi 3, 3, target@tprel
|
||||||
@ -394,10 +394,10 @@ base:
|
|||||||
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_TPREL16_LO_DS target 0x0
|
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_TPREL16_LO_DS target 0x0
|
||||||
ld 1, target@tprel@l(3)
|
ld 1, target@tprel@l(3)
|
||||||
|
|
||||||
# CHECK-BE: ld 1, target@tprel(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
|
# CHECK-BE: ld 1, target@TPREL(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
|
||||||
# CHECK-LE: ld 1, target@tprel(3) # encoding: [0bAAAAAA00,A,0x23,0xe8]
|
# CHECK-LE: ld 1, target@TPREL(3) # encoding: [0bAAAAAA00,A,0x23,0xe8]
|
||||||
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@tprel, kind: fixup_ppc_half16ds
|
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@TPREL, kind: fixup_ppc_half16ds
|
||||||
# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@tprel, kind: fixup_ppc_half16ds
|
# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@TPREL, kind: fixup_ppc_half16ds
|
||||||
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_TPREL16_DS target 0x0
|
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_TPREL16_DS target 0x0
|
||||||
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_TPREL16_DS target 0x0
|
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_TPREL16_DS target 0x0
|
||||||
ld 1, target@tprel(3)
|
ld 1, target@tprel(3)
|
||||||
@ -418,10 +418,10 @@ base:
|
|||||||
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_DTPREL16_LO target 0x0
|
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_DTPREL16_LO target 0x0
|
||||||
addi 3, 3, target@dtprel@l
|
addi 3, 3, target@dtprel@l
|
||||||
|
|
||||||
# CHECK-BE: addi 3, 3, target@dtprel # encoding: [0x38,0x63,A,A]
|
# CHECK-BE: addi 3, 3, target@DTPREL # encoding: [0x38,0x63,A,A]
|
||||||
# CHECK-LE: addi 3, 3, target@dtprel # encoding: [A,A,0x63,0x38]
|
# CHECK-LE: addi 3, 3, target@DTPREL # encoding: [A,A,0x63,0x38]
|
||||||
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@dtprel, kind: fixup_ppc_half16
|
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@DTPREL, kind: fixup_ppc_half16
|
||||||
# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@dtprel, kind: fixup_ppc_half16
|
# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@DTPREL, kind: fixup_ppc_half16
|
||||||
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_DTPREL16 target 0x0
|
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_DTPREL16 target 0x0
|
||||||
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_DTPREL16 target 0x0
|
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_DTPREL16 target 0x0
|
||||||
addi 3, 3, target@dtprel
|
addi 3, 3, target@dtprel
|
||||||
@ -474,10 +474,10 @@ base:
|
|||||||
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_DTPREL16_LO_DS target 0x0
|
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_DTPREL16_LO_DS target 0x0
|
||||||
ld 1, target@dtprel@l(3)
|
ld 1, target@dtprel@l(3)
|
||||||
|
|
||||||
# CHECK-BE: ld 1, target@dtprel(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
|
# CHECK-BE: ld 1, target@DTPREL(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
|
||||||
# CHECK-LE: ld 1, target@dtprel(3) # encoding: [0bAAAAAA00,A,0x23,0xe8]
|
# CHECK-LE: ld 1, target@DTPREL(3) # encoding: [0bAAAAAA00,A,0x23,0xe8]
|
||||||
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@dtprel, kind: fixup_ppc_half16ds
|
# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@DTPREL, kind: fixup_ppc_half16ds
|
||||||
# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@dtprel, kind: fixup_ppc_half16ds
|
# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@DTPREL, kind: fixup_ppc_half16ds
|
||||||
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_DTPREL16_DS target 0x0
|
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_DTPREL16_DS target 0x0
|
||||||
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_DTPREL16_DS target 0x0
|
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_DTPREL16_DS target 0x0
|
||||||
ld 1, target@dtprel(3)
|
ld 1, target@dtprel(3)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user