FreeBSD's get_mcontext doesn't return any vfp data. Instead, it zeros
out the vfp feilds (and all the spare fields). Impelement this
behavior. We're still missing the sysarch(ARM_GET_VFPCONTEXT) syscall,
though.
Signed-off-by: Warner Losh <imp@bsdimp.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
gr[TARGET_REG_LR] = tswap32(env->regs[14]);
gr[TARGET_REG_PC] = tswap32(env->regs[15]);
+ /*
+ * FreeBSD's get_mcontext doesn't save VFP info, but sets the pointer and
+ * size to zero. Applications that need the VFP state use
+ * sysarch(ARM_GET_VFPSTATE) and are expected to adjust mcontext after that.
+ */
+ mcp->mc_vfp_size = 0;
+ mcp->mc_vfp_ptr = 0;
+ memset(&mcp->mc_spare, 0, sizeof(mcp->mc_spare));
+
return 0;
}