[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