[PATCH] D18885: [MC] support TLSDESC and TLSCALL / GNU2 tls dialect

Davide Italiano via llvm-commits llvm-commits at lists.llvm.org
Sat Apr 9 13:38:02 PDT 2016


This revision was automatically updated to reflect the committed changes.
Closed by commit rL265881: [MC] support TLSDESC and TLSCALL / GNU2 tls dialect (authored by davide).

Changed prior to commit:
  http://reviews.llvm.org/D18885?vs=52990&id=53155#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D18885

Files:
  llvm/trunk/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
  llvm/trunk/test/MC/ELF/relocation-tls.s

Index: llvm/trunk/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
===================================================================
--- llvm/trunk/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
+++ llvm/trunk/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
@@ -154,6 +154,10 @@
     case RT64_8:
       llvm_unreachable("Unimplemented");
     }
+  case MCSymbolRefExpr::VK_TLSCALL:
+    return ELF::R_X86_64_TLSDESC_CALL;
+  case MCSymbolRefExpr::VK_TLSDESC:
+    return ELF::R_X86_64_GOTPC32_TLSDESC;
   case MCSymbolRefExpr::VK_TLSGD:
     checkIs32(Ctx, Loc, Type);
     return ELF::R_X86_64_TLSGD;
Index: llvm/trunk/test/MC/ELF/relocation-tls.s
===================================================================
--- llvm/trunk/test/MC/ELF/relocation-tls.s
+++ llvm/trunk/test/MC/ELF/relocation-tls.s
@@ -0,0 +1,26 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr | FileCheck  %s
+
+// Test that we produce the correct relocation.
+
+        leaq    _ZL3ccc at TLSDESC(%rip), %rax
+        call    *_ZL3ccc at TLSCALL(%rax)
+        addq    %fs:0, %rax
+
+// CHECK: Section {
+// CHECK:   Index:
+// CHECK:   Name: .rela.text
+// CHECK-NEXT:   Type: SHT_RELA
+// CHECK-NEXT:   Flags [
+// CHECK-NEXT:   ]
+// CHECK-NEXT:   Address: 0x0
+// CHECK-NEXT:   Offset:
+// CHECK-NEXT:   Size:
+// CHECK-NEXT:   Link:
+// CHECK-NEXT:   Info:
+// CHECK-NEXT:   AddressAlignment: 8
+// CHECK-NEXT:   EntrySize: 24
+// CHECK-NEXT:   Relocations [
+// CHECK-NEXT:     0x3 R_X86_64_GOTPC32_TLSDESC _ZL3ccc 0xFFFFFFFFFFFFFFFC
+// CHECK-NEXT:     0x9 R_X86_64_TLSDESC_CALL _ZL3ccc 0x0
+// CHECK-NEXT:   ]
+// CHECK-NEXT: }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18885.53155.patch
Type: text/x-patch
Size: 1661 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160409/694990cd/attachment.bin>


More information about the llvm-commits mailing list