return -1;
}
break;
+
+ case SVM_EXIT_CR8_WRITE:
+#ifdef V3_CONFIG_DEBUG_CTRL_REGS
+ PrintDebug("CR8 Read\n");
+#endif
+ if (v3_handle_cr8_read(info) == -1) {
+ return -1;
+ }
+ break;
+
+ case SVM_EXIT_CR8_READ:
+#ifdef V3_CONFIG_DEBUG_CTRL_REGS
+ PrintDebug("CR8 Read\n");
+#endif
+ if (v3_handle_cr8_read(info) == -1) {
+ return -1;
+ }
+ break;
+
case SVM_EXIT_EXCP14: {
addr_t fault_addr = exit_info2;
pf_error_t * error_code = (pf_error_t *)&(exit_info1);
#ifdef V3_CONFIG_DEBUG_TIME
PrintDebug("RDTSC/RDTSCP\n");
#endif
- if (v3_dispatch_exit_hook(info, V3_EXIT_RDTSC, NULL) == -1) {
+ if (v3_handle_rdtsc(info) == -1) {
PrintError("Error Handling RDTSC instruction\n");
return -1;
}
#ifdef V3_CONFIG_DEBUG_TIME
PrintDebug("RDTSCP\n");
#endif
- if (v3_dispatch_exit_hook(info, V3_EXIT_RDTSCP, NULL) == -1) {
+ if (v3_handle_rdtscp(info) == -1) {
PrintError("Error handling RDTSCP instruction\n");
return -1;
}