- mono_amd64_throw_exception (dummy1, dummy2, dummy3, dummy4, dummy5, dummy6, (MonoObject*)ex, rip, rsp, rbx, rbp, r12, r13, r14, r15, rdi, rsi, rax, rcx, rdx, FALSE);
+ /* Negate the ip adjustment done in mono_amd64_throw_exception () */
+ rip += 1;
+
+ mono_amd64_throw_exception (dummy1, dummy2, dummy3, dummy4, dummy5, dummy6, regs, rip, (MonoObject*)ex, FALSE);
+}
+
+static void
+mono_amd64_resume_unwind (guint64 dummy1, guint64 dummy2, guint64 dummy3, guint64 dummy4,
+ guint64 dummy5, guint64 dummy6,
+ mgreg_t *regs, mgreg_t rip,
+ guint32 dummy7, gint64 dummy8)
+{
+ /* Only the register parameters are valid */
+ MonoContext ctx;
+
+ ctx.rsp = regs [AMD64_RSP];
+ ctx.rip = rip;
+ ctx.rbx = regs [AMD64_RBX];
+ ctx.rbp = regs [AMD64_RBP];
+ ctx.r12 = regs [AMD64_R12];
+ ctx.r13 = regs [AMD64_R13];
+ ctx.r14 = regs [AMD64_R14];
+ ctx.r15 = regs [AMD64_R15];
+ ctx.rdi = regs [AMD64_RDI];
+ ctx.rsi = regs [AMD64_RSI];
+ ctx.rax = regs [AMD64_RAX];
+ ctx.rcx = regs [AMD64_RCX];
+ ctx.rdx = regs [AMD64_RDX];
+
+ mono_resume_unwind (&ctx);