changeset 545591665fc7 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=545591665fc7
description:
X86: Truncate addresses to 32 bits except in 64 bit mode, not long mode.
A small change was added a while ago to keep addresses from overflowing
32
bits when larger addresses shouldn't be accessible to software. That
change
truncated when not in long mode, but really it should have truncated
when not
in 64 bit mode. The difference is whether compatibility mode is
included, a
mode that's supposed to act like a legacy 32 bit mode.
diffstat:
src/arch/x86/tlb.cc | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diffs (12 lines):
diff -r 5851586f399c -r 545591665fc7 src/arch/x86/tlb.cc
--- a/src/arch/x86/tlb.cc Sat May 26 13:45:12 2012 -0700
+++ b/src/arch/x86/tlb.cc Sun May 27 19:01:04 2012 -0700
@@ -289,7 +289,7 @@
return new GeneralProtection(0);
}
}
- if (m5Reg.mode != LongMode ||
+ if (m5Reg.submode != SixtyFourBitMode ||
(flags & (AddrSizeFlagBit << FlagShift)))
vaddr &= mask(32);
// If paging is enabled, do the translation.
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev