diff options
author | Jiyoung Yun <jy910.yun@samsung.com> | 2017-06-13 18:47:36 +0900 |
---|---|---|
committer | Jiyoung Yun <jy910.yun@samsung.com> | 2017-06-13 18:47:36 +0900 |
commit | 61d6a817e39d3bae0f47dbc09838d51db22a5d30 (patch) | |
tree | cb37caa1784bc738b976273335d6ed04a7cc80b0 /src/vm/precode.cpp | |
parent | 5b975f8233e8c8d17b215372f89ca713b45d6a0b (diff) | |
download | coreclr-61d6a817e39d3bae0f47dbc09838d51db22a5d30.tar.gz coreclr-61d6a817e39d3bae0f47dbc09838d51db22a5d30.tar.bz2 coreclr-61d6a817e39d3bae0f47dbc09838d51db22a5d30.zip |
Imported Upstream version 2.0.0.11992upstream/2.0.0.11992
Diffstat (limited to 'src/vm/precode.cpp')
-rw-r--r-- | src/vm/precode.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/vm/precode.cpp b/src/vm/precode.cpp index 9707b2756b..1daf6e32b8 100644 --- a/src/vm/precode.cpp +++ b/src/vm/precode.cpp @@ -525,6 +525,16 @@ TADDR Precode::AllocateTemporaryEntryPoints(MethodDescChunk * pChunk, // Note that these are just best guesses to save memory. If we guessed wrong, // we will allocate a new exact type of precode in GetOrCreatePrecode. BOOL fForcedPrecode = pFirstMD->RequiresStableEntryPoint(count > 1); + +#ifdef _TARGET_ARM_ + if (pFirstMD->RequiresMethodDescCallingConvention(count > 1) + || count >= MethodDescChunk::GetCompactEntryPointMaxCount ()) + { + // We do not pass method desc on scratch register + fForcedPrecode = TRUE; + } +#endif // _TARGET_ARM_ + if (!fForcedPrecode && (totalSize > MethodDescChunk::SizeOfCompactEntryPoints(count))) return NULL; #endif |