diff options
author | Jonghyun Park <parjong@gmail.com> | 2016-06-01 19:19:55 +0900 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2016-06-01 03:19:55 -0700 |
commit | a027256a9491ad003cfd9cbd263397228ee2eefb (patch) | |
tree | cef3a0a4ae05119ab25474e02a0f19326af35b6b | |
parent | a123c3972c447c8bcfa1810fde0c7ffb842fa31b (diff) | |
download | coreclr-a027256a9491ad003cfd9cbd263397228ee2eefb.tar.gz coreclr-a027256a9491ad003cfd9cbd263397228ee2eefb.tar.bz2 coreclr-a027256a9491ad003cfd9cbd263397228ee2eefb.zip |
Fix JIT PInvoke Check Failure on Linux/ARM (#5322)
Disable SP check on ARM
-rw-r--r-- | src/jit/codegenlegacy.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/jit/codegenlegacy.cpp b/src/jit/codegenlegacy.cpp index 6bdcf56c50..5939557b68 100644 --- a/src/jit/codegenlegacy.cpp +++ b/src/jit/codegenlegacy.cpp @@ -20371,13 +20371,13 @@ regMaskTP CodeGen::genCodeForCall(GenTreePtr call, { genDefineTempLabel(returnLabel); +#ifdef _TARGET_X86_ if (getInlinePInvokeCheckEnabled()) { noway_assert(compiler->lvaInlinedPInvokeFrameVar != BAD_VAR_NUM); BasicBlock * esp_check; CORINFO_EE_INFO * pInfo = compiler->eeGetEEInfo(); - /* mov ecx, dword ptr [frame.callSiteTracker] */ getEmitter()->emitIns_R_S (INS_mov, @@ -20394,15 +20394,14 @@ regMaskTP CodeGen::genCodeForCall(GenTreePtr call, if (argSize) { getEmitter()->emitIns_R_I (INS_add, - EA_4BYTE, + EA_PTRSIZE, REG_ARG_0, argSize); } } - /* cmp ecx, esp */ - getEmitter()->emitIns_R_R(INS_cmp, EA_4BYTE, REG_ARG_0, REG_SPBASE); + getEmitter()->emitIns_R_R(INS_cmp, EA_PTRSIZE, REG_ARG_0, REG_SPBASE); esp_check = genCreateTempLabel(); @@ -20415,6 +20414,7 @@ regMaskTP CodeGen::genCodeForCall(GenTreePtr call, genDefineTempLabel(esp_check); } +#endif } /* Are we supposed to pop the arguments? */ |