From 3f1804543d5021ea0cae4d46090e3a1ece96a7ba Mon Sep 17 00:00:00 2001 From: Steve MacLean Date: Thu, 18 Jul 2019 11:39:01 -0400 Subject: Arm64 : Fix ldr Dt/St emulation (#25729) --- src/debug/ee/arm64/arm64walker.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/debug/ee/arm64/arm64walker.cpp b/src/debug/ee/arm64/arm64walker.cpp index b38297b3ec..398d326e8a 100644 --- a/src/debug/ee/arm64/arm64walker.cpp +++ b/src/debug/ee/arm64/arm64walker.cpp @@ -200,12 +200,15 @@ BYTE* NativeWalker::SetupOrSimulateInstructionForPatchSkip(T_CONTEXT * context, switch (opc) { case 0: //4byte data into St - RegContents = 0xFFFFFFFF & RegContents; //zero the upper 32bit - SetReg(context, RegNum, RegContents); + SimdRegContents.Low = 0xFFFFFFFF & RegContents; //zero the upper 32bit + SimdRegContents.High = 0; + SetSimdReg(context, RegNum, SimdRegContents); + break; case 1: //8byte data into Dt - SetReg(context, RegNum, RegContents); + SimdRegContents.Low = RegContents; + SimdRegContents.High = 0; + SetSimdReg(context, RegNum, SimdRegContents); break; - case 2: //SIMD 16 byte data SimdRegContents = GetSimdMem(ip); SetSimdReg(context, RegNum, SimdRegContents); -- cgit v1.2.3