summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86FastISel.cpp
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2016-07-15 20:18:37 +0000
committerNico Weber <nicolasweber@gmx.de>2016-07-15 20:18:37 +0000
commit8d66df15f4b57357819426a8bce67e9332cf9c9a (patch)
tree57776b6551587b7ffd6f685c48ab6b7841435430 /llvm/lib/Target/X86/X86FastISel.cpp
parent6c715e1483cc2a21dd9d2076107d07b544538c89 (diff)
downloadbcm5719-llvm-8d66df15f4b57357819426a8bce67e9332cf9c9a.tar.gz
bcm5719-llvm-8d66df15f4b57357819426a8bce67e9332cf9c9a.zip
Teach fast isel about the win64 calling convention.
This mostly just works. Vectorcall rets are still not supported. The win64_eh test change is because fast isel doesn't use rsi for temporary computations, so it doesn't need to be pushed. The test case I'm changing was originally added to test pushes, but by now there are other test cases in that file exercising that code path. https://reviews.llvm.org/D22422 llvm-svn: 275607
Diffstat (limited to 'llvm/lib/Target/X86/X86FastISel.cpp')
-rw-r--r--llvm/lib/Target/X86/X86FastISel.cpp6
1 files changed, 2 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/X86FastISel.cpp b/llvm/lib/Target/X86/X86FastISel.cpp
index fae45276914..dfe3c80be21 100644
--- a/llvm/lib/Target/X86/X86FastISel.cpp
+++ b/llvm/lib/Target/X86/X86FastISel.cpp
@@ -1153,10 +1153,8 @@ bool X86FastISel::X86SelectRet(const Instruction *I) {
CC != CallingConv::X86_FastCall &&
CC != CallingConv::X86_StdCall &&
CC != CallingConv::X86_ThisCall &&
- CC != CallingConv::X86_64_SysV)
- return false;
-
- if (Subtarget->isCallingConvWin64(CC))
+ CC != CallingConv::X86_64_SysV &&
+ CC != CallingConv::X86_64_Win64)
return false;
// Don't handle popping bytes if they don't fit the ret's immediate.
OpenPOWER on IntegriCloud