[llvm] r185131 - Integrate Assembler: Support X86_64_DTPOFF64 relocations

David Blaikie dblaikie at gmail.com
Thu Jun 27 21:24:32 PDT 2013


Author: dblaikie
Date: Thu Jun 27 23:24:32 2013
New Revision: 185131

URL: http://llvm.org/viewvc/llvm-project?rev=185131&view=rev
Log:
Integrate Assembler: Support X86_64_DTPOFF64 relocations

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

Modified: llvm/trunk/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp?rev=185131&r1=185130&r2=185131&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp (original)
+++ llvm/trunk/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp Thu Jun 27 23:24:32 2013
@@ -101,7 +101,18 @@ unsigned X86ELFObjectWriter::GetRelocTyp
     } else {
       switch ((unsigned)Fixup.getKind()) {
       default: llvm_unreachable("invalid fixup kind!");
-      case FK_Data_8: Type = ELF::R_X86_64_64; break;
+      case FK_Data_8:
+        switch (Modifier) {
+        default:
+          llvm_unreachable("Unimplemented");
+        case MCSymbolRefExpr::VK_None:
+          Type = ELF::R_X86_64_64;
+          break;
+        case MCSymbolRefExpr::VK_DTPOFF:
+          Type = ELF::R_X86_64_DTPOFF64;
+          break;
+        }
+        break;
       case X86::reloc_signed_4byte:
         switch (Modifier) {
         default:

Modified: llvm/trunk/test/MC/ELF/relocation.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/relocation.s?rev=185131&r1=185130&r2=185131&view=diff
==============================================================================
--- llvm/trunk/test/MC/ELF/relocation.s (original)
+++ llvm/trunk/test/MC/ELF/relocation.s Thu Jun 27 23:24:32 2013
@@ -18,7 +18,7 @@ bar:
         movq	foo(%rip), %rdx
         leaq    foo-bar(%r14),%r14
         addq	$bar,%rax         # R_X86_64_32S
-
+	.quad	foo at DTPOFF
 
 // CHECK:        Section {
 // CHECK:          Name: .rela.text
@@ -38,6 +38,7 @@ bar:
 // CHECK-NEXT:       0x55 R_X86_64_PC32     foo 0xFFFFFFFFFFFFFFFC
 // CHECK-NEXT:       0x5C R_X86_64_PC32     foo 0x5C
 // CHECK-NEXT:       0x63 R_X86_64_32S      .text 0x0
+// CHECK-NEXT:       0x67 R_X86_64_DTPOFF64 foo 0x0
 // CHECK-NEXT:     ]
 // CHECK-NEXT:   }
 





More information about the llvm-commits mailing list