summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-09-22 23:27:36 +0000
committerJim Grosbach <grosbach@apple.com>2010-09-22 23:27:36 +0000
commit85dcd3d0f4e9294d064bebc34224af93ab6ead5b (patch)
treee363b66aa9d4eef224d81690eaf0e07a88459847 /llvm/lib/MC
parent98d500b0241ca1ccb6746a5264bb071923f5b0c7 (diff)
downloadbcm5719-llvm-85dcd3d0f4e9294d064bebc34224af93ab6ead5b.tar.gz
bcm5719-llvm-85dcd3d0f4e9294d064bebc34224af93ab6ead5b.zip
Add support for ELF PLT references for ARM MC asm printing. Adding a
new VariantKind to the MCSymbolExpr seems like overkill, but I'm not sure there's a more straightforward way to get the printing difference captured. (i.e., x86 uses @PLT, ARM uses (PLT)). llvm-svn: 114613
Diffstat (limited to 'llvm/lib/MC')
-rw-r--r--llvm/lib/MC/MCExpr.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/MC/MCExpr.cpp b/llvm/lib/MC/MCExpr.cpp
index 343f3347523..ddd82f3f622 100644
--- a/llvm/lib/MC/MCExpr.cpp
+++ b/llvm/lib/MC/MCExpr.cpp
@@ -50,9 +50,11 @@ void MCExpr::print(raw_ostream &OS) const {
else
OS << Sym;
- if (SRE.getKind() != MCSymbolRefExpr::VK_None &&
- SRE.getKind() != MCSymbolRefExpr::VK_ARM_HI16 &&
- SRE.getKind() != MCSymbolRefExpr::VK_ARM_LO16)
+ if (SRE.getKind() == MCSymbolRefExpr::VK_ARM_PLT)
+ OS << MCSymbolRefExpr::getVariantKindName(SRE.getKind());
+ else if (SRE.getKind() != MCSymbolRefExpr::VK_None &&
+ SRE.getKind() != MCSymbolRefExpr::VK_ARM_HI16 &&
+ SRE.getKind() != MCSymbolRefExpr::VK_ARM_LO16)
OS << '@' << MCSymbolRefExpr::getVariantKindName(SRE.getKind());
return;
@@ -177,6 +179,7 @@ StringRef MCSymbolRefExpr::getVariantKindName(VariantKind Kind) {
case VK_TPOFF: return "TPOFF";
case VK_ARM_HI16: return ":upper16:";
case VK_ARM_LO16: return ":lower16:";
+ case VK_ARM_PLT: return "(PLT)";
case VK_TLVP: return "TLVP";
}
}
OpenPOWER on IntegriCloud