X86 TLB: Fix for gcc 4.4.3

Due to recent changes to X86 TLB, gem5 stopped compiling on
gcc version 4.4.3. This patch provides the fix for that problem. The patch
is tested on gcc 4.4.3. The change is not required for more recent
versions of gcc (like on 4.6.3).
This commit is contained in:
Jayneel Gandhi 2012-06-07 08:11:00 -05:00
parent abb85a68f4
commit 7183c3fd56

View file

@ -270,7 +270,8 @@ TLB::translate(RequestPtr req, ThreadContext *tc, Translation *translation,
Addr base = tc->readMiscRegNoEffect(MISCREG_SEG_BASE(seg));
Addr limit = tc->readMiscRegNoEffect(MISCREG_SEG_LIMIT(seg));
bool sizeOverride = (flags & (AddrSizeFlagBit << FlagShift));
int logSize = sizeOverride ? m5Reg.altAddr : m5Reg.defAddr;
unsigned logSize = sizeOverride ? (unsigned)m5Reg.altAddr
: (unsigned)m5Reg.defAddr;
int size = (1 << logSize) * 8;
Addr offset = bits(vaddr - base, size - 1, 0);
Addr endOffset = offset + req->getSize() - 1;