JIT: fix spill logic for local structs (#797)
authorAndy Ayers <andya@microsoft.com>
Fri, 13 Dec 2019 00:27:53 +0000 (16:27 -0800)
committerGitHub <noreply@github.com>
Fri, 13 Dec 2019 00:27:53 +0000 (16:27 -0800)
commitb16cb60cfaa1bc581121c5e48f7d817e311fd305
tree5c7969bdc6dbc12a659d60f8da1b1eee4b78490b
parentd8f744dbd3ee9f3189a46e1886b63dc1a9fd5efc
JIT: fix spill logic for local structs (#797)

If we're appending an assignment whose LHS is is a location within a local
struct, we need to spill all references to that struct from the eval stack.

Update the existing logic for this to handle the case where the LHS is a field
of a local struct, and the field is updated by unusual means (here, `initobj`).

Fixes #764.
src/coreclr/src/jit/importer.cpp
src/coreclr/tests/src/JIT/Regression/JitBlue/Runtime_764/Runtime_764.cs [new file with mode: 0644]
src/coreclr/tests/src/JIT/Regression/JitBlue/Runtime_764/Runtime_764.csproj [new file with mode: 0644]