diff options
author | Jarret 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 |
commit | fa73c8747748a18a0a8a7ebbdf3d6ac6b81629c4 (patch) | |
tree | 437f226fd07e6cd0cdd5f35c5067bc52b219dc34 /src | |
parent | 19bf6548c784fcc5cdf778a8f3a5a3458444dd3d (diff) | |
download | coreclr-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.cpp | 8 |
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) { |