Arm64: Fix handling of IP0 & IP1
authorCarol Eidt <carol.eidt@microsoft.com>
Wed, 18 Jul 2018 20:41:59 +0000 (13:41 -0700)
committerCarol Eidt <carol.eidt@microsoft.com>
Wed, 18 Jul 2018 20:41:59 +0000 (13:41 -0700)
commit197783d400bdb315f937f600c798d783682c9f72
tree5f70158856616cff70df9e3282be106a60fae571
parent4f985c2ae58df83b7fd426fbb85cbba60ba9951b
Arm64: Fix handling of IP0 & IP1

These are sometimes mandated to be allocated to certain nodes, but they were not in the list of allocatable registers (REG_VAR_ORDER). This led to special handling in LSRA, which, it turns out, was incomplete. This resulted in failures for JitStressRegs=0x200.
Based on the discussion in dotnet/coreclr#14607, this adds IP0 to RBM_CALLEE_TRASH_NOGC, and fixes the REG_VAR_ORDER.

Fix dotnet/coreclr#14607, Fix dotnet/coreclr#16359, Fix dotnet/coreclr#17861

Commit migrated from https://github.com/dotnet/coreclr/commit/6e7e087daeba074c93ee1825d38246a18e276f04
src/coreclr/src/jit/codegenarmarch.cpp
src/coreclr/src/jit/lsra.cpp
src/coreclr/src/jit/target.h