From c67bf9931fc860020a0e153f2a8f06bb00096065 Mon Sep 17 00:00:00 2001 From: Juan Sebastian Hoyos Ayala Date: Thu, 10 Dec 2020 12:01:28 -0800 Subject: [PATCH] Add intepretation of MOV ESP, EBX to unwindLazyState --- src/coreclr/vm/i386/gmsx86.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/coreclr/vm/i386/gmsx86.cpp b/src/coreclr/vm/i386/gmsx86.cpp index de27dca090e4fd..d1e265f6698351 100644 --- a/src/coreclr/vm/i386/gmsx86.cpp +++ b/src/coreclr/vm/i386/gmsx86.cpp @@ -827,6 +827,8 @@ void LazyMachState::unwindLazyState(LazyMachState* baseState, case 0x89: // MOV r/m, reg if (ip[1] == 0xEC) // MOV ESP, EBP goto mov_esp_ebp; + if (ip[1] == 0xDC) // MOV ESP, EBX + goto mov_esp_ebx; // FALL THROUGH case 0x18: // SBB r/m8, r8 @@ -932,6 +934,13 @@ void LazyMachState::unwindLazyState(LazyMachState* baseState, break; } + if (ip[1] == 0xE3) { // MOV ESP, EBX + mov_esp_ebx: + ESP = PTR_TADDR(lazyState->_ebx); + ip += 2; + break; + } + if ((ip[1] & 0xc7) == 0x4 && ip[2] == 0x24) // move reg, [esp] { if ( ip[1] == 0x1C ) { // MOV EBX, [ESP]