vsx
struct ppc_emulated_entry vsx;
WARN_EMULATED_SETUP(vsx),
FAIL_IF(show_vsx(child, vsx));
FAIL_IF(validate_vsx(vsx, fp_load));
FAIL_IF(show_vsx_ckpt(child, vsx));
FAIL_IF(validate_vsx(vsx, fp_load_ckpt));
memset(vsx, 0, sizeof(vsx));
load_vsx_vmx(fp_load_ckpt_new, vsx, vmx);
FAIL_IF(write_vsx_ckpt(child, vsx));
unsigned long vsx[VSX_MAX];
load_vsx_vmx(fp_load_ckpt_new, vsx, vmx);
FAIL_IF(write_vsx_ckpt(child, vsx));
unsigned long vsx[VSX_MAX];
FAIL_IF(show_vsx(child, vsx));
FAIL_IF(validate_vsx(vsx, fp_load));
FAIL_IF(show_vsx_ckpt(child, vsx));
FAIL_IF(validate_vsx(vsx, fp_load_ckpt));
memset(vsx, 0, sizeof(vsx));
unsigned long vsx[VSX_MAX];
FAIL_IF(show_vsx(child, vsx));
FAIL_IF(validate_vsx(vsx, fp_load));
memset(vsx, 0, sizeof(vsx));
load_vsx_vmx(fp_load_new, vsx, vmx);
FAIL_IF(write_vsx(child, vsx));
vsx();
void load_vsx_vmx(unsigned long *load, unsigned long *vsx,
vsx[i] = load[1 + 2 * i];
int validate_vsx(unsigned long *vsx, unsigned long *load)
if (vsx[i] != load[2 * i + 1]) {
i, vsx[i], 2 * i + 1, load[2 * i + 1]);
int show_vsx(pid_t child, unsigned long *vsx)
ret = ptrace(PTRACE_GETVSRREGS, child, 0, vsx);
int show_vsx_ckpt(pid_t child, unsigned long *vsx)
memcpy(vsx, regs, sizeof(regs));
int write_vsx(pid_t child, unsigned long *vsx)
ret = ptrace(PTRACE_SETVSRREGS, child, 0, vsx);
int write_vsx_ckpt(pid_t child, unsigned long *vsx)
memcpy(regs, vsx, sizeof(regs));
memcpy(vsx, &ucp->uc_mcontext.fp_regs[FPR20 + i], 8);
memcpy(vsx + 8, &vsx_ptr[VSX20 + i], 8);
fail = memcmp(vsx, &vsxs[i], sizeof(vector int));
printf("%02x", vsx[j]);
uint8_t vsx[sizeof(vector int)];