summaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86InstrCompiler.td
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2011-01-18 01:37:20 +0000
committerEric Christopher <echristo@apple.com>2011-01-18 01:37:20 +0000
commitcdfe3c359b1c6003aca559d7a3d3b15168c419d4 (patch)
treea82516eff2572cd7c7c2a0e7dd4ba6e967e6b5f1 /lib/Target/X86/X86InstrCompiler.td
parent32899199c043269b4dfab7f0429cc946e67bd54d (diff)
downloadllvm-cdfe3c359b1c6003aca559d7a3d3b15168c419d4.tar.gz
llvm-cdfe3c359b1c6003aca559d7a3d3b15168c419d4.tar.bz2
llvm-cdfe3c359b1c6003aca559d7a3d3b15168c419d4.tar.xz
The stub routine that we're calling uses test and so clobbers
the flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123712 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrCompiler.td')
-rw-r--r--lib/Target/X86/X86InstrCompiler.td4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/Target/X86/X86InstrCompiler.td b/lib/Target/X86/X86InstrCompiler.td
index da5e05a5d7..4f60de0faf 100644
--- a/lib/Target/X86/X86InstrCompiler.td
+++ b/lib/Target/X86/X86InstrCompiler.td
@@ -283,7 +283,7 @@ def TLS_addr64 : I<0, Pseudo, (outs), (ins i64mem:$sym),
// For i386, the address of the thunk is passed on the stack, on return the
// address of the variable is in %eax. %ecx is trashed during the function
// call. All other registers are preserved.
-let Defs = [EAX, ECX],
+let Defs = [EAX, ECX, EFLAGS],
Uses = [ESP],
usesCustomInserter = 1 in
def TLSCall_32 : I<0, Pseudo, (outs), (ins i32mem:$sym),
@@ -293,7 +293,7 @@ def TLSCall_32 : I<0, Pseudo, (outs), (ins i32mem:$sym),
// For x86_64, the address of the thunk is passed in %rdi, on return
// the address of the variable is in %rax. All other registers are preserved.
-let Defs = [RAX],
+let Defs = [RAX, EFLAGS],
Uses = [RSP, RDI],
usesCustomInserter = 1 in
def TLSCall_64 : I<0, Pseudo, (outs), (ins i64mem:$sym),