Arm64 restore d8-d15 in ThrowExceptionFromContextInternal (#25743)
authorSteve MacLean <Steve.MacLean@microsoft.com>
Thu, 18 Jul 2019 15:37:37 +0000 (11:37 -0400)
committerSteve MacLean <Steve.MacLean@Microsoft.com>
Thu, 18 Jul 2019 19:04:13 +0000 (15:04 -0400)
src/pal/src/arch/arm64/exceptionhelper.S

index c4499fb..93c9af1 100644 (file)
@@ -31,6 +31,18 @@ LEAF_ENTRY ThrowExceptionFromContextInternal, _TEXT
     ldp x26,x27, [x0, #(CONTEXT_X26)]
     ldp x28,fp,  [x0, #(CONTEXT_X28)]
     ldr lr,      [x0, #(CONTEXT_Pc)]
+
+    // Restore the lower 64 bits of v8-v15
+    add x2, x0,  CONTEXT_NEON_OFFSET
+    ldr d8,      [x2, #(CONTEXT_V8 )]
+    ldr d9,      [x2, #(CONTEXT_V9 )]
+    ldr d10,     [x2, #(CONTEXT_V10)]
+    ldr d11,     [x2, #(CONTEXT_V11)]
+    ldr d12,     [x2, #(CONTEXT_V12)]
+    ldr d13,     [x2, #(CONTEXT_V13)]
+    ldr d14,     [x2, #(CONTEXT_V14)]
+    ldr d15,     [x2, #(CONTEXT_V15)]
+
     ldr x2,      [x0, #(CONTEXT_Sp)]
     mov sp, x2