Cleanup hardware exception handling (dotnet/coreclr#5916)
authorJan Vorlicek <janvorli@microsoft.com>
Wed, 22 Jun 2016 12:26:17 +0000 (14:26 +0200)
committerJan Kotas <jkotas@microsoft.com>
Wed, 22 Jun 2016 12:26:17 +0000 (05:26 -0700)
commitdc525b064d37d0c8e52e67a4ada70aa2ffb14f64
tree927112d0f2c14719a503742378dab68c8eb868d6
parent9ce6767e164ab56439634085ad6e8311ca386d67
Cleanup hardware exception handling (dotnet/coreclr#5916)

Currently, we were checking for the exception address being in a marked jit
helper and unwinding to the caller context if it was there at two places.
Once in the HandleHardwareException to get context for the faulting exception
frame and once in DispatchManagedException to get the first managed frame.
This change modifies the code in HandleHardwareException to update the context
record in the exception itself so that we can leave out the same change in
the DispatchManagedException.
I have also added updating of the exception address in the exception record
so that the exception address is set to be in the managed caller of the helper.

Commit migrated from https://github.com/dotnet/coreclr/commit/3651e5f3da9f72cde9b50078023430839fee7037
src/coreclr/src/vm/exceptionhandling.cpp
src/coreclr/src/vm/exceptmacros.h