@@ -61,7 +61,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#include "x87_timings.h"
|
#include "x87_timings.h"
|
||||||
|
|
||||||
|
|
||||||
#define CCR1_USE_SMI (1 << 1)
|
#define CCR1_USE_SMI (1 << 1)
|
||||||
#define CCR1_SMAC (1 << 2)
|
#define CCR1_SMAC (1 << 2)
|
||||||
#define CCR1_SM3 (1 << 7)
|
#define CCR1_SM3 (1 << 7)
|
||||||
@@ -238,6 +237,7 @@ uint64_t ecx1002ff_msr = 0;
|
|||||||
/* Some weird long MSR's used by i686 AMI & some Phoenix BIOSes */
|
/* Some weird long MSR's used by i686 AMI & some Phoenix BIOSes */
|
||||||
uint64_t ecxf0f00250_msr = 0;
|
uint64_t ecxf0f00250_msr = 0;
|
||||||
uint64_t ecxf0f00258_msr = 0;
|
uint64_t ecxf0f00258_msr = 0;
|
||||||
|
uint64_t ecxf0f00259_msr = 0;
|
||||||
|
|
||||||
uint64_t star = 0; /* AMD K6-2+. */
|
uint64_t star = 0; /* AMD K6-2+. */
|
||||||
|
|
||||||
@@ -3180,6 +3180,10 @@ void cpu_RDMSR()
|
|||||||
EAX = ecxf0f00258_msr & 0xffffffff;
|
EAX = ecxf0f00258_msr & 0xffffffff;
|
||||||
EDX = ecxf0f00258_msr >> 32;
|
EDX = ecxf0f00258_msr >> 32;
|
||||||
break;
|
break;
|
||||||
|
case 0xf0f00259:
|
||||||
|
EAX = ecxf0f00259_msr & 0xffffffff;
|
||||||
|
EDX = ecxf0f00259_msr >> 32;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
i686_invalid_rdmsr:
|
i686_invalid_rdmsr:
|
||||||
cpu_log("RDMSR: Invalid MSR: %08X\n", ECX);
|
cpu_log("RDMSR: Invalid MSR: %08X\n", ECX);
|
||||||
@@ -3657,6 +3661,9 @@ void cpu_WRMSR()
|
|||||||
case 0xf0f00258:
|
case 0xf0f00258:
|
||||||
ecxf0f00258_msr = EAX | ((uint64_t)EDX << 32);
|
ecxf0f00258_msr = EAX | ((uint64_t)EDX << 32);
|
||||||
break;
|
break;
|
||||||
|
case 0xf0f00259:
|
||||||
|
ecxf0f00259_msr = EAX | ((uint64_t)EDX << 32);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
i686_invalid_wrmsr:
|
i686_invalid_wrmsr:
|
||||||
cpu_log("WRMSR: Invalid MSR: %08X\n", ECX);
|
cpu_log("WRMSR: Invalid MSR: %08X\n", ECX);
|
||||||
|
Reference in New Issue
Block a user