Martin Storsjo : ntdll: Capture vector registers in arm64 RtlCaptureContext.

Alexandre Julliard julliard at winehq.org
Tue Aug 25 16:16:58 CDT 2020


Module: wine
Branch: master
Commit: a9639dd6053f1e7de915c29851cc1be45ed537d0
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=a9639dd6053f1e7de915c29851cc1be45ed537d0

Author: Martin Storsjo <martin at martin.st>
Date:   Tue Aug 25 20:01:30 2020 +0300

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 <martin at martin.st>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 d0f8c875b8..8d21c39f6c 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 */




More information about the wine-cvs mailing list