Fix `genFreeLclFrame` for arm32 when using CIL jmp. (#369)
authorSergey Andreenko <seandree@microsoft.com>
Tue, 3 Dec 2019 18:12:39 +0000 (10:12 -0800)
committerGitHub <noreply@github.com>
Tue, 3 Dec 2019 18:12:39 +0000 (10:12 -0800)
commit2dd930129c1410bd7ee43e2dc549af435af51515
tree1fea887bd801d1a1f1ef30d97e93d95ec21766d8
parenteb2451cef000bc93b6b1e23dbe5f7789af590467
Fix `genFreeLclFrame` for arm32 when using CIL jmp. (#369)

* Add a repro test.

* Fix `genJmpCallArgMask` for multireg arguments.

* Start actually using result of `genJmpCallArgMask`.

* GC

* Add a comment about `intRegState.rsCalleeRegArgMaskLiveIn`.

* always use `REG_R12` as our temp reg.`

Only one statement can be true:
1) There are cases where R12 can't be used and these cases were missed in the previous version, because we never excluded it from `grabMask`. That means the previous version had a bug;
2) R12 is always available and can always be used as a temp here.

* GC.

* add more info about the test failure.

* Update the header.
src/coreclr/src/jit/codegen.h
src/coreclr/src/jit/codegencommon.cpp
src/coreclr/src/jit/target.h
src/coreclr/tests/src/JIT/Regression/JitBlue/GitHub_27678/GitHub_27678.il [new file with mode: 0644]
src/coreclr/tests/src/JIT/Regression/JitBlue/GitHub_27678/GitHub_27678.ilproj [new file with mode: 0644]