[llvm-commits] CVS: llvm/lib/Target/X86/X86InstrInfo.td

Lauro Ramos Venancio lauro.venancio at gmail.com
Sun Apr 22 18:28:28 PDT 2007



Changes in directory llvm/lib/Target/X86:

X86InstrInfo.td updated: 1.304 -> 1.305
---
Log message:

X86 TLS: optimize the implementation of "local exec" model.


---
Diffs of the changes:  (+10 -3)

 X86InstrInfo.td |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)


Index: llvm/lib/Target/X86/X86InstrInfo.td
diff -u llvm/lib/Target/X86/X86InstrInfo.td:1.304 llvm/lib/Target/X86/X86InstrInfo.td:1.305
--- llvm/lib/Target/X86/X86InstrInfo.td:1.304	Sun Apr 22 17:50:52 2007
+++ llvm/lib/Target/X86/X86InstrInfo.td	Sun Apr 22 20:28:10 2007
@@ -2467,9 +2467,15 @@
                Imp<[EBX],[]>;
 
 let AddedComplexity = 10 in
-def TLS_gs : I<0, Pseudo, (ops GR32:$dst, GR32:$src),
-               "movl %gs:($src), $dst",
-               [(set GR32:$dst, (load (add X86TLStp, GR32:$src)))]>;
+def TLS_gs_rr : I<0, Pseudo, (ops GR32:$dst, GR32:$src),
+                  "movl %gs:($src), $dst",
+                  [(set GR32:$dst, (load (add X86TLStp, GR32:$src)))]>;
+
+let AddedComplexity = 15 in
+def TLS_gs_ri : I<0, Pseudo, (ops GR32:$dst, i32imm:$src),
+                  "movl %gs:${src:mem}, $dst",
+                  [(set GR32:$dst,
+                    (load (add X86TLStp, (X86Wrapper tglobaltlsaddr:$src))))]>;
 
 def TLS_tp : I<0, Pseudo, (ops GR32:$dst),
                "movl %gs:0, $dst",
@@ -2491,6 +2497,7 @@
 // ConstantPool GlobalAddress, ExternalSymbol, and JumpTable
 def : Pat<(i32 (X86Wrapper tconstpool  :$dst)), (MOV32ri tconstpool  :$dst)>;
 def : Pat<(i32 (X86Wrapper tjumptable  :$dst)), (MOV32ri tjumptable  :$dst)>;
+def : Pat<(i32 (X86Wrapper tglobaltlsaddr:$dst)), (MOV32ri tglobaltlsaddr:$dst)>;
 def : Pat<(i32 (X86Wrapper tglobaladdr :$dst)), (MOV32ri tglobaladdr :$dst)>;
 def : Pat<(i32 (X86Wrapper texternalsym:$dst)), (MOV32ri texternalsym:$dst)>;
 






More information about the llvm-commits mailing list