summaryrefslogtreecommitdiff
path: root/src/vm/arm64/stubs.cpp
diff options
context:
space:
mode:
authorKonstantin Baladurin <k.baladurin@partner.samsung.com>2018-01-10 18:26:01 +0300
committerJan Kotas <jkotas@microsoft.com>2018-01-12 12:40:37 -0800
commit28839fc0b2dcaf89b7217741291c8c3f578f38a0 (patch)
treebbe2e02062a711975fec9c5a0e12dd8d35d4f344 /src/vm/arm64/stubs.cpp
parentf2ef496c87c7ba66f54390d9b5cc08f863183b2f (diff)
downloadcoreclr-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/stubs.cpp')
-rw-r--r--src/vm/arm64/stubs.cpp12
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"