Hello
I've tested this patch. It is broken on 32-bit x86 unless the below patch
is applied. With that applied, it seems to work fine on the various test
cases I have, including truncate64 and ftruncate64.
Vince
diff -r 62800dbea5a8 src/arch/x86/process.cc
--- a/src/arch/x86/process.cc Tue Oct 27 15:44:35 2009 -0400
+++ b/src/arch/x86/process.cc Tue Oct 27 16:13:49 2009 -0400
@@ -715,7 +715,7 @@
I386LiveProcess::getSyscallArg(ThreadContext *tc, int &i)
{
assert(i < NumArgumentRegs32);
- return tc->readIntReg(ArgumentReg32[i]);
+ return tc->readIntReg(ArgumentReg32[i++]);
}
X86ISA::IntReg
@@ -723,10 +723,10 @@
{
assert(width == 32 || width == 64);
assert(i < NumArgumentRegs);
- uint64_t retVal = ArgumentReg[i++] & mask(32);
+ uint64_t retVal = tc->readIntReg(ArgumentReg32[i++]) & mask(32);
if (width == 64)
- retVal |= ((uint64_t)ArgumentReg[i++] << 32);
- return tc->readIntReg(retVal);
+ retVal |= ((uint64_t)tc->readIntReg(ArgumentReg[i++]) << 32);
+ return retVal;
}
void
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev