From a9639dd6053f1e7de915c29851cc1be45ed537d0 Mon Sep 17 00:00:00 2001 From: Martin Storsjo Date: Tue, 25 Aug 2020 20:01:30 +0300 Subject: [PATCH] ntdll: Capture vector registers in arm64 RtlCaptureContext. Since 5b3842451ba6 we set the flag indicating that the context contained float registers, but we didn't actually populate them yet. Signed-off-by: Martin Storsjo Signed-off-by: Alexandre Julliard --- dlls/ntdll/signal_arm64.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c index d0f8c875b8a..8d21c39f6ce 100644 --- a/dlls/ntdll/signal_arm64.c +++ b/dlls/ntdll/signal_arm64.c @@ -96,6 +96,22 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 8, "stp x29, x30, [x0, #0xf0]\n\t" /* context->Fp,Lr */ "mov x1, sp\n\t" "stp x1, x30, [x0, #0x100]\n\t" /* context->Sp,Pc */ + "stp q0, q1, [x0, #0x110]\n\t" /* context->V[0-1] */ + "stp q2, q3, [x0, #0x130]\n\t" /* context->V[2-3] */ + "stp q4, q5, [x0, #0x150]\n\t" /* context->V[4-5] */ + "stp q6, q7, [x0, #0x170]\n\t" /* context->V[6-7] */ + "stp q8, q9, [x0, #0x190]\n\t" /* context->V[8-9] */ + "stp q10, q11, [x0, #0x1a0]\n\t" /* context->V[10-11] */ + "stp q12, q13, [x0, #0x1c0]\n\t" /* context->V[12-13] */ + "stp q14, q15, [x0, #0x1e0]\n\t" /* context->V[14-15] */ + "stp q16, q17, [x0, #0x210]\n\t" /* context->V[16-17] */ + "stp q18, q19, [x0, #0x230]\n\t" /* context->V[18-19] */ + "stp q20, q21, [x0, #0x250]\n\t" /* context->V[20-21] */ + "stp q22, q23, [x0, #0x270]\n\t" /* context->V[22-23] */ + "stp q24, q25, [x0, #0x290]\n\t" /* context->V[24-25] */ + "stp q26, q27, [x0, #0x2a0]\n\t" /* context->V[26-27] */ + "stp q28, q29, [x0, #0x2c0]\n\t" /* context->V[28-29] */ + "stp q30, q31, [x0, #0x2e0]\n\t" /* context->V[30-31] */ "mov w1, #0x400000\n\t" /* CONTEXT_ARM64 */ "movk w1, #0x7\n\t" /* CONTEXT_FULL */ "str w1, [x0]\n\t" /* context->ContextFlags */