Initial submission of the PCem-Experimental source code.
This commit is contained in:
30
src/x86_ops_msr.h
Normal file
30
src/x86_ops_msr.h
Normal file
@@ -0,0 +1,30 @@
|
||||
static int opRDTSC(uint32_t fetchdat)
|
||||
{
|
||||
if (!cpu_hasrdtsc)
|
||||
{
|
||||
cpu_state.pc = oldpc;
|
||||
x86illegal();
|
||||
return 1;
|
||||
}
|
||||
if ((cr4 & CR4_TSD) && CPL)
|
||||
{
|
||||
x86gpf("RDTSC when TSD set and CPL != 0", 0);
|
||||
return 1;
|
||||
}
|
||||
EAX = tsc & 0xffffffff;
|
||||
EDX = tsc >> 32;
|
||||
CLOCK_CYCLES(1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int opRDPMC(uint32_t fetchdat)
|
||||
{
|
||||
if (ECX > 1 || (!(cr4 & CR4_PCE) && (cr0 & 1) && CPL))
|
||||
{
|
||||
x86gpf("RDPMC not allowed", 0);
|
||||
return 1;
|
||||
}
|
||||
EAX = EDX = 0;
|
||||
CLOCK_CYCLES(1);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user