ARM64: Fix for handling GC register for call site
authorKyungwoo Lee <kyulee@microsoft.com>
Mon, 7 Mar 2016 16:49:10 +0000 (08:49 -0800)
committerKyungwoo Lee <kyulee@microsoft.com>
Mon, 7 Mar 2016 20:16:27 +0000 (12:16 -0800)
commit8f0d961723659849c1045ab6ed311924268abde3
tree42354b671e87ddcb37ffe64a4c7c2715c1e2dc5e
parent80a79485d8c8d1c13ba0b68c614face2a58352a6
ARM64: Fix for handling GC register for call site

This fixes https://github.com/dotnet/coreclr/issues/2731.
Looking at GC heap corruption, JIT incorrectly reports the live range of
GC references so GC swept the live objects.
The issue was when JIT emits call instruction, GC live register is not
processed at all, which JIT treated them as dead.
The fix is to implement this missing part for ARM64.

Commit migrated from https://github.com/dotnet/coreclr/commit/377a8c5d5743835d2d3cd86c456099bb83f35e80
src/coreclr/src/jit/emitinl.h
src/coreclr/src/jit/lowerarm64.cpp
src/coreclr/tests/arm64/Tests.lst