Use full move for byte registers stores in jumps. (dotnet/coreclr#11570)
authorSergey Andreenko <seandree@microsoft.com>
Mon, 15 May 2017 23:42:18 +0000 (16:42 -0700)
committerGitHub <noreply@github.com>
Mon, 15 May 2017 23:42:18 +0000 (16:42 -0700)
commit978117541b0ec7f566c292d3fc9511acb996a973
tree5d61547cb6b20e5f3b6dcf48f855f7f368435c1c
parentb5ab0641e6e7d75dc6e105b2fc33a983e1914f33
Use full move for byte registers stores in jumps. (dotnet/coreclr#11570)

* Use the 4-byte move for jump spilling.
The other types of spilling already use the proper move:
1) for lsra spilling it always use 4-byte move because we allocate 4-byte slots;
2) for other types it sets needsByteReg and lsra chooses correct register;

We do not apply the second approach to fixing this issue because jmp doesn't
have real uses, that can keep this requirement on. Also, it creates more strict
restrictions, that we need.

Commit migrated from https://github.com/dotnet/coreclr/commit/81baf0a53fdc3cae247dd80ebc1e8f54e7ad54fa
src/coreclr/src/jit/codegenxarch.cpp
src/coreclr/src/jit/emitxarch.cpp
src/coreclr/src/jit/lclvars.cpp