summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJarret Shook <jashoo@microsoft.com>2019-07-18 21:07:08 -0700
committer이형주/Common Platform Lab(SR)/Staff Engineer/삼성전자 <leee.lee@samsung.com>2019-08-08 12:47:29 +0900
commitfa73c8747748a18a0a8a7ebbdf3d6ac6b81629c4 (patch)
tree437f226fd07e6cd0cdd5f35c5067bc52b219dc34 /src
parent19bf6548c784fcc5cdf778a8f3a5a3458444dd3d (diff)
downloadcoreclr-fa73c8747748a18a0a8a7ebbdf3d6ac6b81629c4.tar.gz
coreclr-fa73c8747748a18a0a8a7ebbdf3d6ac6b81629c4.tar.bz2
coreclr-fa73c8747748a18a0a8a7ebbdf3d6ac6b81629c4.zip
Fail to explicitly tail call on x86 unix. (#25032)
* Fail to explicitly tail call on x86 unix. * Correctly return 100 * Correct return value * Add noway assert in morphTailCall to avoid morphing slow tail calls on unix. * Address feedback
Diffstat (limited to 'src')
-rw-r--r--src/jit/morph.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/jit/morph.cpp b/src/jit/morph.cpp
index c087fb069f..5450b4396c 100644
--- a/src/jit/morph.cpp
+++ b/src/jit/morph.cpp
@@ -7351,6 +7351,10 @@ bool Compiler::fgCanFastTailCall(GenTreeCall* callee)
*/
void Compiler::fgMorphTailCall(GenTreeCall* call, void* pfnCopyArgs)
{
+#if defined(_TARGET_UNIX_)
+ noway_assert(!"Slow tail calls not supported on non-Windows platforms.");
+#endif
+
JITDUMP("fgMorphTailCall (before):\n");
DISPTREE(call);
@@ -8275,7 +8279,7 @@ GenTree* Compiler::fgMorphCall(GenTreeCall* call)
}
void* pfnCopyArgs = nullptr;
-#if !defined(_TARGET_X86_)
+#if !defined(_TARGET_X86_) || defined(_TARGET_UNIX_)
if (!canFastTailCall && szFailReason == nullptr)
{
pfnCopyArgs =
@@ -8295,7 +8299,7 @@ GenTree* Compiler::fgMorphCall(GenTreeCall* call)
}
}
}
-#endif // !_TARGET_X86_
+#endif // !defined(_TARGET_X86_) || defined(_TARGET_UNIX_)
if (szFailReason != nullptr)
{