Stop attempting to move PSPSym during localloc for arm32/arm64
authorBruce Forstall <Bruce_Forstall@msn.com>
Mon, 22 Oct 2018 23:13:07 +0000 (16:13 -0700)
committerBruce Forstall <Bruce_Forstall@msn.com>
Thu, 25 Oct 2018 23:25:07 +0000 (16:25 -0700)
commit9d3e0fa6d9231095a6ec44c7fe1791895b21be1a
treefa5d85f599347b73d4b0e8cda135a4e10d46118e
parent9fdea7f2c2b9184345a0bbf526ae540d5fd4a1bf
Stop attempting to move PSPSym during localloc for arm32/arm64

For arm64, this was creating a data corruption possibility, as the
calculations were done wrong.

In neither case was it necessary, as in the main function we always
access the PSPSym FP-relative, so when writing back the PSPSym, we
were always writing to exactly the same slot; nothing was actually
moving.

I can't recall or figure out why we were moving it in the first place,
or what might have changed.

Added a new variant of the localloc eh tests that has outgoing arguments,
to exercise the case where we need to re-establish the outgoing argument
space after the localloc.

Commit migrated from https://github.com/dotnet/coreclr/commit/ada55ba08723fa2e0b2133291f2ee85820bbb75b
src/coreclr/src/jit/codegenarm.cpp
src/coreclr/src/jit/codegenarm64.cpp
src/coreclr/src/jit/lsraarm.cpp
src/coreclr/src/jit/lsraarm64.cpp
src/coreclr/tests/src/JIT/jit64/localloc/eh/eh05.cs [new file with mode: 0644]
src/coreclr/tests/src/JIT/jit64/localloc/eh/eh05_dynamic.csproj [new file with mode: 0644]
src/coreclr/tests/src/JIT/jit64/localloc/eh/eh05_large.csproj [new file with mode: 0644]
src/coreclr/tests/src/JIT/jit64/localloc/eh/eh05_small.csproj [new file with mode: 0644]