ARM: call compRsvdRegCheck later
authorCarol Eidt <carol.eidt@microsoft.com>
Tue, 20 Mar 2018 19:19:18 +0000 (12:19 -0700)
committerCarol Eidt <carol.eidt@microsoft.com>
Tue, 20 Mar 2018 22:21:32 +0000 (15:21 -0700)
commit0e07d01291a1cbce2c6699e722ae55c2d4cf99e1
treef369366692cf475258dd1734054805a285517d18
parentd6b2ead7f821e06b8e7bdc4a82812d1cfbc732ac
ARM: call compRsvdRegCheck later

For RyuJIT backend, the number of locals can change due to decomposition and lowering.
So, determine whether to reserve a register for accessing large state displacements just prior to register allocation.
This requires ensuring that the stack offset for promoted longs is fixed up, as for promoted reg structs on ARM64.
This is all a bit more difficult on LEGACY_BACKEND because the register allocator can change its mind about whether or not it's going to have a frame, so that is left as before.
src/jit/compiler.cpp
src/jit/lclvars.cpp
src/jit/lsra.cpp
tests/src/JIT/Regression/JitBlue/DevDiv_545504/DevDiv_545504.cs [new file with mode: 0644]
tests/src/JIT/Regression/JitBlue/DevDiv_545504/DevDiv_545504.csproj [new file with mode: 0644]