changeset f92783bcfd25 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=f92783bcfd25
description:
X86: Use the HandyM5Reg to avoid a register read and some logic in the
TLB.
diffstat:
src/arch/x86/tlb.cc | 11 +++--------
1 files changed, 3 insertions(+), 8 deletions(-)
diffs (22 lines):
diff -r 1f2568933bc5 -r f92783bcfd25 src/arch/x86/tlb.cc
--- a/src/arch/x86/tlb.cc Sun May 27 19:01:09 2012 -0700
+++ b/src/arch/x86/tlb.cc Mon May 28 21:56:23 2012 -0700
@@ -269,15 +269,10 @@
}
Addr base = tc->readMiscRegNoEffect(MISCREG_SEG_BASE(seg));
Addr limit = tc->readMiscRegNoEffect(MISCREG_SEG_LIMIT(seg));
- // This assumes we're not in 64 bit mode. If we were, the default
- // address size is 64 bits, overridable to 32.
- int size = 32;
bool sizeOverride = (flags & (AddrSizeFlagBit << FlagShift));
- SegAttr csAttr = tc->readMiscRegNoEffect(MISCREG_CS_ATTR);
- if ((csAttr.defaultSize && sizeOverride) ||
- (!csAttr.defaultSize && !sizeOverride))
- size = 16;
- Addr offset = bits(vaddr - base, size-1, 0);
+ int logSize = sizeOverride ? m5Reg.altAddr : m5Reg.defAddr;
+ int size = (1 << logSize) * 8;
+ Addr offset = bits(vaddr - base, size - 1, 0);
Addr endOffset = offset + req->getSize() - 1;
if (expandDown) {
DPRINTF(TLB, "Checking an expand down segment.\n");
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev