[llvm] b839632 - PowerPC: Rename PPCMCExpr::VK_ to PPC::S_
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sun Jun 15 13:17:27 PDT 2025
Author: Fangrui Song
Date: 2025-06-15T13:17:22-07:00
New Revision: b839632bf44f56e6f17777857f4b23d4eccb6f33
URL: https://github.com/llvm/llvm-project/commit/b839632bf44f56e6f17777857f4b23d4eccb6f33
DIFF: https://github.com/llvm/llvm-project/commit/b839632bf44f56e6f17777857f4b23d4eccb6f33.diff
LOG: PowerPC: Rename PPCMCExpr::VK_ to PPC::S_
Prepare for removing PPCMCExpr. Adopt the newer naming convention with
AMDGPU/WebAssembly/VE/M68k.
Added:
Modified:
llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h
llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.h
llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp
llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
llvm/lib/Target/PowerPC/PPCTargetObjectFile.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp b/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
index 9d3d04e6b8add..7e79d85d60173 100644
--- a/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
+++ b/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
@@ -745,8 +745,8 @@ struct PPCOperand : public MCParsedAsmOperand {
return CreateImm(CE->getValue(), S, E, IsPPC64);
if (const MCSymbolRefExpr *SRE = dyn_cast<MCSymbolRefExpr>(Val))
- if (getSpecifier(SRE) == PPCMCExpr::VK_TLS ||
- getSpecifier(SRE) == PPCMCExpr::VK_TLS_PCREL)
+ if (getSpecifier(SRE) == PPC::S_TLS ||
+ getSpecifier(SRE) == PPC::S_TLS_PCREL)
return CreateTLSReg(SRE, S, E, IsPPC64);
if (const PPCMCExpr *TE = dyn_cast<PPCMCExpr>(Val)) {
@@ -1378,25 +1378,25 @@ const MCExpr *PPCAsmParser::extractSpecifier(const MCExpr *E,
auto *TE = cast<PPCMCExpr>(E);
Spec = TE->getSpecifier();
(void)extractSpecifier(TE->getSubExpr(), Spec);
- Spec = PPCMCExpr::VK_None;
+ Spec = PPC::S_None;
} break;
case MCExpr::SymbolRef: {
const auto *SRE = cast<MCSymbolRefExpr>(E);
switch (getSpecifier(SRE)) {
- case PPCMCExpr::VK_None:
+ case PPC::S_None:
default:
break;
- case PPCMCExpr::VK_LO:
- case PPCMCExpr::VK_HI:
- case PPCMCExpr::VK_HA:
- case PPCMCExpr::VK_HIGH:
- case PPCMCExpr::VK_HIGHA:
- case PPCMCExpr::VK_HIGHER:
- case PPCMCExpr::VK_HIGHERA:
- case PPCMCExpr::VK_HIGHEST:
- case PPCMCExpr::VK_HIGHESTA:
- if (Spec == PPCMCExpr::VK_None)
+ case PPC::S_LO:
+ case PPC::S_HI:
+ case PPC::S_HA:
+ case PPC::S_HIGH:
+ case PPC::S_HIGHA:
+ case PPC::S_HIGHER:
+ case PPC::S_HIGHERA:
+ case PPC::S_HIGHEST:
+ case PPC::S_HIGHESTA:
+ if (Spec == PPC::S_None)
Spec = getSpecifier(SRE);
else
Error(E->getLoc(), "cannot contain more than one relocation specifier");
@@ -1408,7 +1408,7 @@ const MCExpr *PPCAsmParser::extractSpecifier(const MCExpr *E,
case MCExpr::Unary: {
const MCUnaryExpr *UE = cast<MCUnaryExpr>(E);
const MCExpr *Sub = extractSpecifier(UE->getSubExpr(), Spec);
- if (Spec != PPCMCExpr::VK_None)
+ if (Spec != PPC::S_None)
return MCUnaryExpr::create(UE->getOpcode(), Sub, Context);
break;
}
@@ -1417,7 +1417,7 @@ const MCExpr *PPCAsmParser::extractSpecifier(const MCExpr *E,
const MCBinaryExpr *BE = cast<MCBinaryExpr>(E);
const MCExpr *LHS = extractSpecifier(BE->getLHS(), Spec);
const MCExpr *RHS = extractSpecifier(BE->getRHS(), Spec);
- if (Spec != PPCMCExpr::VK_None)
+ if (Spec != PPC::S_None)
return MCBinaryExpr::create(BE->getOpcode(), LHS, RHS, Context);
break;
}
@@ -1436,9 +1436,9 @@ bool PPCAsmParser::parseExpression(const MCExpr *&EVal) {
if (getParser().parseExpression(EVal))
return true;
- uint16_t Spec = PPCMCExpr::VK_None;
+ uint16_t Spec = PPC::S_None;
const MCExpr *E = extractSpecifier(EVal, Spec);
- if (Spec != PPCMCExpr::VK_None)
+ if (Spec != PPC::S_None)
EVal = PPCMCExpr::create(Spec, E, getParser().getContext());
return false;
@@ -1512,9 +1512,9 @@ bool PPCAsmParser::parseOperand(OperandVector &Operands) {
if (!(parseOptionalToken(AsmToken::Identifier) &&
Tok.getString().compare_insensitive("plt") == 0))
return Error(Tok.getLoc(), "expected 'plt'");
- EVal = MCSymbolRefExpr::create(
- getContext().getOrCreateSymbol(TlsGetAddr),
- MCSymbolRefExpr::VariantKind(PPCMCExpr::VK_PLT), getContext());
+ EVal = MCSymbolRefExpr::create(getContext().getOrCreateSymbol(TlsGetAddr),
+ MCSymbolRefExpr::VariantKind(PPC::S_PLT),
+ getContext());
if (parseOptionalToken(AsmToken::Plus)) {
const MCExpr *Addend = nullptr;
SMLoc EndLoc;
@@ -1826,15 +1826,15 @@ const MCExpr *PPCAsmParser::applySpecifier(const MCExpr *E, uint32_t Spec,
MCContext &Ctx) {
if (isa<MCConstantExpr>(E)) {
switch (PPCMCExpr::Specifier(Spec)) {
- case PPCMCExpr::VK_LO:
- case PPCMCExpr::VK_HI:
- case PPCMCExpr::VK_HA:
- case PPCMCExpr::VK_HIGH:
- case PPCMCExpr::VK_HIGHA:
- case PPCMCExpr::VK_HIGHER:
- case PPCMCExpr::VK_HIGHERA:
- case PPCMCExpr::VK_HIGHEST:
- case PPCMCExpr::VK_HIGHESTA:
+ case PPC::S_LO:
+ case PPC::S_HI:
+ case PPC::S_HA:
+ case PPC::S_HIGH:
+ case PPC::S_HIGHA:
+ case PPC::S_HIGHER:
+ case PPC::S_HIGHERA:
+ case PPC::S_HIGHEST:
+ case PPC::S_HIGHESTA:
break;
default:
return nullptr;
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
index 84cd122488428..d4b86d5e2811d 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
@@ -140,7 +140,7 @@ class PPCAsmBackend : public MCAsmBackend {
// In PPC64 ELFv1, .quad .TOC. at tocbase in the .opd section is expected to
// reference the null symbol.
auto Target = TargetVal;
- if (Target.getSpecifier() == PPCMCExpr::VK_TOCBASE)
+ if (Target.getSpecifier() == PPC::S_TOCBASE)
Target.setAddSym(nullptr);
return MCAsmBackend::addReloc(F, Fixup, Target, FixedValue, IsResolved);
}
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
index 096c019f8556e..8e885c3d86a0e 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
@@ -43,49 +43,49 @@ unsigned PPCELFObjectWriter::getRelocType(const MCFixup &Fixup,
SMLoc Loc = Fixup.getValue()->getLoc();
auto Spec = static_cast<PPCMCExpr::Specifier>(Target.getSpecifier());
switch (Spec) {
- case PPCMCExpr::VK_DTPMOD:
- case PPCMCExpr::VK_DTPREL:
- case PPCMCExpr::VK_DTPREL_HA:
- case PPCMCExpr::VK_DTPREL_HI:
- case PPCMCExpr::VK_DTPREL_HIGH:
- case PPCMCExpr::VK_DTPREL_HIGHA:
- case PPCMCExpr::VK_DTPREL_HIGHER:
- case PPCMCExpr::VK_DTPREL_HIGHERA:
- case PPCMCExpr::VK_DTPREL_HIGHEST:
- case PPCMCExpr::VK_DTPREL_HIGHESTA:
- case PPCMCExpr::VK_DTPREL_LO:
- case PPCMCExpr::VK_GOT_DTPREL:
- case PPCMCExpr::VK_GOT_DTPREL_HA:
- case PPCMCExpr::VK_GOT_DTPREL_HI:
- case PPCMCExpr::VK_GOT_DTPREL_LO:
- case PPCMCExpr::VK_GOT_TLSGD:
- case PPCMCExpr::VK_GOT_TLSGD_HA:
- case PPCMCExpr::VK_GOT_TLSGD_HI:
- case PPCMCExpr::VK_GOT_TLSGD_LO:
- case PPCMCExpr::VK_GOT_TLSGD_PCREL:
- case PPCMCExpr::VK_GOT_TLSLD:
- case PPCMCExpr::VK_GOT_TLSLD_HA:
- case PPCMCExpr::VK_GOT_TLSLD_HI:
- case PPCMCExpr::VK_GOT_TLSLD_LO:
- case PPCMCExpr::VK_GOT_TPREL:
- case PPCMCExpr::VK_GOT_TPREL_HA:
- case PPCMCExpr::VK_GOT_TPREL_HI:
- case PPCMCExpr::VK_GOT_TPREL_LO:
- case PPCMCExpr::VK_GOT_TPREL_PCREL:
- case PPCMCExpr::VK_TLS:
- case PPCMCExpr::VK_TLSGD:
- case PPCMCExpr::VK_TLSLD:
- case PPCMCExpr::VK_TLS_PCREL:
- case PPCMCExpr::VK_TPREL:
- case PPCMCExpr::VK_TPREL_HA:
- case PPCMCExpr::VK_TPREL_HI:
- case PPCMCExpr::VK_TPREL_HIGH:
- case PPCMCExpr::VK_TPREL_HIGHA:
- case PPCMCExpr::VK_TPREL_HIGHER:
- case PPCMCExpr::VK_TPREL_HIGHERA:
- case PPCMCExpr::VK_TPREL_HIGHEST:
- case PPCMCExpr::VK_TPREL_HIGHESTA:
- case PPCMCExpr::VK_TPREL_LO:
+ case PPC::S_DTPMOD:
+ case PPC::S_DTPREL:
+ case PPC::S_DTPREL_HA:
+ case PPC::S_DTPREL_HI:
+ case PPC::S_DTPREL_HIGH:
+ case PPC::S_DTPREL_HIGHA:
+ case PPC::S_DTPREL_HIGHER:
+ case PPC::S_DTPREL_HIGHERA:
+ case PPC::S_DTPREL_HIGHEST:
+ case PPC::S_DTPREL_HIGHESTA:
+ case PPC::S_DTPREL_LO:
+ case PPC::S_GOT_DTPREL:
+ case PPC::S_GOT_DTPREL_HA:
+ case PPC::S_GOT_DTPREL_HI:
+ case PPC::S_GOT_DTPREL_LO:
+ case PPC::S_GOT_TLSGD:
+ case PPC::S_GOT_TLSGD_HA:
+ case PPC::S_GOT_TLSGD_HI:
+ case PPC::S_GOT_TLSGD_LO:
+ case PPC::S_GOT_TLSGD_PCREL:
+ case PPC::S_GOT_TLSLD:
+ case PPC::S_GOT_TLSLD_HA:
+ case PPC::S_GOT_TLSLD_HI:
+ case PPC::S_GOT_TLSLD_LO:
+ case PPC::S_GOT_TPREL:
+ case PPC::S_GOT_TPREL_HA:
+ case PPC::S_GOT_TPREL_HI:
+ case PPC::S_GOT_TPREL_LO:
+ case PPC::S_GOT_TPREL_PCREL:
+ case PPC::S_TLS:
+ case PPC::S_TLSGD:
+ case PPC::S_TLSLD:
+ case PPC::S_TLS_PCREL:
+ case PPC::S_TPREL:
+ case PPC::S_TPREL_HA:
+ case PPC::S_TPREL_HI:
+ case PPC::S_TPREL_HIGH:
+ case PPC::S_TPREL_HIGHA:
+ case PPC::S_TPREL_HIGHER:
+ case PPC::S_TPREL_HIGHERA:
+ case PPC::S_TPREL_HIGHEST:
+ case PPC::S_TPREL_HIGHESTA:
+ case PPC::S_TPREL_LO:
if (auto *SA = Target.getAddSym())
cast<MCSymbolELF>(SA)->setType(ELF::STT_TLS);
break;
@@ -106,16 +106,16 @@ unsigned PPCELFObjectWriter::getRelocType(const MCFixup &Fixup,
default:
reportError(Loc, "unsupported relocation type");
break;
- case PPCMCExpr::VK_None:
+ case PPC::S_None:
Type = ELF::R_PPC_REL24;
break;
- case PPCMCExpr::VK_PLT:
+ case PPC::S_PLT:
Type = ELF::R_PPC_PLTREL24;
break;
- case PPCMCExpr::VK_LOCAL:
+ case PPC::S_LOCAL:
Type = ELF::R_PPC_LOCAL24PC;
break;
- case PPCMCExpr::VK_NOTOC:
+ case PPC::S_NOTOC:
Type = ELF::R_PPC64_REL24_NOTOC;
break;
}
@@ -129,13 +129,13 @@ unsigned PPCELFObjectWriter::getRelocType(const MCFixup &Fixup,
default:
reportError(Loc, "unsupported relocation type");
return ELF::R_PPC_NONE;
- case PPCMCExpr::VK_None:
+ case PPC::S_None:
return ELF::R_PPC_REL16;
- case PPCMCExpr::VK_LO:
+ case PPC::S_LO:
return ELF::R_PPC_REL16_LO;
- case PPCMCExpr::VK_HI:
+ case PPC::S_HI:
return ELF::R_PPC_REL16_HI;
- case PPCMCExpr::VK_HA:
+ case PPC::S_HA:
return ELF::R_PPC_REL16_HA;
}
break;
@@ -148,19 +148,19 @@ unsigned PPCELFObjectWriter::getRelocType(const MCFixup &Fixup,
default:
reportError(Loc, "unsupported relocation type");
break;
- case PPCMCExpr::VK_PCREL:
+ case PPC::S_PCREL:
Type = ELF::R_PPC64_PCREL34;
break;
- case PPCMCExpr::VK_GOT_PCREL:
+ case PPC::S_GOT_PCREL:
Type = ELF::R_PPC64_GOT_PCREL34;
break;
- case PPCMCExpr::VK_GOT_TLSGD_PCREL:
+ case PPC::S_GOT_TLSGD_PCREL:
Type = ELF::R_PPC64_GOT_TLSGD_PCREL34;
break;
- case PPCMCExpr::VK_GOT_TLSLD_PCREL:
+ case PPC::S_GOT_TLSLD_PCREL:
Type = ELF::R_PPC64_GOT_TLSLD_PCREL34;
break;
- case PPCMCExpr::VK_GOT_TPREL_PCREL:
+ case PPC::S_GOT_TPREL_PCREL:
Type = ELF::R_PPC64_GOT_TPREL_PCREL34;
break;
}
@@ -186,172 +186,172 @@ unsigned PPCELFObjectWriter::getRelocType(const MCFixup &Fixup,
default:
reportError(Loc, "unsupported relocation type");
break;
- case PPCMCExpr::VK_LO:
+ case PPC::S_LO:
return ELF::R_PPC_ADDR16_LO;
- case PPCMCExpr::VK_HI:
+ case PPC::S_HI:
return ELF::R_PPC_ADDR16_HI;
- case PPCMCExpr::VK_HA:
+ case PPC::S_HA:
return ELF::R_PPC_ADDR16_HA;
- case PPCMCExpr::VK_HIGH:
+ case PPC::S_HIGH:
return ELF::R_PPC64_ADDR16_HIGH;
- case PPCMCExpr::VK_HIGHA:
+ case PPC::S_HIGHA:
return ELF::R_PPC64_ADDR16_HIGHA;
- case PPCMCExpr::VK_HIGHER:
+ case PPC::S_HIGHER:
return ELF::R_PPC64_ADDR16_HIGHER;
- case PPCMCExpr::VK_HIGHERA:
+ case PPC::S_HIGHERA:
return ELF::R_PPC64_ADDR16_HIGHERA;
- case PPCMCExpr::VK_HIGHEST:
+ case PPC::S_HIGHEST:
return ELF::R_PPC64_ADDR16_HIGHEST;
- case PPCMCExpr::VK_HIGHESTA:
+ case PPC::S_HIGHESTA:
return ELF::R_PPC64_ADDR16_HIGHESTA;
- case PPCMCExpr::VK_None:
+ case PPC::S_None:
Type = ELF::R_PPC_ADDR16;
break;
- case PPCMCExpr::VK_GOT:
+ case PPC::S_GOT:
Type = ELF::R_PPC_GOT16;
break;
- case PPCMCExpr::VK_GOT_LO:
+ case PPC::S_GOT_LO:
Type = ELF::R_PPC_GOT16_LO;
break;
- case PPCMCExpr::VK_GOT_HI:
+ case PPC::S_GOT_HI:
Type = ELF::R_PPC_GOT16_HI;
break;
- case PPCMCExpr::VK_GOT_HA:
+ case PPC::S_GOT_HA:
Type = ELF::R_PPC_GOT16_HA;
break;
- case PPCMCExpr::VK_TOC:
+ case PPC::S_TOC:
Type = ELF::R_PPC64_TOC16;
break;
- case PPCMCExpr::VK_TOC_LO:
+ case PPC::S_TOC_LO:
Type = ELF::R_PPC64_TOC16_LO;
break;
- case PPCMCExpr::VK_TOC_HI:
+ case PPC::S_TOC_HI:
Type = ELF::R_PPC64_TOC16_HI;
break;
- case PPCMCExpr::VK_TOC_HA:
+ case PPC::S_TOC_HA:
Type = ELF::R_PPC64_TOC16_HA;
break;
- case PPCMCExpr::VK_TPREL:
+ case PPC::S_TPREL:
Type = ELF::R_PPC_TPREL16;
break;
- case PPCMCExpr::VK_TPREL_LO:
+ case PPC::S_TPREL_LO:
Type = ELF::R_PPC_TPREL16_LO;
break;
- case PPCMCExpr::VK_TPREL_HI:
+ case PPC::S_TPREL_HI:
Type = ELF::R_PPC_TPREL16_HI;
break;
- case PPCMCExpr::VK_TPREL_HA:
+ case PPC::S_TPREL_HA:
Type = ELF::R_PPC_TPREL16_HA;
break;
- case PPCMCExpr::VK_TPREL_HIGH:
+ case PPC::S_TPREL_HIGH:
Type = ELF::R_PPC64_TPREL16_HIGH;
break;
- case PPCMCExpr::VK_TPREL_HIGHA:
+ case PPC::S_TPREL_HIGHA:
Type = ELF::R_PPC64_TPREL16_HIGHA;
break;
- case PPCMCExpr::VK_TPREL_HIGHER:
+ case PPC::S_TPREL_HIGHER:
Type = ELF::R_PPC64_TPREL16_HIGHER;
break;
- case PPCMCExpr::VK_TPREL_HIGHERA:
+ case PPC::S_TPREL_HIGHERA:
Type = ELF::R_PPC64_TPREL16_HIGHERA;
break;
- case PPCMCExpr::VK_TPREL_HIGHEST:
+ case PPC::S_TPREL_HIGHEST:
Type = ELF::R_PPC64_TPREL16_HIGHEST;
break;
- case PPCMCExpr::VK_TPREL_HIGHESTA:
+ case PPC::S_TPREL_HIGHESTA:
Type = ELF::R_PPC64_TPREL16_HIGHESTA;
break;
- case PPCMCExpr::VK_DTPREL:
+ case PPC::S_DTPREL:
Type = ELF::R_PPC64_DTPREL16;
break;
- case PPCMCExpr::VK_DTPREL_LO:
+ case PPC::S_DTPREL_LO:
Type = ELF::R_PPC64_DTPREL16_LO;
break;
- case PPCMCExpr::VK_DTPREL_HI:
+ case PPC::S_DTPREL_HI:
Type = ELF::R_PPC64_DTPREL16_HI;
break;
- case PPCMCExpr::VK_DTPREL_HA:
+ case PPC::S_DTPREL_HA:
Type = ELF::R_PPC64_DTPREL16_HA;
break;
- case PPCMCExpr::VK_DTPREL_HIGH:
+ case PPC::S_DTPREL_HIGH:
Type = ELF::R_PPC64_DTPREL16_HIGH;
break;
- case PPCMCExpr::VK_DTPREL_HIGHA:
+ case PPC::S_DTPREL_HIGHA:
Type = ELF::R_PPC64_DTPREL16_HIGHA;
break;
- case PPCMCExpr::VK_DTPREL_HIGHER:
+ case PPC::S_DTPREL_HIGHER:
Type = ELF::R_PPC64_DTPREL16_HIGHER;
break;
- case PPCMCExpr::VK_DTPREL_HIGHERA:
+ case PPC::S_DTPREL_HIGHERA:
Type = ELF::R_PPC64_DTPREL16_HIGHERA;
break;
- case PPCMCExpr::VK_DTPREL_HIGHEST:
+ case PPC::S_DTPREL_HIGHEST:
Type = ELF::R_PPC64_DTPREL16_HIGHEST;
break;
- case PPCMCExpr::VK_DTPREL_HIGHESTA:
+ case PPC::S_DTPREL_HIGHESTA:
Type = ELF::R_PPC64_DTPREL16_HIGHESTA;
break;
- case PPCMCExpr::VK_GOT_TLSGD:
+ case PPC::S_GOT_TLSGD:
if (is64Bit())
Type = ELF::R_PPC64_GOT_TLSGD16;
else
Type = ELF::R_PPC_GOT_TLSGD16;
break;
- case PPCMCExpr::VK_GOT_TLSGD_LO:
+ case PPC::S_GOT_TLSGD_LO:
Type = ELF::R_PPC64_GOT_TLSGD16_LO;
break;
- case PPCMCExpr::VK_GOT_TLSGD_HI:
+ case PPC::S_GOT_TLSGD_HI:
Type = ELF::R_PPC64_GOT_TLSGD16_HI;
break;
- case PPCMCExpr::VK_GOT_TLSGD_HA:
+ case PPC::S_GOT_TLSGD_HA:
Type = ELF::R_PPC64_GOT_TLSGD16_HA;
break;
- case PPCMCExpr::VK_GOT_TLSLD:
+ case PPC::S_GOT_TLSLD:
if (is64Bit())
Type = ELF::R_PPC64_GOT_TLSLD16;
else
Type = ELF::R_PPC_GOT_TLSLD16;
break;
- case PPCMCExpr::VK_GOT_TLSLD_LO:
+ case PPC::S_GOT_TLSLD_LO:
Type = ELF::R_PPC64_GOT_TLSLD16_LO;
break;
- case PPCMCExpr::VK_GOT_TLSLD_HI:
+ case PPC::S_GOT_TLSLD_HI:
Type = ELF::R_PPC64_GOT_TLSLD16_HI;
break;
- case PPCMCExpr::VK_GOT_TLSLD_HA:
+ case PPC::S_GOT_TLSLD_HA:
Type = ELF::R_PPC64_GOT_TLSLD16_HA;
break;
- case PPCMCExpr::VK_GOT_TPREL:
+ case PPC::S_GOT_TPREL:
/* We don't have R_PPC64_GOT_TPREL16, but since GOT offsets
are always 4-aligned, we can use R_PPC64_GOT_TPREL16_DS. */
Type = ELF::R_PPC64_GOT_TPREL16_DS;
break;
- case PPCMCExpr::VK_GOT_TPREL_LO:
+ case PPC::S_GOT_TPREL_LO:
/* We don't have R_PPC64_GOT_TPREL16_LO, but since GOT offsets
are always 4-aligned, we can use R_PPC64_GOT_TPREL16_LO_DS. */
Type = ELF::R_PPC64_GOT_TPREL16_LO_DS;
break;
- case PPCMCExpr::VK_GOT_TPREL_HI:
+ case PPC::S_GOT_TPREL_HI:
Type = ELF::R_PPC64_GOT_TPREL16_HI;
break;
- case PPCMCExpr::VK_GOT_DTPREL:
+ case PPC::S_GOT_DTPREL:
/* We don't have R_PPC64_GOT_DTPREL16, but since GOT offsets
are always 4-aligned, we can use R_PPC64_GOT_DTPREL16_DS. */
Type = ELF::R_PPC64_GOT_DTPREL16_DS;
break;
- case PPCMCExpr::VK_GOT_DTPREL_LO:
+ case PPC::S_GOT_DTPREL_LO:
/* We don't have R_PPC64_GOT_DTPREL16_LO, but since GOT offsets
are always 4-aligned, we can use R_PPC64_GOT_DTPREL16_LO_DS. */
Type = ELF::R_PPC64_GOT_DTPREL16_LO_DS;
break;
- case PPCMCExpr::VK_GOT_TPREL_HA:
+ case PPC::S_GOT_TPREL_HA:
Type = ELF::R_PPC64_GOT_TPREL16_HA;
break;
- case PPCMCExpr::VK_GOT_DTPREL_HI:
+ case PPC::S_GOT_DTPREL_HI:
Type = ELF::R_PPC64_GOT_DTPREL16_HI;
break;
- case PPCMCExpr::VK_GOT_DTPREL_HA:
+ case PPC::S_GOT_DTPREL_HA:
Type = ELF::R_PPC64_GOT_DTPREL16_HA;
break;
}
@@ -362,45 +362,45 @@ unsigned PPCELFObjectWriter::getRelocType(const MCFixup &Fixup,
default:
reportError(Loc, "unsupported relocation type");
break;
- case PPCMCExpr::VK_LO:
+ case PPC::S_LO:
return ELF::R_PPC64_ADDR16_LO_DS;
- case PPCMCExpr::VK_None:
+ case PPC::S_None:
Type = ELF::R_PPC64_ADDR16_DS;
break;
- case PPCMCExpr::VK_GOT:
+ case PPC::S_GOT:
Type = ELF::R_PPC64_GOT16_DS;
break;
- case PPCMCExpr::VK_GOT_LO:
+ case PPC::S_GOT_LO:
Type = ELF::R_PPC64_GOT16_LO_DS;
break;
- case PPCMCExpr::VK_TOC:
+ case PPC::S_TOC:
Type = ELF::R_PPC64_TOC16_DS;
break;
- case PPCMCExpr::VK_TOC_LO:
+ case PPC::S_TOC_LO:
Type = ELF::R_PPC64_TOC16_LO_DS;
break;
- case PPCMCExpr::VK_TPREL:
+ case PPC::S_TPREL:
Type = ELF::R_PPC64_TPREL16_DS;
break;
- case PPCMCExpr::VK_TPREL_LO:
+ case PPC::S_TPREL_LO:
Type = ELF::R_PPC64_TPREL16_LO_DS;
break;
- case PPCMCExpr::VK_DTPREL:
+ case PPC::S_DTPREL:
Type = ELF::R_PPC64_DTPREL16_DS;
break;
- case PPCMCExpr::VK_DTPREL_LO:
+ case PPC::S_DTPREL_LO:
Type = ELF::R_PPC64_DTPREL16_LO_DS;
break;
- case PPCMCExpr::VK_GOT_TPREL:
+ case PPC::S_GOT_TPREL:
Type = ELF::R_PPC64_GOT_TPREL16_DS;
break;
- case PPCMCExpr::VK_GOT_TPREL_LO:
+ case PPC::S_GOT_TPREL_LO:
Type = ELF::R_PPC64_GOT_TPREL16_LO_DS;
break;
- case PPCMCExpr::VK_GOT_DTPREL:
+ case PPC::S_GOT_DTPREL:
Type = ELF::R_PPC64_GOT_DTPREL16_DS;
break;
- case PPCMCExpr::VK_GOT_DTPREL_LO:
+ case PPC::S_GOT_DTPREL_LO:
Type = ELF::R_PPC64_GOT_DTPREL16_LO_DS;
break;
}
@@ -410,25 +410,25 @@ unsigned PPCELFObjectWriter::getRelocType(const MCFixup &Fixup,
default:
reportError(Loc, "unsupported relocation type");
break;
- case PPCMCExpr::VK_TLSGD:
+ case PPC::S_TLSGD:
if (is64Bit())
Type = ELF::R_PPC64_TLSGD;
else
Type = ELF::R_PPC_TLSGD;
break;
- case PPCMCExpr::VK_TLSLD:
+ case PPC::S_TLSLD:
if (is64Bit())
Type = ELF::R_PPC64_TLSLD;
else
Type = ELF::R_PPC_TLSLD;
break;
- case PPCMCExpr::VK_TLS:
+ case PPC::S_TLS:
if (is64Bit())
Type = ELF::R_PPC64_TLS;
else
Type = ELF::R_PPC_TLS;
break;
- case PPCMCExpr::VK_TLS_PCREL:
+ case PPC::S_TLS_PCREL:
Type = ELF::R_PPC64_TLS;
break;
}
@@ -438,10 +438,10 @@ unsigned PPCELFObjectWriter::getRelocType(const MCFixup &Fixup,
default:
reportError(Loc, "unsupported relocation type");
break;
- case PPCMCExpr::VK_DTPREL:
+ case PPC::S_DTPREL:
Type = ELF::R_PPC64_DTPREL34;
break;
- case PPCMCExpr::VK_TPREL:
+ case PPC::S_TPREL:
Type = ELF::R_PPC64_TPREL34;
break;
}
@@ -451,26 +451,26 @@ unsigned PPCELFObjectWriter::getRelocType(const MCFixup &Fixup,
default:
reportError(Loc, "unsupported relocation type");
break;
- case PPCMCExpr::VK_TOCBASE:
+ case PPC::S_TOCBASE:
Type = ELF::R_PPC64_TOC;
break;
- case PPCMCExpr::VK_None:
+ case PPC::S_None:
Type = ELF::R_PPC64_ADDR64;
break;
- case PPCMCExpr::VK_DTPMOD:
+ case PPC::S_DTPMOD:
Type = ELF::R_PPC64_DTPMOD64;
break;
- case PPCMCExpr::VK_TPREL:
+ case PPC::S_TPREL:
Type = ELF::R_PPC64_TPREL64;
break;
- case PPCMCExpr::VK_DTPREL:
+ case PPC::S_DTPREL:
Type = ELF::R_PPC64_DTPREL64;
break;
}
break;
case FK_Data_4:
switch (Spec) {
- case PPCMCExpr::VK_DTPREL:
+ case PPC::S_DTPREL:
Type = ELF::R_PPC_DTPREL32;
break;
default:
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp
index 501ef460b6938..78065541f0d03 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp
@@ -139,7 +139,7 @@ void PPCELFStreamer::emitGOTToPCRelReloc(const MCInst &Inst) {
// Cast the last operand to MCSymbolRefExpr to get the symbol.
const MCExpr *Expr = Operand.getExpr();
const MCSymbolRefExpr *SymExpr = static_cast<const MCSymbolRefExpr *>(Expr);
- assert(getSpecifier(SymExpr) == PPCMCExpr::VK_PCREL_OPT &&
+ assert(getSpecifier(SymExpr) == PPC::S_PCREL_OPT &&
"Expecting a symbol of type VK_PCREL_OPT");
MCSymbol *LabelSym =
getContext().getOrCreateSymbol(SymExpr->getSymbol().getName());
@@ -174,7 +174,7 @@ void PPCELFStreamer::emitGOTToPCRelLabel(const MCInst &Inst) {
// Cast the last operand to MCSymbolRefExpr to get the symbol.
const MCExpr *Expr = Operand.getExpr();
const MCSymbolRefExpr *SymExpr = static_cast<const MCSymbolRefExpr *>(Expr);
- assert(getSpecifier(SymExpr) == PPCMCExpr::VK_PCREL_OPT &&
+ assert(getSpecifier(SymExpr) == PPC::S_PCREL_OPT &&
"Expecting a symbol of type VK_PCREL_OPT");
MCSymbol *LabelSym =
getContext().getOrCreateSymbol(SymExpr->getSymbol().getName());
@@ -190,7 +190,7 @@ void PPCELFStreamer::emitGOTToPCRelLabel(const MCInst &Inst) {
// The above is a pair of such instructions and this function will not return
// std::nullopt for either one of them. In both cases we are looking for the
// last operand <MCOperand Expr:(.Lpcrel@<<invalid>>)> which needs to be an
-// MCExpr and has the flag PPCMCExpr::VK_PCREL_OPT. After that we just
+// MCExpr and has the flag PPC::S_PCREL_OPT. After that we just
// look at the opcode and in the case of PLDpc we will return true. For the load
// (or store) this function will return false indicating it has found the second
// instruciton in the pair.
@@ -212,7 +212,7 @@ std::optional<bool> llvm::isPartOfGOTToPCRelPair(const MCInst &Inst,
// Check for the variant kind VK_PCREL_OPT in this expression.
const MCExpr *Expr = Operand.getExpr();
const MCSymbolRefExpr *SymExpr = static_cast<const MCSymbolRefExpr *>(Expr);
- if (!SymExpr || getSpecifier(SymExpr) != PPCMCExpr::VK_PCREL_OPT)
+ if (!SymExpr || getSpecifier(SymExpr) != PPC::S_PCREL_OPT)
return std::nullopt;
return (Inst.getOpcode() == PPC::PLDpc);
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp
index 0e1b28af691d5..bd01767f41bd5 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp
@@ -92,7 +92,7 @@ void PPCInstPrinter::printInst(const MCInst *MI, uint64_t Address,
const MCSymbolRefExpr *SymExpr =
static_cast<const MCSymbolRefExpr *>(Expr);
- if (SymExpr && getSpecifier(SymExpr) == PPCMCExpr::VK_PCREL_OPT) {
+ if (SymExpr && getSpecifier(SymExpr) == PPC::S_PCREL_OPT) {
const MCSymbol &Symbol = SymExpr->getSymbol();
if (MI->getOpcode() == PPC::PLDpc) {
printInstruction(MI, Address, STI, O);
@@ -579,13 +579,13 @@ void PPCInstPrinter::printTLSCall(const MCInst *MI, unsigned OpNo,
// because we do not want the assembly to print out the @notoc at the
// end like __tls_get_addr(x at tlsgd)@notoc. Instead we want it to look
// like __tls_get_addr at notoc(x at tlsgd).
- if (getSpecifier(RefExp) == PPCMCExpr::VK_NOTOC)
+ if (getSpecifier(RefExp) == PPC::S_NOTOC)
O << '@' << MAI.getSpecifierName(RefExp->getKind());
O << '(';
printOperand(MI, OpNo + 1, STI, O);
O << ')';
- if (getSpecifier(RefExp) != PPCMCExpr::VK_None &&
- getSpecifier(RefExp) != PPCMCExpr::VK_NOTOC)
+ if (getSpecifier(RefExp) != PPC::S_None &&
+ getSpecifier(RefExp) != PPC::S_NOTOC)
O << '@' << MAI.getSpecifierName(RefExp->getKind());
if (Rhs) {
SmallString<0> Buf;
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
index b5be23c5a96ad..bb1f21d8f0327 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
@@ -20,82 +20,82 @@ using namespace llvm;
void PPCELFMCAsmInfo::anchor() { }
const MCAsmInfo::VariantKindDesc variantKindDescs[] = {
- {PPCMCExpr::VK_DTPREL, "DTPREL"},
- {PPCMCExpr::VK_GOT, "GOT"},
- {PPCMCExpr::VK_GOT_HA, "got at ha"},
- {PPCMCExpr::VK_GOT_HI, "got at h"},
- {PPCMCExpr::VK_GOT_LO, "got at l"},
- {PPCMCExpr::VK_HA, "ha"},
- {PPCMCExpr::VK_HI, "h"},
- {PPCMCExpr::VK_HIGH, "high"},
- {PPCMCExpr::VK_HIGHA, "higha"},
- {PPCMCExpr::VK_HIGHER, "higher"},
- {PPCMCExpr::VK_HIGHERA, "highera"},
- {PPCMCExpr::VK_HIGHEST, "highest"},
- {PPCMCExpr::VK_HIGHESTA, "highesta"},
- {PPCMCExpr::VK_LO, "l"},
- {PPCMCExpr::VK_L, "l"}, // FIXME: share the name with VK_LO
- {PPCMCExpr::VK_PCREL, "PCREL"},
- {PPCMCExpr::VK_PLT, "PLT"},
- {PPCMCExpr::VK_TLSGD, "tlsgd"},
- {PPCMCExpr::VK_TLSLD, "tlsld"},
- {PPCMCExpr::VK_TOC, "toc"},
- {PPCMCExpr::VK_TOCBASE, "tocbase"},
- {PPCMCExpr::VK_TOC_HA, "toc at ha"},
- {PPCMCExpr::VK_TOC_HI, "toc at h"},
- {PPCMCExpr::VK_TOC_LO, "toc at l"},
- {PPCMCExpr::VK_TPREL, "TPREL"},
- {PPCMCExpr::VK_AIX_TLSGD, "gd"},
- {PPCMCExpr::VK_AIX_TLSGDM, "m"},
- {PPCMCExpr::VK_AIX_TLSIE, "ie"},
- {PPCMCExpr::VK_AIX_TLSLD, "ld"},
- {PPCMCExpr::VK_AIX_TLSLE, "le"},
- {PPCMCExpr::VK_AIX_TLSML, "ml"},
- {PPCMCExpr::VK_DTPMOD, "dtpmod"},
- {PPCMCExpr::VK_DTPREL_HA, "dtprel at ha"},
- {PPCMCExpr::VK_DTPREL_HI, "dtprel at h"},
- {PPCMCExpr::VK_DTPREL_HIGH, "dtprel at high"},
- {PPCMCExpr::VK_DTPREL_HIGHA, "dtprel at higha"},
- {PPCMCExpr::VK_DTPREL_HIGHER, "dtprel at higher"},
- {PPCMCExpr::VK_DTPREL_HIGHERA, "dtprel at highera"},
- {PPCMCExpr::VK_DTPREL_HIGHEST, "dtprel at highest"},
- {PPCMCExpr::VK_DTPREL_HIGHESTA, "dtprel at highesta"},
- {PPCMCExpr::VK_DTPREL_LO, "dtprel at l"},
- {PPCMCExpr::VK_GOT_DTPREL, "got at dtprel"},
- {PPCMCExpr::VK_GOT_DTPREL_HA, "got at dtprel@ha"},
- {PPCMCExpr::VK_GOT_DTPREL_HI, "got at dtprel@h"},
- {PPCMCExpr::VK_GOT_DTPREL_LO, "got at dtprel@l"},
- {PPCMCExpr::VK_GOT_PCREL, "got at pcrel"},
- {PPCMCExpr::VK_GOT_TLSGD, "got at tlsgd"},
- {PPCMCExpr::VK_GOT_TLSGD_HA, "got at tlsgd@ha"},
- {PPCMCExpr::VK_GOT_TLSGD_HI, "got at tlsgd@h"},
- {PPCMCExpr::VK_GOT_TLSGD_LO, "got at tlsgd@l"},
- {PPCMCExpr::VK_GOT_TLSGD_PCREL, "got at tlsgd@pcrel"},
- {PPCMCExpr::VK_GOT_TLSLD, "got at tlsld"},
- {PPCMCExpr::VK_GOT_TLSLD_HA, "got at tlsld@ha"},
- {PPCMCExpr::VK_GOT_TLSLD_HI, "got at tlsld@h"},
- {PPCMCExpr::VK_GOT_TLSLD_LO, "got at tlsld@l"},
- {PPCMCExpr::VK_GOT_TLSLD_PCREL, "got at tlsld@pcrel"},
- {PPCMCExpr::VK_GOT_TPREL, "got at tprel"},
- {PPCMCExpr::VK_GOT_TPREL_HA, "got at tprel@ha"},
- {PPCMCExpr::VK_GOT_TPREL_HI, "got at tprel@h"},
- {PPCMCExpr::VK_GOT_TPREL_LO, "got at tprel@l"},
- {PPCMCExpr::VK_GOT_TPREL_PCREL, "got at tprel@pcrel"},
- {PPCMCExpr::VK_LOCAL, "local"},
- {PPCMCExpr::VK_NOTOC, "notoc"},
- {PPCMCExpr::VK_PCREL_OPT, "<<invalid>>"},
- {PPCMCExpr::VK_TLS, "tls"},
- {PPCMCExpr::VK_TLS_PCREL, "tls at pcrel"},
- {PPCMCExpr::VK_TPREL_HA, "tprel at ha"},
- {PPCMCExpr::VK_TPREL_HI, "tprel at h"},
- {PPCMCExpr::VK_TPREL_HIGH, "tprel at high"},
- {PPCMCExpr::VK_TPREL_HIGHA, "tprel at higha"},
- {PPCMCExpr::VK_TPREL_HIGHER, "tprel at higher"},
- {PPCMCExpr::VK_TPREL_HIGHERA, "tprel at highera"},
- {PPCMCExpr::VK_TPREL_HIGHEST, "tprel at highest"},
- {PPCMCExpr::VK_TPREL_HIGHESTA, "tprel at highesta"},
- {PPCMCExpr::VK_TPREL_LO, "tprel at l"},
- {PPCMCExpr::VK_U, "u"},
+ {PPC::S_DTPREL, "DTPREL"},
+ {PPC::S_GOT, "GOT"},
+ {PPC::S_GOT_HA, "got at ha"},
+ {PPC::S_GOT_HI, "got at h"},
+ {PPC::S_GOT_LO, "got at l"},
+ {PPC::S_HA, "ha"},
+ {PPC::S_HI, "h"},
+ {PPC::S_HIGH, "high"},
+ {PPC::S_HIGHA, "higha"},
+ {PPC::S_HIGHER, "higher"},
+ {PPC::S_HIGHERA, "highera"},
+ {PPC::S_HIGHEST, "highest"},
+ {PPC::S_HIGHESTA, "highesta"},
+ {PPC::S_LO, "l"},
+ {PPC::S_L, "l"}, // FIXME: share the name with VK_LO
+ {PPC::S_PCREL, "PCREL"},
+ {PPC::S_PLT, "PLT"},
+ {PPC::S_TLSGD, "tlsgd"},
+ {PPC::S_TLSLD, "tlsld"},
+ {PPC::S_TOC, "toc"},
+ {PPC::S_TOCBASE, "tocbase"},
+ {PPC::S_TOC_HA, "toc at ha"},
+ {PPC::S_TOC_HI, "toc at h"},
+ {PPC::S_TOC_LO, "toc at l"},
+ {PPC::S_TPREL, "TPREL"},
+ {PPC::S_AIX_TLSGD, "gd"},
+ {PPC::S_AIX_TLSGDM, "m"},
+ {PPC::S_AIX_TLSIE, "ie"},
+ {PPC::S_AIX_TLSLD, "ld"},
+ {PPC::S_AIX_TLSLE, "le"},
+ {PPC::S_AIX_TLSML, "ml"},
+ {PPC::S_DTPMOD, "dtpmod"},
+ {PPC::S_DTPREL_HA, "dtprel at ha"},
+ {PPC::S_DTPREL_HI, "dtprel at h"},
+ {PPC::S_DTPREL_HIGH, "dtprel at high"},
+ {PPC::S_DTPREL_HIGHA, "dtprel at higha"},
+ {PPC::S_DTPREL_HIGHER, "dtprel at higher"},
+ {PPC::S_DTPREL_HIGHERA, "dtprel at highera"},
+ {PPC::S_DTPREL_HIGHEST, "dtprel at highest"},
+ {PPC::S_DTPREL_HIGHESTA, "dtprel at highesta"},
+ {PPC::S_DTPREL_LO, "dtprel at l"},
+ {PPC::S_GOT_DTPREL, "got at dtprel"},
+ {PPC::S_GOT_DTPREL_HA, "got at dtprel@ha"},
+ {PPC::S_GOT_DTPREL_HI, "got at dtprel@h"},
+ {PPC::S_GOT_DTPREL_LO, "got at dtprel@l"},
+ {PPC::S_GOT_PCREL, "got at pcrel"},
+ {PPC::S_GOT_TLSGD, "got at tlsgd"},
+ {PPC::S_GOT_TLSGD_HA, "got at tlsgd@ha"},
+ {PPC::S_GOT_TLSGD_HI, "got at tlsgd@h"},
+ {PPC::S_GOT_TLSGD_LO, "got at tlsgd@l"},
+ {PPC::S_GOT_TLSGD_PCREL, "got at tlsgd@pcrel"},
+ {PPC::S_GOT_TLSLD, "got at tlsld"},
+ {PPC::S_GOT_TLSLD_HA, "got at tlsld@ha"},
+ {PPC::S_GOT_TLSLD_HI, "got at tlsld@h"},
+ {PPC::S_GOT_TLSLD_LO, "got at tlsld@l"},
+ {PPC::S_GOT_TLSLD_PCREL, "got at tlsld@pcrel"},
+ {PPC::S_GOT_TPREL, "got at tprel"},
+ {PPC::S_GOT_TPREL_HA, "got at tprel@ha"},
+ {PPC::S_GOT_TPREL_HI, "got at tprel@h"},
+ {PPC::S_GOT_TPREL_LO, "got at tprel@l"},
+ {PPC::S_GOT_TPREL_PCREL, "got at tprel@pcrel"},
+ {PPC::S_LOCAL, "local"},
+ {PPC::S_NOTOC, "notoc"},
+ {PPC::S_PCREL_OPT, "<<invalid>>"},
+ {PPC::S_TLS, "tls"},
+ {PPC::S_TLS_PCREL, "tls at pcrel"},
+ {PPC::S_TPREL_HA, "tprel at ha"},
+ {PPC::S_TPREL_HI, "tprel at h"},
+ {PPC::S_TPREL_HIGH, "tprel at high"},
+ {PPC::S_TPREL_HIGHA, "tprel at higha"},
+ {PPC::S_TPREL_HIGHER, "tprel at higher"},
+ {PPC::S_TPREL_HIGHERA, "tprel at highera"},
+ {PPC::S_TPREL_HIGHEST, "tprel at highest"},
+ {PPC::S_TPREL_HIGHESTA, "tprel at highesta"},
+ {PPC::S_TPREL_LO, "tprel at l"},
+ {PPC::S_U, "u"},
};
PPCELFMCAsmInfo::PPCELFMCAsmInfo(bool is64Bit, const Triple& T) {
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h
index 48806051f5814..9fbb73c2e3182 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h
@@ -33,6 +33,90 @@ class PPCXCOFFMCAsmInfo : public MCAsmInfoXCOFF {
explicit PPCXCOFFMCAsmInfo(bool is64Bit, const Triple &);
};
+namespace PPC {
+enum Specifier {
+ S_None,
+
+ S_LO,
+ S_HI,
+ S_HA,
+ S_HIGH,
+ S_HIGHA,
+ S_HIGHER,
+ S_HIGHERA,
+ S_HIGHEST,
+ S_HIGHESTA,
+
+ S_AIX_TLSGD, // symbol at gd
+ S_AIX_TLSGDM, // symbol at m
+ S_AIX_TLSIE, // symbol at ie
+ S_AIX_TLSLD, // symbol at ld
+ S_AIX_TLSLE, // symbol at le
+ S_AIX_TLSML, // symbol at ml
+ S_DTPMOD, // symbol at dtpmod
+ S_DTPREL, // symbol at dprel
+ S_DTPREL_HA, // symbol at dtprel@ha
+ S_DTPREL_HI, // symbol at dtprel@h
+ S_DTPREL_HIGH, // symbol at dtprel@high
+ S_DTPREL_HIGHA, // symbol at dtprel@higha
+ S_DTPREL_HIGHER, // symbol at dtprel@higher
+ S_DTPREL_HIGHERA, // symbol at dtprel@highera
+ S_DTPREL_HIGHEST, // symbol at dtprel@highest
+ S_DTPREL_HIGHESTA, // symbol at dtprel@highesta
+ S_DTPREL_LO, // symbol at dtprel@l
+ S_GOT, // symbol at got
+ S_GOT_DTPREL, // symbol at got@dtprel
+ S_GOT_DTPREL_HA, // symbol at got@dtprel at ha
+ S_GOT_DTPREL_HI, // symbol at got@dtprel at h
+ S_GOT_DTPREL_LO, // symbol at got@dtprel at l
+ S_GOT_HA, // symbol at got@ha
+ S_GOT_HI, // symbol at got@h
+ S_GOT_LO, // symbol at got@l
+ S_GOT_PCREL, // symbol at got@pcrel
+ S_GOT_TLSGD, // symbol at got@tlsgd
+ S_GOT_TLSGD_HA, // symbol at got@tlsgd at ha
+ S_GOT_TLSGD_HI, // symbol at got@tlsgd at h
+ S_GOT_TLSGD_LO, // symbol at got@tlsgd at l
+ S_GOT_TLSGD_PCREL, // symbol at got@tlsgd at pcrel
+ S_GOT_TLSLD, // symbol at got@tlsld
+ S_GOT_TLSLD_HA, // symbol at got@tlsld at ha
+ S_GOT_TLSLD_HI, // symbol at got@tlsld at h
+ S_GOT_TLSLD_LO, // symbol at got@tlsld at l
+ S_GOT_TLSLD_PCREL, // symbol at got@tlsld at pcrel
+ S_GOT_TPREL, // symbol at got@tprel
+ S_GOT_TPREL_HA, // symbol at got@tprel at ha
+ S_GOT_TPREL_HI, // symbol at got@tprel at h
+ S_GOT_TPREL_LO, // symbol at got@tprel at l
+ S_GOT_TPREL_PCREL, // symbol at got@tprel at pcrel
+ S_L, // symbol at l
+ S_LOCAL, // symbol at local
+ S_NOTOC, // symbol at notoc
+ S_PCREL,
+ S_PCREL_OPT, // .reloc expr, R_PPC64_PCREL_OPT, expr
+ S_PLT, // symbol at plt
+ S_TLS, // symbol at tls
+ S_TLSGD, // symbol at tlsgd
+ S_TLSLD, // symbol at tlsld
+ S_TLS_PCREL, // symbol at tls@pcrel
+ S_TOC, // symbol at toc
+ S_TOCBASE, // symbol at tocbase
+ S_TOC_HA, // symbol at toc@ha
+ S_TOC_HI, // symbol at toc@h
+ S_TOC_LO, // symbol at toc@l
+ S_TPREL, // symbol at tprel
+ S_TPREL_HA, // symbol at tprel@ha
+ S_TPREL_HI, // symbol at tprel@h
+ S_TPREL_HIGH, // symbol at tprel@high
+ S_TPREL_HIGHA, // symbol at tprel@higha
+ S_TPREL_HIGHER, // symbol at tprel@higher
+ S_TPREL_HIGHERA, // symbol at tprel@highera
+ S_TPREL_HIGHEST, // symbol at tprel@highest
+ S_TPREL_HIGHESTA, // symbol at tprel@highesta
+ S_TPREL_LO, // symbol at tprel@l
+ S_U, // symbol at u
+};
+}
+
} // namespace llvm
#endif
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
index ef067f745239c..b1b1c5280f2ae 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
@@ -329,11 +329,11 @@ PPCMCCodeEmitter::getDispRI34PCRelEncoding(const MCInst &MI, unsigned OpNo,
const MCSymbolRefExpr *SRE = cast<MCSymbolRefExpr>(Expr);
(void)SRE;
// Currently these are the only valid PCRelative Relocations.
- assert((getSpecifier(SRE) == PPCMCExpr::VK_PCREL ||
- getSpecifier(SRE) == PPCMCExpr::VK_GOT_PCREL ||
- getSpecifier(SRE) == PPCMCExpr::VK_GOT_TLSGD_PCREL ||
- getSpecifier(SRE) == PPCMCExpr::VK_GOT_TLSLD_PCREL ||
- getSpecifier(SRE) == PPCMCExpr::VK_GOT_TPREL_PCREL) &&
+ assert((getSpecifier(SRE) == PPC::S_PCREL ||
+ getSpecifier(SRE) == PPC::S_GOT_PCREL ||
+ getSpecifier(SRE) == PPC::S_GOT_TLSGD_PCREL ||
+ getSpecifier(SRE) == PPC::S_GOT_TLSLD_PCREL ||
+ getSpecifier(SRE) == PPC::S_GOT_TPREL_PCREL) &&
"VariantKind must be VK_PCREL or VK_GOT_PCREL or "
"VK_GOT_TLSGD_PCREL or VK_GOT_TLSLD_PCREL or "
"VK_GOT_TPREL_PCREL.");
@@ -368,8 +368,8 @@ PPCMCCodeEmitter::getDispRI34PCRelEncoding(const MCInst &MI, unsigned OpNo,
"Value must fit in 34 bits.");
// Currently these are the only valid PCRelative Relocations.
- assert((getSpecifier(SRE) == PPCMCExpr::VK_PCREL ||
- getSpecifier(SRE) == PPCMCExpr::VK_GOT_PCREL) &&
+ assert((getSpecifier(SRE) == PPC::S_PCREL ||
+ getSpecifier(SRE) == PPC::S_GOT_PCREL) &&
"VariantKind must be VK_PCREL or VK_GOT_PCREL");
// Generate the fixup for the relocation.
Fixups.push_back(
@@ -433,7 +433,7 @@ unsigned PPCMCCodeEmitter::getTLSRegEncoding(const MCInst &MI, unsigned OpNo,
// if using PC relative memops.
const MCExpr *Expr = MO.getExpr();
const MCSymbolRefExpr *SRE = cast<MCSymbolRefExpr>(Expr);
- bool IsPCRel = getSpecifier(SRE) == PPCMCExpr::VK_TLS_PCREL;
+ bool IsPCRel = getSpecifier(SRE) == PPC::S_TLS_PCREL;
Fixups.push_back(MCFixup::create(IsPCRel ? 1 : 0, Expr,
(MCFixupKind)PPC::fixup_ppc_nofixup));
const Triple &TT = STI.getTargetTriple();
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp
index 728b6799f94dc..49ae6bb5fa451 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp
@@ -21,6 +21,11 @@ const PPCMCExpr *PPCMCExpr::create(Specifier S, const MCExpr *Expr,
return new (Ctx) PPCMCExpr(S, Expr);
}
+const PPCMCExpr *PPCMCExpr::create(const MCExpr *Expr, Specifier S,
+ MCContext &Ctx) {
+ return new (Ctx) PPCMCExpr(S, Expr);
+}
+
void PPCMCExpr::printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const {
getSubExpr()->print(OS, MAI);
OS << '@' << MAI->getSpecifierName(specifier);
@@ -44,23 +49,23 @@ PPCMCExpr::evaluateAsConstant(int64_t &Res) const {
std::optional<int64_t> PPCMCExpr::evaluateAsInt64(int64_t Value) const {
switch (specifier) {
- case VK_LO:
+ case PPC::S_LO:
return Value & 0xffff;
- case VK_HI:
+ case PPC::S_HI:
return (Value >> 16) & 0xffff;
- case VK_HA:
+ case PPC::S_HA:
return ((Value + 0x8000) >> 16) & 0xffff;
- case VK_HIGH:
+ case PPC::S_HIGH:
return (Value >> 16) & 0xffff;
- case VK_HIGHA:
+ case PPC::S_HIGHA:
return ((Value + 0x8000) >> 16) & 0xffff;
- case VK_HIGHER:
+ case PPC::S_HIGHER:
return (Value >> 32) & 0xffff;
- case VK_HIGHERA:
+ case PPC::S_HIGHERA:
return ((Value + 0x8000) >> 32) & 0xffff;
- case VK_HIGHEST:
+ case PPC::S_HIGHEST:
return (Value >> 48) & 0xffff;
- case VK_HIGHESTA:
+ case PPC::S_HIGHESTA:
return ((Value + 0x8000) >> 48) & 0xffff;
default:
return {};
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.h b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.h
index 3d0511da2749f..814217ea060e0 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.h
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.h
@@ -9,6 +9,7 @@
#ifndef LLVM_LIB_TARGET_POWERPC_MCTARGETDESC_PPCMCEXPR_H
#define LLVM_LIB_TARGET_POWERPC_MCTARGETDESC_PPCMCEXPR_H
+#include "PPCMCAsmInfo.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCValue.h"
#include <optional>
@@ -18,87 +19,6 @@ namespace llvm {
class PPCMCExpr : public MCSpecifierExpr {
public:
using Specifier = uint16_t;
- enum {
- VK_None,
-
- VK_LO = MCSymbolRefExpr::FirstTargetSpecifier,
- VK_HI,
- VK_HA,
- VK_HIGH,
- VK_HIGHA,
- VK_HIGHER,
- VK_HIGHERA,
- VK_HIGHEST,
- VK_HIGHESTA,
-
- VK_AIX_TLSGD, // symbol at gd
- VK_AIX_TLSGDM, // symbol at m
- VK_AIX_TLSIE, // symbol at ie
- VK_AIX_TLSLD, // symbol at ld
- VK_AIX_TLSLE, // symbol at le
- VK_AIX_TLSML, // symbol at ml
- VK_DTPMOD, // symbol at dtpmod
- VK_DTPREL, // symbol at dprel
- VK_DTPREL_HA, // symbol at dtprel@ha
- VK_DTPREL_HI, // symbol at dtprel@h
- VK_DTPREL_HIGH, // symbol at dtprel@high
- VK_DTPREL_HIGHA, // symbol at dtprel@higha
- VK_DTPREL_HIGHER, // symbol at dtprel@higher
- VK_DTPREL_HIGHERA, // symbol at dtprel@highera
- VK_DTPREL_HIGHEST, // symbol at dtprel@highest
- VK_DTPREL_HIGHESTA, // symbol at dtprel@highesta
- VK_DTPREL_LO, // symbol at dtprel@l
- VK_GOT, // symbol at got
- VK_GOT_DTPREL, // symbol at got@dtprel
- VK_GOT_DTPREL_HA, // symbol at got@dtprel at ha
- VK_GOT_DTPREL_HI, // symbol at got@dtprel at h
- VK_GOT_DTPREL_LO, // symbol at got@dtprel at l
- VK_GOT_HA, // symbol at got@ha
- VK_GOT_HI, // symbol at got@h
- VK_GOT_LO, // symbol at got@l
- VK_GOT_PCREL, // symbol at got@pcrel
- VK_GOT_TLSGD, // symbol at got@tlsgd
- VK_GOT_TLSGD_HA, // symbol at got@tlsgd at ha
- VK_GOT_TLSGD_HI, // symbol at got@tlsgd at h
- VK_GOT_TLSGD_LO, // symbol at got@tlsgd at l
- VK_GOT_TLSGD_PCREL, // symbol at got@tlsgd at pcrel
- VK_GOT_TLSLD, // symbol at got@tlsld
- VK_GOT_TLSLD_HA, // symbol at got@tlsld at ha
- VK_GOT_TLSLD_HI, // symbol at got@tlsld at h
- VK_GOT_TLSLD_LO, // symbol at got@tlsld at l
- VK_GOT_TLSLD_PCREL, // symbol at got@tlsld at pcrel
- VK_GOT_TPREL, // symbol at got@tprel
- VK_GOT_TPREL_HA, // symbol at got@tprel at ha
- VK_GOT_TPREL_HI, // symbol at got@tprel at h
- VK_GOT_TPREL_LO, // symbol at got@tprel at l
- VK_GOT_TPREL_PCREL, // symbol at got@tprel at pcrel
- VK_L, // symbol at l
- VK_LOCAL, // symbol at local
- VK_NOTOC, // symbol at notoc
- VK_PCREL,
- VK_PCREL_OPT, // .reloc expr, R_PPC64_PCREL_OPT, expr
- VK_PLT, // symbol at plt
- VK_TLS, // symbol at tls
- VK_TLSGD, // symbol at tlsgd
- VK_TLSLD, // symbol at tlsld
- VK_TLS_PCREL, // symbol at tls@pcrel
- VK_TOC, // symbol at toc
- VK_TOCBASE, // symbol at tocbase
- VK_TOC_HA, // symbol at toc@ha
- VK_TOC_HI, // symbol at toc@h
- VK_TOC_LO, // symbol at toc@l
- VK_TPREL, // symbol at tprel
- VK_TPREL_HA, // symbol at tprel@ha
- VK_TPREL_HI, // symbol at tprel@h
- VK_TPREL_HIGH, // symbol at tprel@high
- VK_TPREL_HIGHA, // symbol at tprel@higha
- VK_TPREL_HIGHER, // symbol at tprel@higher
- VK_TPREL_HIGHERA, // symbol at tprel@highera
- VK_TPREL_HIGHEST, // symbol at tprel@highest
- VK_TPREL_HIGHESTA, // symbol at tprel@highesta
- VK_TPREL_LO, // symbol at tprel@l
- VK_U, // symbol at u
- };
private:
std::optional<int64_t> evaluateAsInt64(int64_t Value) const;
@@ -109,18 +29,8 @@ class PPCMCExpr : public MCSpecifierExpr {
public:
static const PPCMCExpr *create(Specifier S, const MCExpr *Expr,
MCContext &Ctx);
-
- static const PPCMCExpr *createLo(const MCExpr *Expr, MCContext &Ctx) {
- return create(VK_LO, Expr, Ctx);
- }
-
- static const PPCMCExpr *createHi(const MCExpr *Expr, MCContext &Ctx) {
- return create(VK_HI, Expr, Ctx);
- }
-
- static const PPCMCExpr *createHa(const MCExpr *Expr, MCContext &Ctx) {
- return create(VK_HA, Expr, Ctx);
- }
+ static const PPCMCExpr *create(const MCExpr *Expr, Specifier S,
+ MCContext &Ctx);
void printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const override;
bool evaluateAsRelocatableImpl(MCValue &Res,
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
index 03a034182ae15..7f80c101bcc9c 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
@@ -221,9 +221,9 @@ class PPCTargetAsmStreamer : public PPCTargetStreamer {
// variables. Finally for local-exec and initial-exec, we have a thread
// pointer, in r13 for 64-bit mode and returned by .__get_tpointer for
// 32-bit mode.
- if (Kind == PPCMCExpr::VK_AIX_TLSGD || Kind == PPCMCExpr::VK_AIX_TLSGDM ||
- Kind == PPCMCExpr::VK_AIX_TLSIE || Kind == PPCMCExpr::VK_AIX_TLSLE ||
- Kind == PPCMCExpr::VK_AIX_TLSLD || Kind == PPCMCExpr::VK_AIX_TLSML)
+ if (Kind == PPC::S_AIX_TLSGD || Kind == PPC::S_AIX_TLSGDM ||
+ Kind == PPC::S_AIX_TLSIE || Kind == PPC::S_AIX_TLSLE ||
+ Kind == PPC::S_AIX_TLSLD || Kind == PPC::S_AIX_TLSML)
OS << "\t.tc " << TCSym->getName() << "," << XSym->getName() << "@"
<< getContext().getAsmInfo()->getSpecifierName(Kind) << '\n';
else
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp
index 1b5fe08bea49d..8532f537e2d6e 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp
@@ -61,15 +61,15 @@ std::pair<uint8_t, uint8_t> PPCXCOFFObjectWriter::getRelocTypeAndSignSize(
switch (Specifier) {
default:
report_fatal_error("Unsupported modifier for half16 fixup.");
- case PPCMCExpr::VK_None:
+ case PPC::S_None:
return {XCOFF::RelocationType::R_TOC, SignAndSizeForHalf16};
- case PPCMCExpr::VK_U:
+ case PPC::S_U:
return {XCOFF::RelocationType::R_TOCU, SignAndSizeForHalf16};
- case PPCMCExpr::VK_L:
+ case PPC::S_L:
return {XCOFF::RelocationType::R_TOCL, SignAndSizeForHalf16};
- case PPCMCExpr::VK_AIX_TLSLE:
+ case PPC::S_AIX_TLSLE:
return {XCOFF::RelocationType::R_TLS_LE, SignAndSizeForHalf16};
- case PPCMCExpr::VK_AIX_TLSLD:
+ case PPC::S_AIX_TLSLD:
return {XCOFF::RelocationType::R_TLS_LD, SignAndSizeForHalf16};
}
} break;
@@ -80,13 +80,13 @@ std::pair<uint8_t, uint8_t> PPCXCOFFObjectWriter::getRelocTypeAndSignSize(
switch (Specifier) {
default:
llvm_unreachable("Unsupported Modifier");
- case PPCMCExpr::VK_None:
+ case PPC::S_None:
return {XCOFF::RelocationType::R_TOC, 15};
- case PPCMCExpr::VK_L:
+ case PPC::S_L:
return {XCOFF::RelocationType::R_TOCL, 15};
- case PPCMCExpr::VK_AIX_TLSLE:
+ case PPC::S_AIX_TLSLE:
return {XCOFF::RelocationType::R_TLS_LE, 15};
- case PPCMCExpr::VK_AIX_TLSLD:
+ case PPC::S_AIX_TLSLD:
return {XCOFF::RelocationType::R_TLS_LD, 15};
}
} break;
@@ -97,7 +97,7 @@ std::pair<uint8_t, uint8_t> PPCXCOFFObjectWriter::getRelocTypeAndSignSize(
case PPC::fixup_ppc_br24abs:
return {XCOFF::RelocationType::R_RBA, EncodedSignednessIndicator | 25};
case PPC::fixup_ppc_nofixup: {
- if (Specifier == PPCMCExpr::VK_None)
+ if (Specifier == PPC::S_None)
return {XCOFF::RelocationType::R_REF, 0};
else
llvm_unreachable("Unsupported Modifier");
@@ -110,19 +110,19 @@ std::pair<uint8_t, uint8_t> PPCXCOFFObjectWriter::getRelocTypeAndSignSize(
switch (Specifier) {
default:
report_fatal_error("Unsupported modifier");
- case PPCMCExpr::VK_AIX_TLSGD:
+ case PPC::S_AIX_TLSGD:
return {XCOFF::RelocationType::R_TLS, SignAndSizeForFKData};
- case PPCMCExpr::VK_AIX_TLSGDM:
+ case PPC::S_AIX_TLSGDM:
return {XCOFF::RelocationType::R_TLSM, SignAndSizeForFKData};
- case PPCMCExpr::VK_AIX_TLSIE:
+ case PPC::S_AIX_TLSIE:
return {XCOFF::RelocationType::R_TLS_IE, SignAndSizeForFKData};
- case PPCMCExpr::VK_AIX_TLSLE:
+ case PPC::S_AIX_TLSLE:
return {XCOFF::RelocationType::R_TLS_LE, SignAndSizeForFKData};
- case PPCMCExpr::VK_AIX_TLSLD:
+ case PPC::S_AIX_TLSLD:
return {XCOFF::RelocationType::R_TLS_LD, SignAndSizeForFKData};
- case PPCMCExpr::VK_AIX_TLSML:
+ case PPC::S_AIX_TLSML:
return {XCOFF::RelocationType::R_TLSML, SignAndSizeForFKData};
- case PPCMCExpr::VK_None:
+ case PPC::S_None:
return {XCOFF::RelocationType::R_POS, SignAndSizeForFKData};
}
}
diff --git a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
index 0fe615a95894f..8a1357c5fd555 100644
--- a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
+++ b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
@@ -108,9 +108,9 @@ template <>
struct DenseMapInfo<std::pair<const MCSymbol *, PPCMCExpr::Specifier>> {
using TOCKey = std::pair<const MCSymbol *, PPCMCExpr::Specifier>;
- static inline TOCKey getEmptyKey() { return {nullptr, PPCMCExpr::VK_None}; }
+ static inline TOCKey getEmptyKey() { return {nullptr, PPC::S_None}; }
static inline TOCKey getTombstoneKey() {
- return {(const MCSymbol *)1, PPCMCExpr::VK_None};
+ return {(const MCSymbol *)1, PPC::S_None};
}
static unsigned getHashValue(const TOCKey &PairVal) {
return detail::combineHashValue(
@@ -174,9 +174,8 @@ class PPCAsmPrinter : public AsmPrinter {
TOCType_EHBlock
};
- MCSymbol *
- lookUpOrCreateTOCEntry(const MCSymbol *Sym, TOCEntryType Type,
- PPCMCExpr::Specifier Kind = PPCMCExpr::VK_None);
+ MCSymbol *lookUpOrCreateTOCEntry(const MCSymbol *Sym, TOCEntryType Type,
+ PPCMCExpr::Specifier Kind = PPC::S_None);
bool doInitialization(Module &M) override {
if (!TOC.empty())
@@ -691,13 +690,13 @@ void PPCAsmPrinter::EmitAIXTlsCallHelper(const MachineInstr *MI) {
/// the current output stream.
void PPCAsmPrinter::emitTlsCall(const MachineInstr *MI,
PPCMCExpr::Specifier VK) {
- PPCMCExpr::Specifier Kind = PPCMCExpr::VK_None;
+ PPCMCExpr::Specifier Kind = PPC::S_None;
unsigned Opcode = PPC::BL8_NOP_TLS;
assert(MI->getNumOperands() >= 3 && "Expecting at least 3 operands from MI");
if (MI->getOperand(2).getTargetFlags() == PPCII::MO_GOT_TLSGD_PCREL_FLAG ||
MI->getOperand(2).getTargetFlags() == PPCII::MO_GOT_TLSLD_PCREL_FLAG) {
- Kind = PPCMCExpr::VK_NOTOC;
+ Kind = PPC::S_NOTOC;
Opcode = PPC::BL8_NOTOC_TLS;
}
const Module *M = MF->getFunction().getParent();
@@ -730,13 +729,13 @@ void PPCAsmPrinter::emitTlsCall(const MachineInstr *MI,
MCSymbol *TlsGetAddr = OutContext.getOrCreateSymbol("__tls_get_addr");
if (Subtarget->is32BitELFABI() && isPositionIndependent())
- Kind = PPCMCExpr::VK_PLT;
+ Kind = PPC::S_PLT;
const MCExpr *TlsRef = MCSymbolRefExpr::create(
TlsGetAddr, MCSymbolRefExpr::VariantKind(Kind), OutContext);
// Add 32768 offset to the symbol so we follow up the latest GOT/PLT ABI.
- if (Kind == PPCMCExpr::VK_PLT && Subtarget->isSecurePlt() &&
+ if (Kind == PPC::S_PLT && Subtarget->isSecurePlt() &&
M->getPICLevel() == PICLevel::BigPIC)
TlsRef = MCBinaryExpr::createAdd(
TlsRef, MCConstantExpr::create(32768, OutContext), OutContext);
@@ -861,7 +860,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
auto getTOCEntryLoadingExprForXCOFF =
[IsPPC64, getTOCRelocAdjustedExprForXCOFF,
this](const MCSymbol *MOSymbol, const MCExpr *Expr,
- PPCMCExpr::Specifier VK = PPCMCExpr::VK_None) -> const MCExpr * {
+ PPCMCExpr::Specifier VK = PPC::S_None) -> const MCExpr * {
const unsigned EntryByteSize = IsPPC64 ? 8 : 4;
const auto TOCEntryIter = TOC.find({MOSymbol, VK});
assert(TOCEntryIter != TOC.end() &&
@@ -886,9 +885,9 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
assert(MO.isGlobal() && "Only expecting a global MachineOperand here!\n");
TLSModel::Model Model = TM.getTLSModel(MO.getGlobal());
if (Model == TLSModel::LocalExec)
- return PPCMCExpr::VK_AIX_TLSLE;
+ return PPC::S_AIX_TLSLE;
if (Model == TLSModel::InitialExec)
- return PPCMCExpr::VK_AIX_TLSIE;
+ return PPC::S_AIX_TLSIE;
// On AIX, TLS model opt may have turned local-dynamic accesses into
// initial-exec accesses.
PPCFunctionInfo *FuncInfo = MF->getInfo<PPCFunctionInfo>();
@@ -896,7 +895,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
FuncInfo->isAIXFuncUseTLSIEForLD()) {
LLVM_DEBUG(
dbgs() << "Current function uses IE access for default LD vars.\n");
- return PPCMCExpr::VK_AIX_TLSIE;
+ return PPC::S_AIX_TLSIE;
}
llvm_unreachable("Only expecting local-exec or initial-exec accesses!");
}
@@ -904,17 +903,17 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
// the variable offset and the other for the region handle). They are
//
diff erentiated by MO_TLSGD_FLAG and MO_TLSGDM_FLAG.
if (Flag == PPCII::MO_TLSGDM_FLAG)
- return PPCMCExpr::VK_AIX_TLSGDM;
+ return PPC::S_AIX_TLSGDM;
if (Flag == PPCII::MO_TLSGD_FLAG || Flag == PPCII::MO_GOT_TLSGD_PCREL_FLAG)
- return PPCMCExpr::VK_AIX_TLSGD;
+ return PPC::S_AIX_TLSGD;
// For local-dynamic TLS access on AIX, we have one TOC entry for the symbol
// (the variable offset) and one shared TOC entry for the module handle.
// They are
diff erentiated by MO_TLSLD_FLAG and MO_TLSLDM_FLAG.
if (Flag == PPCII::MO_TLSLD_FLAG && IsAIX)
- return PPCMCExpr::VK_AIX_TLSLD;
+ return PPC::S_AIX_TLSLD;
if (Flag == PPCII::MO_TLSLDM_FLAG && IsAIX)
- return PPCMCExpr::VK_AIX_TLSML;
- return PPCMCExpr::VK_None;
+ return PPC::S_AIX_TLSML;
+ return PPC::S_None;
};
// Lower multi-instruction pseudo operations.
@@ -955,8 +954,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
OutContext.getOrCreateSymbol(StringRef("_GLOBAL_OFFSET_TABLE_"));
const MCExpr *OffsExpr = MCBinaryExpr::createSub(
MCSymbolRefExpr::create(
- GOTSymbol, MCSymbolRefExpr::VariantKind(PPCMCExpr::VK_LOCAL),
- OutContext),
+ GOTSymbol, MCSymbolRefExpr::VariantKind(PPC::S_LOCAL), OutContext),
MCConstantExpr::create(4, OutContext), OutContext);
// Emit the 'bl'.
@@ -1002,12 +1000,14 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
const MCExpr *DeltaExpr = MCBinaryExpr::createSub(
MCSymbolRefExpr::create(BaseSymbol, OutContext), PB, OutContext);
- const MCExpr *DeltaHi = PPCMCExpr::createHa(DeltaExpr, OutContext);
+ const MCExpr *DeltaHi =
+ PPCMCExpr::create(DeltaExpr, PPC::S_HA, OutContext);
EmitToStreamer(
*OutStreamer,
MCInstBuilder(PPC::ADDIS).addReg(PICR).addReg(PICR).addExpr(DeltaHi));
- const MCExpr *DeltaLo = PPCMCExpr::createLo(DeltaExpr, OutContext);
+ const MCExpr *DeltaLo =
+ PPCMCExpr::create(DeltaExpr, PPC::S_LO, OutContext);
EmitToStreamer(
*OutStreamer,
MCInstBuilder(PPC::ADDI).addReg(PICR).addReg(PICR).addExpr(DeltaLo));
@@ -1055,7 +1055,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
// Create a reference to the GOT entry for the symbol. The GOT entry will be
// synthesized later.
if (PL == PICLevel::SmallPIC && !IsAIX) {
- const MCExpr *Exp = symbolWithSpecifier(MOSymbol, PPCMCExpr::VK_GOT);
+ const MCExpr *Exp = symbolWithSpecifier(MOSymbol, PPC::S_GOT);
TmpInst.getOperand(1) = MCOperand::createExpr(Exp);
EmitToStreamer(*OutStreamer, TmpInst);
return;
@@ -1144,8 +1144,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
MCSymbol *TOCEntry =
lookUpOrCreateTOCEntry(MOSymbol, getTOCEntryTypeForMO(MO), VK);
- PPCMCExpr::Specifier VKExpr =
- IsAIX ? PPCMCExpr::VK_None : PPCMCExpr::VK_TOC;
+ PPCMCExpr::Specifier VKExpr = IsAIX ? PPC::S_None : PPC::S_TOC;
const MCExpr *Exp = symbolWithSpecifier(TOCEntry, VKExpr);
TmpInst.getOperand(1) = MCOperand::createExpr(
IsAIX ? getTOCEntryLoadingExprForXCOFF(MOSymbol, Exp, VK) : Exp);
@@ -1195,7 +1194,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
MOSymbol = lookUpOrCreateTOCEntry(MOSymbol, getTOCEntryTypeForMO(MO), VK);
}
- const MCExpr *Exp = symbolWithSpecifier(MOSymbol, PPCMCExpr::VK_U);
+ const MCExpr *Exp = symbolWithSpecifier(MOSymbol, PPC::S_U);
TmpInst.getOperand(2) = MCOperand::createExpr(Exp);
EmitToStreamer(*OutStreamer, TmpInst);
return;
@@ -1227,7 +1226,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
// 'MOSymbol'.
MCSymbol *TOCEntry =
lookUpOrCreateTOCEntry(MOSymbol, getTOCEntryTypeForMO(MO), VK);
- const MCExpr *Exp = symbolWithSpecifier(TOCEntry, PPCMCExpr::VK_L);
+ const MCExpr *Exp = symbolWithSpecifier(TOCEntry, PPC::S_L);
TmpInst.getOperand(1) = MCOperand::createExpr(Exp);
EmitToStreamer(*OutStreamer, TmpInst);
return;
@@ -1260,7 +1259,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
(MO.isCPI() && CM == CodeModel::Large))
MOSymbol = lookUpOrCreateTOCEntry(MOSymbol, getTOCEntryTypeForMO(MO), VK);
- VK = IsAIX ? PPCMCExpr::VK_U : PPCMCExpr::VK_TOC_HA;
+ VK = IsAIX ? PPC::S_U : PPC::S_TOC_HA;
const MCExpr *Exp = symbolWithSpecifier(MOSymbol, VK);
@@ -1302,7 +1301,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
if (!MO.isCPI() || CM == CodeModel::Large)
MOSymbol = lookUpOrCreateTOCEntry(MOSymbol, getTOCEntryTypeForMO(MO), VK);
- VK = IsAIX ? PPCMCExpr::VK_L : PPCMCExpr::VK_TOC_LO;
+ VK = IsAIX ? PPC::S_L : PPC::S_TOC_LO;
const MCExpr *Exp = symbolWithSpecifier(MOSymbol, VK);
TmpInst.getOperand(1) = MCOperand::createExpr(Exp);
EmitToStreamer(*OutStreamer, TmpInst);
@@ -1332,8 +1331,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
const MCExpr *Exp = MCSymbolRefExpr::create(
MOSymbol,
- MCSymbolRefExpr::VariantKind(IsAIX ? PPCMCExpr::VK_L
- : PPCMCExpr::VK_TOC_LO),
+ MCSymbolRefExpr::VariantKind(IsAIX ? PPC::S_L : PPC::S_TOC_LO),
OutContext);
TmpInst.getOperand(2) = MCOperand::createExpr(Exp);
@@ -1348,7 +1346,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
const GlobalValue *GValue = MO.getGlobal();
MCSymbol *MOSymbol = getSymbol(GValue);
const MCExpr *SymGotTprel =
- symbolWithSpecifier(MOSymbol, PPCMCExpr::VK_GOT_TPREL_HA);
+ symbolWithSpecifier(MOSymbol, PPC::S_GOT_TPREL_HA);
EmitToStreamer(*OutStreamer, MCInstBuilder(PPC::ADDIS8)
.addReg(MI->getOperand(0).getReg())
.addReg(MI->getOperand(1).getReg())
@@ -1365,9 +1363,8 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
const MachineOperand &MO = MI->getOperand(1);
const GlobalValue *GValue = MO.getGlobal();
MCSymbol *MOSymbol = getSymbol(GValue);
- const MCExpr *Exp =
- symbolWithSpecifier(MOSymbol, IsPPC64 ? PPCMCExpr::VK_GOT_TPREL_LO
- : PPCMCExpr::VK_GOT_TPREL);
+ const MCExpr *Exp = symbolWithSpecifier(
+ MOSymbol, IsPPC64 ? PPC::S_GOT_TPREL_LO : PPC::S_GOT_TPREL);
TmpInst.getOperand(1) = MCOperand::createExpr(Exp);
EmitToStreamer(*OutStreamer, TmpInst);
return;
@@ -1405,11 +1402,9 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
MCSymbol *GOTSymbol =
OutContext.getOrCreateSymbol(StringRef("_GLOBAL_OFFSET_TABLE_"));
const MCExpr *SymGotTlsL = PPCMCExpr::create(
- PPCMCExpr::VK_LO, MCSymbolRefExpr::create(GOTSymbol, OutContext),
- OutContext);
+ PPC::S_LO, MCSymbolRefExpr::create(GOTSymbol, OutContext), OutContext);
const MCExpr *SymGotTlsHA = PPCMCExpr::create(
- PPCMCExpr::VK_HA, MCSymbolRefExpr::create(GOTSymbol, OutContext),
- OutContext);
+ PPC::S_HA, MCSymbolRefExpr::create(GOTSymbol, OutContext), OutContext);
EmitToStreamer(*OutStreamer, MCInstBuilder(PPC::LI)
.addReg(MI->getOperand(0).getReg())
.addExpr(SymGotTlsL));
@@ -1427,7 +1422,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
const GlobalValue *GValue = MO.getGlobal();
MCSymbol *MOSymbol = getSymbol(GValue);
const MCExpr *SymGotTlsGD =
- symbolWithSpecifier(MOSymbol, PPCMCExpr::VK_GOT_TLSGD_HA);
+ symbolWithSpecifier(MOSymbol, PPC::S_GOT_TLSGD_HA);
EmitToStreamer(*OutStreamer, MCInstBuilder(PPC::ADDIS8)
.addReg(MI->getOperand(0).getReg())
.addReg(MI->getOperand(1).getReg())
@@ -1443,9 +1438,8 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
const MachineOperand &MO = MI->getOperand(2);
const GlobalValue *GValue = MO.getGlobal();
MCSymbol *MOSymbol = getSymbol(GValue);
- const MCExpr *SymGotTlsGD =
- symbolWithSpecifier(MOSymbol, IsPPC64 ? PPCMCExpr::VK_GOT_TLSGD_LO
- : PPCMCExpr::VK_GOT_TLSGD);
+ const MCExpr *SymGotTlsGD = symbolWithSpecifier(
+ MOSymbol, IsPPC64 ? PPC::S_GOT_TLSGD_LO : PPC::S_GOT_TLSGD);
EmitToStreamer(*OutStreamer,
MCInstBuilder(IsPPC64 ? PPC::ADDI8 : PPC::ADDI)
.addReg(MI->getOperand(0).getReg())
@@ -1470,7 +1464,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
case PPC::GETtlsADDR32: {
// Transform: %r3 = GETtlsADDR32 %r3, @sym
// Into: BL_TLS __tls_get_addr(sym at tlsgd)@PLT
- emitTlsCall(MI, PPCMCExpr::VK_TLSGD);
+ emitTlsCall(MI, PPC::S_TLSGD);
return;
}
case PPC::GETtlsTpointer32AIX: {
@@ -1487,7 +1481,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
const GlobalValue *GValue = MO.getGlobal();
MCSymbol *MOSymbol = getSymbol(GValue);
const MCExpr *SymGotTlsLD =
- symbolWithSpecifier(MOSymbol, PPCMCExpr::VK_GOT_TLSLD_HA);
+ symbolWithSpecifier(MOSymbol, PPC::S_GOT_TLSLD_HA);
EmitToStreamer(*OutStreamer, MCInstBuilder(PPC::ADDIS8)
.addReg(MI->getOperand(0).getReg())
.addReg(MI->getOperand(1).getReg())
@@ -1503,9 +1497,8 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
const MachineOperand &MO = MI->getOperand(2);
const GlobalValue *GValue = MO.getGlobal();
MCSymbol *MOSymbol = getSymbol(GValue);
- const MCExpr *SymGotTlsLD =
- symbolWithSpecifier(MOSymbol, IsPPC64 ? PPCMCExpr::VK_GOT_TLSLD_LO
- : PPCMCExpr::VK_GOT_TLSLD);
+ const MCExpr *SymGotTlsLD = symbolWithSpecifier(
+ MOSymbol, IsPPC64 ? PPC::S_GOT_TLSLD_LO : PPC::S_GOT_TLSLD);
EmitToStreamer(*OutStreamer,
MCInstBuilder(IsPPC64 ? PPC::ADDI8 : PPC::ADDI)
.addReg(MI->getOperand(0).getReg())
@@ -1520,7 +1513,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
case PPC::GETtlsldADDR32: {
// Transform: %r3 = GETtlsldADDR32 %r3, @sym
// Into: BL_TLS __tls_get_addr(sym at tlsld)@PLT
- emitTlsCall(MI, PPCMCExpr::VK_TLSLD);
+ emitTlsCall(MI, PPC::S_TLSLD);
return;
}
case PPC::ADDISdtprelHA:
@@ -1532,8 +1525,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
const MachineOperand &MO = MI->getOperand(2);
const GlobalValue *GValue = MO.getGlobal();
MCSymbol *MOSymbol = getSymbol(GValue);
- const MCExpr *SymDtprel =
- symbolWithSpecifier(MOSymbol, PPCMCExpr::VK_DTPREL_HA);
+ const MCExpr *SymDtprel = symbolWithSpecifier(MOSymbol, PPC::S_DTPREL_HA);
EmitToStreamer(
*OutStreamer,
MCInstBuilder(IsPPC64 ? PPC::ADDIS8 : PPC::ADDIS)
@@ -1548,8 +1540,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
const MachineOperand &MO = MI->getOperand(2);
const GlobalValue *GValue = MO.getGlobal();
MCSymbol *MOSymbol = getSymbol(GValue);
- const MCExpr *SymDtprel =
- symbolWithSpecifier(MOSymbol, PPCMCExpr::VK_DTPREL);
+ const MCExpr *SymDtprel = symbolWithSpecifier(MOSymbol, PPC::S_DTPREL);
EmitToStreamer(*OutStreamer, MCInstBuilder(PPC::PADDI8)
.addReg(MI->getOperand(0).getReg())
.addReg(MI->getOperand(1).getReg())
@@ -1566,8 +1557,7 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) {
const MachineOperand &MO = MI->getOperand(2);
const GlobalValue *GValue = MO.getGlobal();
MCSymbol *MOSymbol = getSymbol(GValue);
- const MCExpr *SymDtprel =
- symbolWithSpecifier(MOSymbol, PPCMCExpr::VK_DTPREL_LO);
+ const MCExpr *SymDtprel = symbolWithSpecifier(MOSymbol, PPC::S_DTPREL_LO);
EmitToStreamer(*OutStreamer,
MCInstBuilder(IsPPC64 ? PPC::ADDI8 : PPC::ADDI)
.addReg(MI->getOperand(0).getReg())
@@ -1737,9 +1727,8 @@ PPCAsmPrinter::getAdjustedFasterLocalExpr(const MachineOperand &MO,
// assume that the address of extern TLS variables are zero.
const MCExpr *Expr = MCSymbolRefExpr::create(
getSymbol(GValue),
- MCSymbolRefExpr::VariantKind(Model == TLSModel::LocalExec
- ? PPCMCExpr::VK_AIX_TLSLE
- : PPCMCExpr::VK_AIX_TLSLD),
+ MCSymbolRefExpr::VariantKind(
+ Model == TLSModel::LocalExec ? PPC::S_AIX_TLSLE : PPC::S_AIX_TLSLD),
OutContext);
Expr = MCBinaryExpr::createAdd(
Expr, MCConstantExpr::create(Offset, OutContext), OutContext);
@@ -2028,8 +2017,7 @@ void PPCLinuxAsmPrinter::emitFunctionEntryLabel() {
// Generates a R_PPC64_TOC relocation for TOC base insertion.
OutStreamer->emitValue(
MCSymbolRefExpr::create(
- Symbol2, MCSymbolRefExpr::VariantKind(PPCMCExpr::VK_TOCBASE),
- OutContext),
+ Symbol2, MCSymbolRefExpr::VariantKind(PPC::S_TOCBASE), OutContext),
8 /*size*/);
// Emit a null environment pointer.
OutStreamer->emitIntValue(0, 8 /* size */);
@@ -2136,13 +2124,15 @@ void PPCLinuxAsmPrinter::emitFunctionBodyStart() {
MCBinaryExpr::createSub(MCSymbolRefExpr::create(TOCSymbol, OutContext),
GlobalEntryLabelExp, OutContext);
- const MCExpr *TOCDeltaHi = PPCMCExpr::createHa(TOCDeltaExpr, OutContext);
+ const MCExpr *TOCDeltaHi =
+ PPCMCExpr::create(TOCDeltaExpr, PPC::S_HA, OutContext);
EmitToStreamer(*OutStreamer, MCInstBuilder(PPC::ADDIS)
.addReg(PPC::X2)
.addReg(PPC::X12)
.addExpr(TOCDeltaHi));
- const MCExpr *TOCDeltaLo = PPCMCExpr::createLo(TOCDeltaExpr, OutContext);
+ const MCExpr *TOCDeltaLo =
+ PPCMCExpr::create(TOCDeltaExpr, PPC::S_LO, OutContext);
EmitToStreamer(*OutStreamer, MCInstBuilder(PPC::ADDI)
.addReg(PPC::X2)
.addReg(PPC::X2)
@@ -3007,9 +2997,9 @@ void PPCAIXAsmPrinter::emitEndOfAsmFile(Module &M) {
// new symbol to prefix the name with a dot.
// If TLS model opt is turned on, create a new symbol to prefix the name
// with a dot.
- if (I.first.second == PPCMCExpr::VK_AIX_TLSGDM ||
+ if (I.first.second == PPC::S_AIX_TLSGDM ||
(Subtarget->hasAIXShLibTLSModelOpt() &&
- I.first.second == PPCMCExpr::VK_AIX_TLSLD)) {
+ I.first.second == PPC::S_AIX_TLSLD)) {
SmallString<128> Name;
StringRef Prefix = ".";
Name += Prefix;
diff --git a/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp b/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
index 0a04b7fb8d169..f6624ec989ee2 100644
--- a/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
+++ b/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
@@ -54,31 +54,31 @@ static MCSymbol *GetSymbolFromOperand(const MachineOperand &MO,
static MCOperand GetSymbolRef(const MachineOperand &MO, const MCSymbol *Symbol,
AsmPrinter &Printer) {
MCContext &Ctx = Printer.OutContext;
- PPCMCExpr::Specifier RefKind = PPCMCExpr::VK_None;
+ PPCMCExpr::Specifier RefKind = PPC::S_None;
unsigned access = MO.getTargetFlags();
switch (access) {
case PPCII::MO_TPREL_LO:
- RefKind = PPCMCExpr::VK_TPREL_LO;
+ RefKind = PPC::S_TPREL_LO;
break;
case PPCII::MO_TPREL_HA:
- RefKind = PPCMCExpr::VK_TPREL_HA;
+ RefKind = PPC::S_TPREL_HA;
break;
case PPCII::MO_DTPREL_LO:
- RefKind = PPCMCExpr::VK_DTPREL_LO;
+ RefKind = PPC::S_DTPREL_LO;
break;
case PPCII::MO_TLSLD_LO:
- RefKind = PPCMCExpr::VK_GOT_TLSLD_LO;
+ RefKind = PPC::S_GOT_TLSLD_LO;
break;
case PPCII::MO_TOC_LO:
- RefKind = PPCMCExpr::VK_TOC_LO;
+ RefKind = PPC::S_TOC_LO;
break;
case PPCII::MO_TLS:
- RefKind = PPCMCExpr::VK_TLS;
+ RefKind = PPC::S_TLS;
break;
case PPCII::MO_TLS_PCREL_FLAG:
- RefKind = PPCMCExpr::VK_TLS_PCREL;
+ RefKind = PPC::S_TLS_PCREL;
break;
}
@@ -87,19 +87,19 @@ static MCOperand GetSymbolRef(const MachineOperand &MO, const MCSymbol *Symbol,
const MachineFunction *MF = MI->getMF();
if (MO.getTargetFlags() == PPCII::MO_PLT)
- RefKind = PPCMCExpr::VK_PLT;
+ RefKind = PPC::S_PLT;
else if (MO.getTargetFlags() == PPCII::MO_PCREL_FLAG)
- RefKind = PPCMCExpr::VK_PCREL;
+ RefKind = PPC::S_PCREL;
else if (MO.getTargetFlags() == PPCII::MO_GOT_PCREL_FLAG)
- RefKind = PPCMCExpr::VK_GOT_PCREL;
+ RefKind = PPC::S_GOT_PCREL;
else if (MO.getTargetFlags() == PPCII::MO_TPREL_PCREL_FLAG)
- RefKind = PPCMCExpr::VK_TPREL;
+ RefKind = PPC::S_TPREL;
else if (MO.getTargetFlags() == PPCII::MO_GOT_TLSGD_PCREL_FLAG)
- RefKind = PPCMCExpr::VK_GOT_TLSGD_PCREL;
+ RefKind = PPC::S_GOT_TLSGD_PCREL;
else if (MO.getTargetFlags() == PPCII::MO_GOT_TLSLD_PCREL_FLAG)
- RefKind = PPCMCExpr::VK_GOT_TLSLD_PCREL;
+ RefKind = PPC::S_GOT_TLSLD_PCREL;
else if (MO.getTargetFlags() == PPCII::MO_GOT_TPREL_PCREL_FLAG)
- RefKind = PPCMCExpr::VK_GOT_TPREL_PCREL;
+ RefKind = PPC::S_GOT_TPREL_PCREL;
else if (MO.getTargetFlags() == PPCII::MO_TPREL_FLAG ||
MO.getTargetFlags() == PPCII::MO_TLSLD_FLAG) {
assert(MO.isGlobal() && "Only expecting a global MachineOperand here!");
@@ -110,14 +110,14 @@ static MCOperand GetSymbolRef(const MachineOperand &MO, const MCSymbol *Symbol,
// the relocation type in case the result is used for purposes other than a
// TOC reference. In TOC reference cases, this result is discarded.
if (Model == TLSModel::LocalExec)
- RefKind = PPCMCExpr::VK_AIX_TLSLE;
+ RefKind = PPC::S_AIX_TLSLE;
else if (Model == TLSModel::LocalDynamic &&
FuncInfo->isAIXFuncUseTLSIEForLD())
// On AIX, TLS model opt may have turned local-dynamic accesses into
// initial-exec accesses.
- RefKind = PPCMCExpr::VK_AIX_TLSIE;
+ RefKind = PPC::S_AIX_TLSIE;
else if (Model == TLSModel::LocalDynamic)
- RefKind = PPCMCExpr::VK_AIX_TLSLD;
+ RefKind = PPC::S_AIX_TLSLD;
}
const Module *M = MF->getFunction().getParent();
@@ -130,10 +130,10 @@ static MCOperand GetSymbolRef(const MachineOperand &MO, const MCSymbol *Symbol,
if (MIOpcode == PPC::TAILB || MIOpcode == PPC::TAILB8 ||
MIOpcode == PPC::TCRETURNdi || MIOpcode == PPC::TCRETURNdi8 ||
MIOpcode == PPC::BL8_NOTOC || MIOpcode == PPC::BL8_NOTOC_RM) {
- RefKind = PPCMCExpr::VK_NOTOC;
+ RefKind = PPC::S_NOTOC;
}
if (MO.getTargetFlags() == PPCII::MO_PCREL_OPT_FLAG)
- RefKind = PPCMCExpr::VK_PCREL_OPT;
+ RefKind = PPC::S_PCREL_OPT;
}
const MCExpr *Expr = MCSymbolRefExpr::create(
@@ -164,11 +164,11 @@ static MCOperand GetSymbolRef(const MachineOperand &MO, const MCSymbol *Symbol,
switch (access) {
case PPCII::MO_LO:
case PPCII::MO_PIC_LO_FLAG:
- Expr = PPCMCExpr::createLo(Expr, Ctx);
+ Expr = PPCMCExpr::create(Expr, PPC::S_LO, Ctx);
break;
case PPCII::MO_HA:
case PPCII::MO_PIC_HA_FLAG:
- Expr = PPCMCExpr::createHa(Expr, Ctx);
+ Expr = PPCMCExpr::create(Expr, PPC::S_HA, Ctx);
break;
}
diff --git a/llvm/lib/Target/PowerPC/PPCTargetObjectFile.cpp b/llvm/lib/Target/PowerPC/PPCTargetObjectFile.cpp
index 078f4b1effbb1..29e4286cf4ada 100644
--- a/llvm/lib/Target/PowerPC/PPCTargetObjectFile.cpp
+++ b/llvm/lib/Target/PowerPC/PPCTargetObjectFile.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
#include "PPCTargetObjectFile.h"
-#include "MCTargetDesc/PPCMCExpr.h"
+#include "MCTargetDesc/PPCMCAsmInfo.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
@@ -49,8 +49,8 @@ MCSection *PPC64LinuxTargetObjectFile::SelectSectionForGlobal(
const MCExpr *PPC64LinuxTargetObjectFile::
getDebugThreadLocalSymbol(const MCSymbol *Sym) const {
- const MCExpr *Expr = MCSymbolRefExpr::create(
- Sym, MCSymbolRefExpr::VariantKind(PPCMCExpr::VK_DTPREL), getContext());
+ const MCExpr *Expr =
+ MCSymbolRefExpr::create(Sym, PPC::S_DTPREL, getContext());
return MCBinaryExpr::createAdd(Expr,
MCConstantExpr::create(0x8000, getContext()),
getContext());
More information about the llvm-commits
mailing list