// This value should be set depending on the host register size...
mask = get_gpr_mask(info);
-
- PrintDebug("INS Aborted... Check implementation\n");
- return -1;
+ PrintDebug("INS io_info invalid address size, assuming 32, io_info=0x%x\n",*((uint_t*)(io_info)));
+ // PrintDebug("INS Aborted... Check implementation\n");
+ //return -1;
}
if (io_info->rep) {
} else if (io_info->addr64) {
mask = 0xffffffffffffffffLL;
} else {
+ // This value should be set depending on the host register size...
+ mask = get_gpr_mask(info);
+
+ PrintDebug("OUTS io_info invalid address size, assuming 32, io_info=0x%x\n",*((uint_t*)(io_info)));
+ // PrintDebug("INS Aborted... Check implementation\n");
+ //return -1;
// should never happen
- PrintDebug("Invalid Address length\n");
- return -1;
+ //PrintDebug("Invalid Address length\n");
+ //return -1;
}
if (io_info->rep) {
rep_num = info->vm_regs.rcx & mask;
}
+ PrintDebug("OUTS size=%d for %d steps\n", write_size, rep_num);
while (rep_num > 0) {
addr_t host_addr;
ret = read_guest_va_memory(info, get_addr_linear(info, info->rip, &(info->segments.cs)), 15, instr);
}
+
if (ret != 15) {
// I think we should inject a GPF into the guest
PrintDebug("Could not read instruction (ret=%d)\n", ret);