[llvm-commits] [llvm] r158158 - in /llvm/trunk: lib/Target/X86/X86MCInstLower.cpp test/CodeGen/X86/tls-pic.ll

Hans Wennborg hans at chromium.org
Thu Jun 7 12:00:10 PDT 2012


On Thu, Jun 7, 2012 at 7:39 PM, Rafael Espindola
<rafael.espindola at gmail.com> wrote:
> 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)


Thanks for fixing!




More information about the llvm-commits mailing list