summaryrefslogtreecommitdiff
path: root/src/vm/arm
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/arm
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/arm')
-rw-r--r--src/vm/arm/stubs.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/vm/arm/stubs.cpp b/src/vm/arm/stubs.cpp
index f2500c302e..7e5b58c54b 100644
--- a/src/vm/arm/stubs.cpp
+++ b/src/vm/arm/stubs.cpp
@@ -2483,12 +2483,22 @@ void UMEntryThunkCode::Encode(BYTE* pTargetCode, void* pvSecretParam)
FlushInstructionCache(GetCurrentProcess(),&m_code,sizeof(m_code));
}
+#ifndef DACCESS_COMPILE
+
void UMEntryThunkCode::Poison()
{
- // Insert 'udf 0xff' at the entry point
- m_code[0] = 0xdeff;
+ m_pTargetCode = (TADDR)UMEntryThunk::ReportViolation;
+
+ // ldr r0, [pc + 8]
+ m_code[0] = 0x4802;
+ // nop
+ m_code[1] = 0xbf00;
+
+ ClrFlushInstructionCache(&m_code,sizeof(m_code));
}
+#endif // DACCESS_COMPILE
+
///////////////////////////// UNIMPLEMENTED //////////////////////////////////
#ifndef DACCESS_COMPILE