[arm64] Fix the saving/restoring of fp regs in exception filters, we were saving...
authorZoltan Varga <vargaz@gmail.com>
Fri, 10 Mar 2017 04:35:04 +0000 (23:35 -0500)
committerGitHub <noreply@github.com>
Fri, 10 Mar 2017 04:35:04 +0000 (23:35 -0500)
mono/mini/exceptions-arm64.c

index 211c2eee77cfb10cba1eca3d5d1a4638c1b5dae2..9bc79372897c88ad250ea57c5c863bc255a07228 100644 (file)
@@ -123,7 +123,7 @@ mono_arch_get_call_filter (MonoTrampInfo **info, gboolean aot)
        labels [0] = code;
        arm_cbzx (code, ARMREG_IP0, 0);
        for (i = 0; i < num_fregs; ++i)
-               arm_ldrfpx (code, ARMREG_D8 + i, ARMREG_R0, MONO_STRUCT_OFFSET (MonoContext, fregs) + (i * 8));
+               arm_ldrfpx (code, ARMREG_D8 + i, ARMREG_R0, MONO_STRUCT_OFFSET (MonoContext, fregs) + ((i + 8) * 8));
        mono_arm_patch (labels [0], code, MONO_R_ARM64_CBZ);
        /* Load fp */
        arm_ldrx (code, ARMREG_FP, ARMREG_R0, MONO_STRUCT_OFFSET (MonoContext, regs) + (ARMREG_FP * 8));