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:
parent
abb85a68f4
commit
7183c3fd56
1 changed files with 2 additions and 1 deletions
|
@ -270,7 +270,8 @@ TLB::translate(RequestPtr req, ThreadContext *tc, Translation *translation,
|
||||||
Addr base = tc->readMiscRegNoEffect(MISCREG_SEG_BASE(seg));
|
Addr base = tc->readMiscRegNoEffect(MISCREG_SEG_BASE(seg));
|
||||||
Addr limit = tc->readMiscRegNoEffect(MISCREG_SEG_LIMIT(seg));
|
Addr limit = tc->readMiscRegNoEffect(MISCREG_SEG_LIMIT(seg));
|
||||||
bool sizeOverride = (flags & (AddrSizeFlagBit << FlagShift));
|
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;
|
int size = (1 << logSize) * 8;
|
||||||
Addr offset = bits(vaddr - base, size - 1, 0);
|
Addr offset = bits(vaddr - base, size - 1, 0);
|
||||||
Addr endOffset = offset + req->getSize() - 1;
|
Addr endOffset = offset + req->getSize() - 1;
|
||||||
|
|
Loading…
Reference in a new issue