Skip to content

Commit 4e37486

Browse files
committed
Make sure TCRETURNri64 not selected for win64
1 parent 54e6e58 commit 4e37486

File tree

2 files changed

+2
-1
lines changed

2 files changed

+2
-1
lines changed

llvm/lib/Target/X86/X86InstrCompiler.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1350,7 +1350,7 @@ def : Pat<(X86tcret (i32 texternalsym:$dst), timm:$off),
13501350

13511351
def : Pat<(X86tcret ptr_rc_tailcall:$dst, timm:$off),
13521352
(TCRETURNri64 ptr_rc_tailcall:$dst, timm:$off)>,
1353-
Requires<[In64BitMode, NotUseIndirectThunkCalls, ImportCallOptimizationDisabled]>;
1353+
Requires<[In64BitMode, IsNotWin64CCFunc, NotUseIndirectThunkCalls, ImportCallOptimizationDisabled]>;
13541354

13551355
def : Pat<(X86tcret GR64_TCW64:$dst, timm:$off),
13561356
(TCRETURN_WIN64ri GR64_TCW64:$dst, timm:$off)>,

llvm/lib/Target/X86/X86InstrPredicates.td

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@ let RecomputePerFunction = 1 in {
232232
def ImportCallOptimizationDisabled : Predicate<"!MF->getFunction().getParent()->getModuleFlag(\"import-call-optimization\")">;
233233

234234
def IsWin64CCFunc : Predicate<"Subtarget->isCallingConvWin64(MF->getFunction().getCallingConv())">;
235+
def IsNotWin64CCFunc : Predicate<"!Subtarget->isCallingConvWin64(MF->getFunction().getCallingConv())">;
235236
def IsHiPECCFunc : Predicate<"MF->getFunction().getCallingConv() == CallingConv::HiPE">;
236237

237238
def IsNotHiPECCFunc : Predicate<

0 commit comments

Comments
 (0)