X86 TLB: Fix for gcc 4.4.3
authorJayneel Gandhi <jayneel@cs.wisc.edu>
Thu, 7 Jun 2012 13:11:00 +0000 (08:11 -0500)
committerJayneel Gandhi <jayneel@cs.wisc.edu>
Thu, 7 Jun 2012 13:11:00 +0000 (08:11 -0500)
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).

src/arch/x86/tlb.cc

index 4923752efa8529de14a2488be990b90c108bc399..623e1871d74d5174f95d240e8ecdc75e86ccffea 100644 (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;