[llvm-commits] [llvm] r158158 - in /llvm/trunk: lib/Target/X86/X86MCInstLower.cpp test/CodeGen/X86/tls-pic.ll
Rafael Espindola
rafael.espindola at gmail.com
Thu Jun 7 11:39:19 PDT 2012
Author: rafael
Date: Thu Jun 7 13:39:19 2012
New Revision: 158158
URL: http://llvm.org/viewvc/llvm-project?rev=158158&view=rev
Log:
Use a base register instead of an index register with the local dynamic model.
Fixes pr13048.
Modified:
llvm/trunk/lib/Target/X86/X86MCInstLower.cpp
llvm/trunk/test/CodeGen/X86/tls-pic.ll
Modified: llvm/trunk/lib/Target/X86/X86MCInstLower.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86MCInstLower.cpp?rev=158158&r1=158157&r2=158158&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86MCInstLower.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86MCInstLower.cpp Thu Jun 7 13:39:19 2012
@@ -596,6 +596,14 @@
LEA.addOperand(MCOperand::CreateReg(0)); // index
LEA.addOperand(MCOperand::CreateExpr(symRef)); // disp
LEA.addOperand(MCOperand::CreateReg(0)); // seg
+ } else if (SRVK == MCSymbolRefExpr::VK_TLSLDM) {
+ LEA.setOpcode(X86::LEA32r);
+ LEA.addOperand(MCOperand::CreateReg(X86::EAX)); // dest
+ LEA.addOperand(MCOperand::CreateReg(X86::EBX)); // base
+ LEA.addOperand(MCOperand::CreateImm(1)); // scale
+ LEA.addOperand(MCOperand::CreateReg(0)); // index
+ LEA.addOperand(MCOperand::CreateExpr(symRef)); // disp
+ LEA.addOperand(MCOperand::CreateReg(0)); // seg
} else {
LEA.setOpcode(X86::LEA32r);
LEA.addOperand(MCOperand::CreateReg(X86::EAX)); // dest
Modified: llvm/trunk/test/CodeGen/X86/tls-pic.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/tls-pic.ll?rev=158158&r1=158157&r2=158158&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/tls-pic.ll (original)
+++ llvm/trunk/test/CodeGen/X86/tls-pic.ll Thu Jun 7 13:39:19 2012
@@ -75,7 +75,7 @@
}
; X32: f5:
-; X32: leal {{[jk]}}@TLSLDM
+; X32: leal {{[jk]}}@TLSLDM(%ebx)
; X32-NEXT: calll ___tls_get_addr at PLT
; X32-NEXT: movl {{[jk]}}@DTPOFF(%eax)
; X32-NEXT: addl {{[jk]}}@DTPOFF(%eax)
More information about the llvm-commits
mailing list