[PATCH] ntdll: Fix arm64 jump buffer float restoration

Martin Storsjo martin at martin.st
Tue Aug 25 11:53:58 CDT 2020


Fix a typo in copying fields from the jump buffer to the context,
use the right type of long in the struct.

Signed-off-by: Martin Storsjo <martin at martin.st>
---
 dlls/ntdll/signal_arm64.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c
index 4cdc6340fa..53f866acab 100644
--- a/dlls/ntdll/signal_arm64.c
+++ b/dlls/ntdll/signal_arm64.c
@@ -57,8 +57,8 @@ struct MSVCRT_JUMP_BUFFER
     unsigned __int64 Fp;
     unsigned __int64 Lr;
     unsigned __int64 Sp;
-    unsigned long Fpcr;
-    unsigned long Fpsr;
+    ULONG Fpcr;
+    ULONG Fpsr;
     double D[8];
 };
 
@@ -1039,7 +1039,7 @@ void CDECL RtlRestoreContext( CONTEXT *context, EXCEPTION_RECORD *rec )
         context->Fpsr    = jmp->Fpsr;
 
         for (i = 0; i < 8; i++)
-            context->V[8+i].D[0] = jmp->D[0];
+            context->V[8+i].D[0] = jmp->D[i];
     }
     else if (rec && rec->ExceptionCode == STATUS_UNWIND_CONSOLIDATE && rec->NumberParameters >= 1)
     {
-- 
2.17.1




More information about the wine-devel mailing list