changeset d9823ce926fa in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=d9823ce926fa
description:
X86: Sometimes CPUID depends on ecx, so pass that in.
diffstat:
src/arch/x86/cpuid.cc | 3 ++-
src/arch/x86/cpuid.hh | 3 ++-
src/arch/x86/isa/decoder/two_byte_opcodes.isa | 3 ++-
3 files changed, 6 insertions(+), 3 deletions(-)
diffs (39 lines):
diff -r 68195a20503b -r d9823ce926fa src/arch/x86/cpuid.cc
--- a/src/arch/x86/cpuid.cc Sun May 02 00:39:46 2010 -0700
+++ b/src/arch/x86/cpuid.cc Sun May 02 00:40:17 2010 -0700
@@ -79,7 +79,8 @@
}
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);
diff -r 68195a20503b -r d9823ce926fa src/arch/x86/cpuid.hh
--- a/src/arch/x86/cpuid.hh Sun May 02 00:39:46 2010 -0700
+++ b/src/arch/x86/cpuid.hh Sun May 02 00:40:17 2010 -0700
@@ -55,7 +55,8 @@
{}
};
- bool doCpuid(ThreadContext * tc, uint32_t function, CpuidResult &result);
+ bool doCpuid(ThreadContext * tc, uint32_t function,
+ uint32_t index, CpuidResult &result);
} // namespace X86ISA
#endif
diff -r 68195a20503b -r d9823ce926fa
src/arch/x86/isa/decoder/two_byte_opcodes.isa
--- a/src/arch/x86/isa/decoder/two_byte_opcodes.isa Sun May 02 00:39:46
2010 -0700
+++ b/src/arch/x86/isa/decoder/two_byte_opcodes.isa Sun May 02 00:40:17
2010 -0700
@@ -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;
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev