#include <palacios/vmm_types.h>
-
/* .... Giant fucking switch tables */
SMSW,
CLTS,
INVLPG,
+ INT, // KCH: adding software interrupts
MOV_CR2,
MOV_2CR,
case LONG:
if (instr->prefixes.rex_op_size) {
return 8;
+ } else {
+ return 4;
}
case PROTECTED:
case PROTECTED_PAE:
return -1;
}
+ case INT: // KCH
case MOV_DR2:
case MOV_2DR:
case MOV_CR2:
return -1;
}
+
return 0;
}
struct v3_ctrl_regs * crs = &(core->ctrl_regs);
- PrintDebug("\t Ctrl regs %d\n", reg_code);
+// PrintDebug("\t Ctrl regs %d\n", reg_code);
switch (reg_code) {
case 0:
case 0xf4:
return HLT;
-
+
+ // KCH
+ case 0xcd:
+ return INT;
case 0xf6: {
struct modrm_byte * modrm = (struct modrm_byte *)&(instr[1]);
case SETO: return "SETO";
case STOS_8: return "STOS_8";
case STOS: return "STOS";
+ case INT: return "INT"; // KCH
case INVALID_INSTR:
default: