diff options
Diffstat (limited to 'src/vm/arm')
-rw-r--r-- | src/vm/arm/stubs.cpp | 14 |
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 |