summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorDavide Italiano <davide@freebsd.org>2015-03-04 06:49:39 +0000
committerDavide Italiano <davide@freebsd.org>2015-03-04 06:49:39 +0000
commitfcae934c0305bcbbd1fe27aa414323bc24173343 (patch)
tree2920a02f6ae0bbfffc0e6a4e7a830e42c73a121a /llvm/lib
parent653236596af12b89fd3701f86b160a850ddcff21 (diff)
downloadbcm5719-llvm-fcae934c0305bcbbd1fe27aa414323bc24173343.tar.gz
bcm5719-llvm-fcae934c0305bcbbd1fe27aa414323bc24173343.zip
[MC][Target] Implement support for R_X86_64_SIZE{32,64}.
Differential Revision: D7990 Reviewed by: rafael, majnemer llvm-svn: 231216
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/MC/MCExpr.cpp2
-rw-r--r--llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp6
2 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCExpr.cpp b/llvm/lib/MC/MCExpr.cpp
index 709dc6b413e..049113cf5ab 100644
--- a/llvm/lib/MC/MCExpr.cpp
+++ b/llvm/lib/MC/MCExpr.cpp
@@ -192,6 +192,7 @@ StringRef MCSymbolRefExpr::getVariantKindName(VariantKind Kind) {
case VK_GOTPAGE: return "GOTPAGE";
case VK_GOTPAGEOFF: return "GOTPAGEOFF";
case VK_SECREL: return "SECREL32";
+ case VK_SIZE: return "SIZE";
case VK_WEAKREF: return "WEAKREF";
case VK_ARM_NONE: return "none";
case VK_ARM_TARGET1: return "target1";
@@ -311,6 +312,7 @@ MCSymbolRefExpr::getVariantKindForName(StringRef Name) {
.Case("gotpageoff", VK_GOTPAGEOFF)
.Case("imgrel", VK_COFF_IMGREL32)
.Case("secrel32", VK_SECREL)
+ .Case("size", VK_SIZE)
.Case("l", VK_PPC_LO)
.Case("h", VK_PPC_HI)
.Case("ha", VK_PPC_HA)
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
index e8b0b4c5826..569b811e5f4 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
@@ -123,6 +123,9 @@ unsigned X86ELFObjectWriter::GetRelocType(const MCValue &Target,
case MCSymbolRefExpr::VK_DTPOFF:
Type = ELF::R_X86_64_DTPOFF64;
break;
+ case MCSymbolRefExpr::VK_SIZE:
+ Type = ELF::R_X86_64_SIZE64;
+ break;
}
break;
case X86::reloc_signed_4byte:
@@ -144,6 +147,9 @@ unsigned X86ELFObjectWriter::GetRelocType(const MCValue &Target,
case MCSymbolRefExpr::VK_DTPOFF:
Type = ELF::R_X86_64_DTPOFF32;
break;
+ case MCSymbolRefExpr::VK_SIZE:
+ Type = ELF::R_X86_64_SIZE32;
+ break;
}
break;
case FK_Data_4:
OpenPOWER on IntegriCloud