diff options
author | Konstantin Baladurin <k.baladurin@partner.samsung.com> | 2018-01-10 18:26:01 +0300 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2018-01-12 12:40:37 -0800 |
commit | 28839fc0b2dcaf89b7217741291c8c3f578f38a0 (patch) | |
tree | bbe2e02062a711975fec9c5a0e12dd8d35d4f344 /src/vm/arm64 | |
parent | f2ef496c87c7ba66f54390d9b5cc08f863183b2f (diff) | |
download | coreclr-28839fc0b2dcaf89b7217741291c8c3f578f38a0.tar.gz coreclr-28839fc0b2dcaf89b7217741291c8c3f578f38a0.tar.bz2 coreclr-28839fc0b2dcaf89b7217741291c8c3f578f38a0.zip |
Improve UMEntryThunkCode::Poison method.
Improve UMEntryThunkCode::Poison to produce diagnostic message
when collected delegate was called.
Diffstat (limited to 'src/vm/arm64')
-rw-r--r-- | src/vm/arm64/stubs.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/vm/arm64/stubs.cpp b/src/vm/arm64/stubs.cpp index 3c56c382ea..3d4213bea1 100644 --- a/src/vm/arm64/stubs.cpp +++ b/src/vm/arm64/stubs.cpp @@ -1268,12 +1268,20 @@ void UMEntryThunkCode::Encode(BYTE* pTargetCode, void* pvSecretParam) FlushInstructionCache(GetCurrentProcess(),&m_code,sizeof(m_code)); } +#ifndef DACCESS_COMPILE + void UMEntryThunkCode::Poison() { - // Insert 'brk 0xbe' at the entry point - m_code[0] = 0xd42017c0; + m_pTargetCode = (TADDR)UMEntryThunk::ReportViolation; + + // ldp x16, x0, [x12] + m_code[1] = 0xd42017c0; + + ClrFlushInstructionCache(&m_code,sizeof(m_code)); } +#endif // DACCESS_COMPILE + #ifdef PROFILING_SUPPORTED #include "proftoeeinterfaceimpl.h" |