X86: Sometimes CPUID depends on ecx, so pass that in.
This commit is contained in:
parent
d75ad847b3
commit
7524fdda6a
|
@ -79,7 +79,8 @@ namespace X86ISA {
|
|||
}
|
||||
|
||||
bool
|
||||
doCpuid(ThreadContext * tc, uint32_t function, CpuidResult &result)
|
||||
doCpuid(ThreadContext * tc, uint32_t function,
|
||||
uint32_t index, CpuidResult &result)
|
||||
{
|
||||
uint16_t family = bits(function, 31, 16);
|
||||
uint16_t funcNum = bits(function, 15, 0);
|
||||
|
|
|
@ -55,7 +55,8 @@ namespace X86ISA
|
|||
{}
|
||||
};
|
||||
|
||||
bool doCpuid(ThreadContext * tc, uint32_t function, CpuidResult &result);
|
||||
bool doCpuid(ThreadContext * tc, uint32_t function,
|
||||
uint32_t index, CpuidResult &result);
|
||||
} // namespace X86ISA
|
||||
|
||||
#endif
|
||||
|
|
|
@ -767,7 +767,8 @@
|
|||
0x1: pop_fs();
|
||||
0x2: CPUIDInst::CPUID({{
|
||||
CpuidResult result;
|
||||
success = doCpuid(xc->tcBase(), bits(Rax, 31, 0), result);
|
||||
success = doCpuid(xc->tcBase(), bits(Rax, 31, 0),
|
||||
bits(Rcx, 31, 0), result);
|
||||
Rax = result.rax;
|
||||
Rbx = result.rbx;
|
||||
Rcx = result.rcx;
|
||||
|
|
Loading…
Reference in a new issue