arch: Cleanup unused ISA traits constants
authorAndreas Hansson <andreas.hansson@arm.com>
Wed, 3 Sep 2014 11:42:21 +0000 (07:42 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Wed, 3 Sep 2014 11:42:21 +0000 (07:42 -0400)
This patch prunes unused values, and also unifies how the values are
defined (not using an enum for ALPHA), aligning the use of int vs Addr
etc.

The patch also removes the duplication of PageBytes/PageShift and
VMPageSize/LogVMPageSize. For all ISAs the two pairs had identical
values and the latter has been removed.

24 files changed:
src/arch/alpha/isa_traits.hh
src/arch/alpha/process.cc
src/arch/arm/isa_traits.hh
src/arch/arm/process.cc
src/arch/arm/utility.cc
src/arch/mips/isa_traits.hh
src/arch/mips/process.cc
src/arch/null/isa_traits.hh
src/arch/power/isa_traits.hh
src/arch/power/process.cc
src/arch/sparc/isa_traits.hh
src/arch/sparc/process.cc
src/arch/x86/isa_traits.hh
src/arch/x86/process.cc
src/kern/tru64/tru64.hh
src/mem/cache/prefetch/base.cc
src/mem/multi_level_page_table_impl.hh
src/mem/page_table.hh
src/mem/ruby/common/Address.cc
src/mem/se_translating_port_proxy.cc
src/sim/process.cc
src/sim/syscall_emul.cc
src/sim/syscall_emul.hh
src/sim/system.cc

index 41b63ec5acd812c2b5eddb5dd8aef04551037e0f..f1c39cb05324aac8726d7cebcb2c4c09b239884b 100644 (file)
@@ -109,19 +109,7 @@ enum mode_type
     mode_number             // number of modes
 };
 
-// Constants Related to the number of registers
-
-enum {
-    LogVMPageSize = 13,       // 8K bytes
-    VMPageSize = (1 << LogVMPageSize),
-
-    BranchPredAddrShiftAmt = 2, // instructions are 4-byte aligned
-
-    MachineBytes = 8,
-    WordBytes = 4,
-    HalfwordBytes = 2,
-    ByteBytes = 1
-};
+const int MachineBytes = 8;
 
 // return a no-op instruction... used for instruction fetch faults
 // Alpha UNOP (ldq_u r31,0(r0))
index 8cc83b0fd488bec8ead31c2f12d4e4c1a5f79aaa..f50131be07b6534f8c181eae7203e59f9b3b7d2d 100644 (file)
@@ -49,7 +49,7 @@ AlphaLiveProcess::AlphaLiveProcess(LiveProcessParams *params,
     : LiveProcess(params, objFile)
 {
     brk_point = objFile->dataBase() + objFile->dataSize() + objFile->bssSize();
-    brk_point = roundUp(brk_point, VMPageSize);
+    brk_point = roundUp(brk_point, PageBytes);
 
     // Set up stack.  On Alpha, stack goes below text section.  This
     // code should get moved to some architecture-specific spot.
@@ -83,7 +83,7 @@ AlphaLiveProcess::argsInit(int intSize, int pageSize)
         // seem to be a problem.
         // check out _dl_aux_init() in glibc/elf/dl-support.c for details
         // --Lisa
-        auxv.push_back(auxv_t(M5_AT_PAGESZ, AlphaISA::VMPageSize));
+        auxv.push_back(auxv_t(M5_AT_PAGESZ, AlphaISA::PageBytes));
         auxv.push_back(auxv_t(M5_AT_CLKTCK, 100));
         auxv.push_back(auxv_t(M5_AT_PHDR, elfObject->programHeaderTable()));
         DPRINTF(Loader, "auxv at PHDR %08p\n", elfObject->programHeaderTable());
@@ -193,7 +193,7 @@ AlphaLiveProcess::initState()
 
     LiveProcess::initState();
 
-    argsInit(MachineBytes, VMPageSize);
+    argsInit(MachineBytes, PageBytes);
 
     ThreadContext *tc = system->getThreadContext(contextIds[0]);
     tc->setIntReg(GlobalPointerReg, objFile->globalPointer());
index 506c5009c78963f13ba9cf12618627d8a019e7c5..8be2bf04ab325d7f3161fa6c7a46f2f8e232dc9e 100644 (file)
@@ -51,8 +51,6 @@
 
 namespace LittleEndianGuest {}
 
-#define TARGET_ARM
-
 namespace ArmISA
 {
     using namespace LittleEndianGuest;
@@ -101,16 +99,7 @@ namespace ArmISA
     // return a no-op instruction... used for instruction fetch faults
     const ExtMachInst NoopMachInst = 0x01E320F000ULL;
 
-    const int LogVMPageSize = 12;       // 4K bytes
-    const int VMPageSize = (1 << LogVMPageSize);
-
-    // Shouldn't this be 1 because of Thumb?! Dynamic? --Ali
-    const int BranchPredAddrShiftAmt = 2; // instructions are 4-byte aligned
-
     const int MachineBytes = 4;
-    const int WordBytes = 4;
-    const int HalfwordBytes = 2;
-    const int ByteBytes = 1;
 
     const uint32_t HighVecs = 0xFFFF0000;
 
index 175382b43257158f4229d5ece8ef0aefac91647d..a08e6ee456e8cc49493049a615d3f0255729b611 100644 (file)
@@ -74,7 +74,7 @@ ArmLiveProcess32::ArmLiveProcess32(LiveProcessParams *params,
 
     // Set up break point (Top of Heap)
     brk_point = objFile->dataBase() + objFile->dataSize() + objFile->bssSize();
-    brk_point = roundUp(brk_point, VMPageSize);
+    brk_point = roundUp(brk_point, PageBytes);
 
     // Set up region for mmaps. For now, start at bottom of kuseg space.
     mmap_start = mmap_end = 0x40000000L;
@@ -91,7 +91,7 @@ ArmLiveProcess64::ArmLiveProcess64(LiveProcessParams *params,
 
     // Set up break point (Top of Heap)
     brk_point = objFile->dataBase() + objFile->dataSize() + objFile->bssSize();
-    brk_point = roundUp(brk_point, VMPageSize);
+    brk_point = roundUp(brk_point, PageBytes);
 
     // Set up region for mmaps. For now, start at bottom of kuseg space.
     mmap_start = mmap_end = 0x4000000000L;
@@ -101,7 +101,7 @@ void
 ArmLiveProcess32::initState()
 {
     LiveProcess::initState();
-    argsInit<uint32_t>(VMPageSize, INTREG_SP);
+    argsInit<uint32_t>(PageBytes, INTREG_SP);
     for (int i = 0; i < contextIds.size(); i++) {
         ThreadContext * tc = system->getThreadContext(contextIds[i]);
         CPACR cpacr = tc->readMiscReg(MISCREG_CPACR);
@@ -120,7 +120,7 @@ void
 ArmLiveProcess64::initState()
 {
     LiveProcess::initState();
-    argsInit<uint64_t>(VMPageSize, INTREG_SP0);
+    argsInit<uint64_t>(PageBytes, INTREG_SP0);
     for (int i = 0; i < contextIds.size(); i++) {
         ThreadContext * tc = system->getThreadContext(contextIds[i]);
         CPSR cpsr = tc->readMiscReg(MISCREG_CPSR);
@@ -203,7 +203,7 @@ ArmLiveProcess::argsInit(int pageSize, IntRegIndex spIndex)
         //XXX Figure out what these should be
         auxv.push_back(auxv_t(M5_AT_HWCAP, features));
         //The system page size
-        auxv.push_back(auxv_t(M5_AT_PAGESZ, ArmISA::VMPageSize));
+        auxv.push_back(auxv_t(M5_AT_PAGESZ, ArmISA::PageBytes));
         //Frequency at which times() increments
         auxv.push_back(auxv_t(M5_AT_CLKTCK, 0x64));
         // For statically linked executables, this is the virtual address of the
index ae84391e99df480532a202d73646d892ff6d3ba3..b0eec495c72cebbcb081ce5ac213777ecaf7a570 100644 (file)
@@ -85,6 +85,7 @@ getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp)
         }
     } else {
         if (size == (uint16_t)(-1))
+            // todo: should this not be sizeof(uint32_t) rather?
             size = ArmISA::MachineBytes;
 
         if (number < NumArgumentRegs) {
index af99461c922c00baa59c49852474fa21a7cacaad..ca375f2e859a284b1543434db5f9f2dee585fd66 100644 (file)
@@ -145,16 +145,6 @@ enum mode_type
 // return a no-op instruction... used for instruction fetch faults
 const ExtMachInst NoopMachInst = 0x00000000;
 
-const int LogVMPageSize = 13;       // 8K bytes
-const int VMPageSize = (1 << LogVMPageSize);
-
-const int BranchPredAddrShiftAmt = 2; // instructions are 4-byte aligned
-
-const int MachineBytes = 4;
-const int WordBytes = 4;
-const int HalfwordBytes = 2;
-const int ByteBytes = 1;
-
 const int ANNOTE_NONE = 0;
 const uint32_t ITOUCH_ANNOTE = 0xffffffff;
 
index f84c5cc4a5f6295b98f037f54f4da1282969fcb9..404c84da6b925c2ebbdfaf87777cdd1c5eef2b63 100644 (file)
@@ -58,7 +58,7 @@ MipsLiveProcess::MipsLiveProcess(LiveProcessParams * params,
 
     // Set up break point (Top of Heap)
     brk_point = objFile->dataBase() + objFile->dataSize() + objFile->bssSize();
-    brk_point = roundUp(brk_point, VMPageSize);
+    brk_point = roundUp(brk_point, PageBytes);
 
     // Set up region for mmaps.  Start it 1GB above the top of the heap.
     mmap_start = mmap_end = brk_point + 0x40000000L;
@@ -69,7 +69,7 @@ MipsLiveProcess::initState()
 {
     LiveProcess::initState();
 
-    argsInit<uint32_t>(VMPageSize);
+    argsInit<uint32_t>(PageBytes);
 }
 
 template<class IntType>
@@ -88,7 +88,7 @@ MipsLiveProcess::argsInit(int pageSize)
     if (elfObject)
     {
         // Set the system page size
-        auxv.push_back(auxv_t(M5_AT_PAGESZ, MipsISA::VMPageSize));
+        auxv.push_back(auxv_t(M5_AT_PAGESZ, MipsISA::PageBytes));
         // Set the frequency at which time() increments
         auxv.push_back(auxv_t(M5_AT_CLKTCK, 100));
         // For statically linked executables, this is the virtual
index d09b1e87606b00106ea3c331197ef4096691c2b4..8c45dd06bbedd1fb70c8156dcb8982c3849094e4 100644 (file)
@@ -51,9 +51,6 @@ namespace NullISA
     const Addr PageShift = 12;
     const Addr PageBytes = ULL(1) << PageShift;
 
-    const int LogVMPageSize = 12;       // 4K bytes
-    const int VMPageSize = (1 << LogVMPageSize);
-
 }
 
 #endif //__ARCH_NULL_ISA_TRAITS_HH__
index 393073bf794fca6953ced316fe18009b4435bec7..3abc831ff7330f1f101e30ccdce4bcfa0563a28b 100644 (file)
@@ -61,9 +61,6 @@ const Addr NPtePageShift = PageShift - PteShift;
 const Addr NPtePage = ULL(1) << NPtePageShift;
 const Addr PteMask = NPtePage - 1;
 
-const int LogVMPageSize = 12;  // 4K bytes
-const int VMPageSize = (1 << LogVMPageSize);
-
 const int MachineBytes = 4;
 
 // This is ori 0, 0, 0
index 175a84f6b316c4854ac9bc6fdb34e6317366c094..3dc2c0d17410a925d116c1b62d8018811b8cf244 100644 (file)
@@ -56,7 +56,7 @@ PowerLiveProcess::PowerLiveProcess(LiveProcessParams *params,
 
     // Set up break point (Top of Heap)
     brk_point = objFile->dataBase() + objFile->dataSize() + objFile->bssSize();
-    brk_point = roundUp(brk_point, VMPageSize);
+    brk_point = roundUp(brk_point, PageBytes);
 
     // Set up region for mmaps. For now, start at bottom of kuseg space.
     mmap_start = mmap_end = 0x70000000L;
@@ -67,7 +67,7 @@ PowerLiveProcess::initState()
 {
     Process::initState();
 
-    argsInit(MachineBytes, VMPageSize);
+    argsInit(MachineBytes, PageBytes);
 }
 
 void
@@ -98,7 +98,7 @@ PowerLiveProcess::argsInit(int intSize, int pageSize)
         //XXX Figure out what these should be
         auxv.push_back(auxv_t(M5_AT_HWCAP, features));
         //The system page size
-        auxv.push_back(auxv_t(M5_AT_PAGESZ, PowerISA::VMPageSize));
+        auxv.push_back(auxv_t(M5_AT_PAGESZ, PowerISA::PageBytes));
         //Frequency at which times() increments
         auxv.push_back(auxv_t(M5_AT_CLKTCK, 0x64));
         // For statically linked executables, this is the virtual address of the
index 22d49b12e9e99fd3d840c5b598abba1ab7026417..b9253863e8eb30c70eea14c534a0f5315f59f712 100644 (file)
@@ -41,8 +41,6 @@ namespace BigEndianGuest {}
 
 namespace SparcISA
 {
-const int MachineBytes = 8;
-
 // This makes sure the big endian versions of certain functions are used.
 using namespace BigEndianGuest;
 
@@ -52,21 +50,13 @@ using namespace BigEndianGuest;
 // SPARC NOP (sethi %(hi(0), g0)
 const MachInst NoopMachInst = 0x01000000;
 
-// 8K. This value is implmentation specific; and should probably
-// be somewhere else.
-const int LogVMPageSize = 13;
-const int VMPageSize = (1 << LogVMPageSize);
-
 // real address virtual mapping
 // sort of like alpha super page, but less frequently used
 const Addr SegKPMEnd  = ULL(0xfffffffc00000000);
 const Addr SegKPMBase = ULL(0xfffffac000000000);
 
-// Why does both the previous set of constants and this one exist?
-const int PageShift = 13;
-const int PageBytes = 1ULL << PageShift;
-
-const int BranchPredAddrShiftAmt = 2;
+const Addr PageShift = 13;
+const Addr PageBytes = ULL(1) << PageShift;
 
 StaticInstPtr decodeInst(ExtMachInst);
 
index 06b0d18b382486836b7b8f71bbd0e14fbd767dce..8c8be65ab35ce26d917e2118278c58a7f6509cb0 100644 (file)
@@ -57,7 +57,7 @@ SparcLiveProcess::SparcLiveProcess(LiveProcessParams * params,
 
     // XXX all the below need to be updated for SPARC - Ali
     brk_point = objFile->dataBase() + objFile->dataSize() + objFile->bssSize();
-    brk_point = roundUp(brk_point, VMPageSize);
+    brk_point = roundUp(brk_point, PageBytes);
 
     // Set pointer for next thread stack.  Reserve 8M for main stack.
     next_thread_stack_base = stack_base - (8 * 1024 * 1024);
@@ -166,7 +166,7 @@ Sparc32LiveProcess::initState()
     pstate.am = 1;
     tc->setMiscReg(MISCREG_PSTATE, pstate);
 
-    argsInit(32 / 8, VMPageSize);
+    argsInit(32 / 8, PageBytes);
 }
 
 void
@@ -180,7 +180,7 @@ Sparc64LiveProcess::initState()
     pstate.ie = 1;
     tc->setMiscReg(MISCREG_PSTATE, pstate);
 
-    argsInit(sizeof(IntReg), VMPageSize);
+    argsInit(sizeof(IntReg), PageBytes);
 }
 
 template<class IntType>
@@ -234,7 +234,7 @@ SparcLiveProcess::argsInit(int pageSize)
         // Bits which describe the system hardware capabilities
         auxv.push_back(auxv_t(M5_AT_HWCAP, hwcap));
         // The system page size
-        auxv.push_back(auxv_t(M5_AT_PAGESZ, SparcISA::VMPageSize));
+        auxv.push_back(auxv_t(M5_AT_PAGESZ, SparcISA::PageBytes));
         // Defined to be 100 in the kernel source.
         // Frequency at which times() increments
         auxv.push_back(auxv_t(M5_AT_CLKTCK, 100));
index 27f20e9b2c921122ecb079f91c5aeaaad14c0e39..a9e274eccb522620f23e35406e5ed98a83b6f6b0 100644 (file)
@@ -59,14 +59,8 @@ namespace X86ISA
     //XXX This needs to be set to an intermediate instruction struct
     //which encodes this instruction
 
-    //4k. This value is not constant on x86.
-    const int LogVMPageSize = 12;
-    const int VMPageSize = (1 << LogVMPageSize);
-
-    const int PageShift = 12;
-    const int PageBytes = 1ULL << PageShift;
-
-    const int BranchPredAddrShiftAmt = 0;
+    const Addr PageShift = 12;
+    const Addr PageBytes = ULL(1) << PageShift;
 
     // Memory accesses can be unaligned
     const bool HasUnalignedMemAcc = true;
index 95a7f9998d02db0d8bbbe9f23691c52a62a7f54d..fc5a888883a6871054904ca2df50e3a7036130fd 100644 (file)
@@ -86,7 +86,7 @@ X86LiveProcess::X86LiveProcess(LiveProcessParams * params, ObjectFile *objFile,
     numSyscallDescs(_numSyscallDescs)
 {
     brk_point = objFile->dataBase() + objFile->dataSize() + objFile->bssSize();
-    brk_point = roundUp(brk_point, VMPageSize);
+    brk_point = roundUp(brk_point, PageBytes);
 }
 
 X86_64LiveProcess::X86_64LiveProcess(LiveProcessParams *params,
@@ -96,7 +96,7 @@ X86_64LiveProcess::X86_64LiveProcess(LiveProcessParams *params,
 {
 
     vsyscallPage.base = 0xffffffffff600000ULL;
-    vsyscallPage.size = VMPageSize;
+    vsyscallPage.size = PageBytes;
     vsyscallPage.vtimeOffset = 0x400;
     vsyscallPage.vgettimeofdayOffset = 0x0;
 
@@ -133,10 +133,10 @@ I386LiveProcess::I386LiveProcess(LiveProcessParams *params,
     X86LiveProcess(params, objFile, _syscallDescs, _numSyscallDescs)
 {
     _gdtStart = ULL(0xffffd000);
-    _gdtSize = VMPageSize;
+    _gdtSize = PageBytes;
 
     vsyscallPage.base = 0xffffe000ULL;
-    vsyscallPage.size = VMPageSize;
+    vsyscallPage.size = PageBytes;
     vsyscallPage.vsyscallOffset = 0x400;
     vsyscallPage.vsysexitOffset = 0x410;
 
@@ -163,7 +163,7 @@ X86_64LiveProcess::initState()
 {
     X86LiveProcess::initState();
 
-    argsInit(sizeof(uint64_t), VMPageSize);
+    argsInit(sizeof(uint64_t), PageBytes);
 
        // Set up the vsyscall page for this process.
     allocateMem(vsyscallPage.base, vsyscallPage.size);
@@ -258,7 +258,7 @@ I386LiveProcess::initState()
 {
     X86LiveProcess::initState();
 
-    argsInit(sizeof(uint32_t), VMPageSize);
+    argsInit(sizeof(uint32_t), PageBytes);
 
     /* 
      * Set up a GDT for this process. The whole GDT wouldn't really be for
@@ -474,7 +474,7 @@ X86LiveProcess::argsInit(int pageSize,
         //XXX Figure out what these should be
         auxv.push_back(auxv_t(M5_AT_HWCAP, features));
         //The system page size
-        auxv.push_back(auxv_t(M5_AT_PAGESZ, X86ISA::VMPageSize));
+        auxv.push_back(auxv_t(M5_AT_PAGESZ, X86ISA::PageBytes));
         //Frequency at which times() increments
         //Defined to be 100 in the kernel source.
         auxv.push_back(auxv_t(M5_AT_CLKTCK, 100));
index 5cb1b92ec7e2e4fc34fa4ee8fc1935be65e44553..d2261eaa0b034ab8606840617b603acd08369202 100644 (file)
@@ -548,8 +548,8 @@ class Tru64 : public OperatingSystem
             process->next_thread_stack_base -= stack_size;
         }
 
-        Addr rounded_stack_base = roundDown(stack_base, VMPageSize);
-        Addr rounded_stack_size = roundUp(stack_size, VMPageSize);
+        Addr rounded_stack_base = roundDown(stack_base, PageBytes);
+        Addr rounded_stack_size = roundUp(stack_size, PageBytes);
 
         DPRINTF(SyscallVerbose,
                 "stack_create: allocating stack @ %#x size %#x "
@@ -675,9 +675,9 @@ class Tru64 : public OperatingSystem
         *configptr_ptr = htog(config_addr);
 
         // Register this as a valid address range with the process
-        base_addr = roundDown(base_addr, VMPageSize);
+        base_addr = roundDown(base_addr, PageBytes);
         int size = cur_addr - base_addr;
-        process->allocateMem(base_addr, roundUp(size, VMPageSize));
+        process->allocateMem(base_addr, roundUp(size, PageBytes));
 
         config.copyOut(tc->getMemProxy());
         slot_state.copyOut(tc->getMemProxy());
index d5cddc88e1b04d7676b63ef5616b5120afa3c934..57c1424bf7e466ef72fb55755a8512d10e1137a1 100644 (file)
@@ -312,7 +312,7 @@ BasePrefetcher::inPrefetch(Addr address, bool is_secure)
 bool
 BasePrefetcher::samePage(Addr a, Addr b)
 {
-    return roundDown(a, TheISA::VMPageSize) == roundDown(b, TheISA::VMPageSize);
+    return roundDown(a, TheISA::PageBytes) == roundDown(b, TheISA::PageBytes);
 }
 
 
index d944ff04bc6acd71ae7d472b4e989cdf0ca57731..9ffcf02e821225f433df90802c576dc6bfa695e4 100644 (file)
@@ -74,13 +74,13 @@ MultiLevelPageTable<ISAOps>::initState(ThreadContext* tc)
     /* setting first level of the page table */
     uint64_t log_req_size = floorLog2(sizeof(PageTableEntry)) +
                             logLevelSize[numLevels-1];
-    assert(log_req_size >= LogVMPageSize);
-    uint64_t npages = 1 << (log_req_size - LogVMPageSize);
+    assert(log_req_size >= PageShift);
+    uint64_t npages = 1 << (log_req_size - PageShift);
 
     Addr paddr = system->allocPhysPages(npages);
 
     PortProxy &p = system->physProxy;
-    p.memsetBlob(paddr, 0, npages << LogVMPageSize);
+    p.memsetBlob(paddr, 0, npages << PageShift);
 }
 
 
@@ -93,7 +93,7 @@ MultiLevelPageTable<ISAOps>::walk(Addr vaddr, bool allocate, Addr &PTE_addr)
     Addr level_base = basePtr;
     for (int i = numLevels - 1; i > 0; i--) {
 
-        Addr entry_addr = (level_base<<LogVMPageSize) +
+        Addr entry_addr = (level_base<<PageShift) +
                           offsets[i] * sizeof(PageTableEntry);
 
         PortProxy &p = system->physProxy;
@@ -106,16 +106,16 @@ MultiLevelPageTable<ISAOps>::walk(Addr vaddr, bool allocate, Addr &PTE_addr)
 
             uint64_t log_req_size = floorLog2(sizeof(PageTableEntry)) +
                                     logLevelSize[i-1];
-            assert(log_req_size >= LogVMPageSize);
-            uint64_t npages = 1 << (log_req_size - LogVMPageSize);
+            assert(log_req_size >= PageShift);
+            uint64_t npages = 1 << (log_req_size - PageShift);
 
             DPRINTF(MMU, "Allocating %d pages needed for entry in level %d\n", npages, i-1);
 
             /* allocate new entry */
             Addr next_entry_paddr = system->allocPhysPages(npages);
-            p.memsetBlob(next_entry_paddr, 0, npages << LogVMPageSize);
+            p.memsetBlob(next_entry_paddr, 0, npages << PageShift);
 
-            next_entry_pnum = next_entry_paddr >> LogVMPageSize;
+            next_entry_pnum = next_entry_paddr >> PageShift;
             pTableISAOps.setPnum(entry, next_entry_pnum);
             pTableISAOps.setPTEFields(entry);
             p.write<PageTableEntry>(entry_addr, entry);
@@ -125,7 +125,7 @@ MultiLevelPageTable<ISAOps>::walk(Addr vaddr, bool allocate, Addr &PTE_addr)
         level_base = next_entry_pnum;
 
     }
-    PTE_addr = (level_base<<LogVMPageSize) +
+    PTE_addr = (level_base<<PageShift) +
         offsets[0] * sizeof(PageTableEntry);
     DPRINTF(MMU, "Returning PTE_addr: %x\n", PTE_addr);
     return true;
@@ -148,7 +148,7 @@ MultiLevelPageTable<ISAOps>::map(Addr vaddr, Addr paddr, int64_t size, bool clob
             PageTableEntry PTE = p.read<PageTableEntry>(PTE_addr);
             Addr entry_paddr = pTableISAOps.getPnum(PTE);
             if (!clobber && entry_paddr == 0) {
-                pTableISAOps.setPnum(PTE, paddr >> LogVMPageSize);
+                pTableISAOps.setPnum(PTE, paddr >> PageShift);
                 pTableISAOps.setPTEFields(PTE);
                 p.write<PageTableEntry>(PTE_addr, PTE);
                 DPRINTF(MMU, "New mapping: %#x-%#x\n", vaddr, paddr);
@@ -193,7 +193,7 @@ MultiLevelPageTable<ISAOps>::remap(Addr vaddr, int64_t size, Addr new_vaddr)
                 walk(new_vaddr, true, new_PTE_addr);
                 PageTableEntry new_PTE = p.read<PageTableEntry>(new_PTE_addr);
 
-                pTableISAOps.setPnum(new_PTE, paddr>>LogVMPageSize);
+                pTableISAOps.setPnum(new_PTE, paddr>>PageShift);
                 pTableISAOps.setPTEFields(new_PTE);
                 p.write<PageTableEntry>(new_PTE_addr, new_PTE);
                 DPRINTF(MMU, "Remapping: %#x-%#x\n", vaddr, new_PTE_addr);
@@ -285,7 +285,7 @@ MultiLevelPageTable<ISAOps>::lookup(Addr vaddr, TlbEntry &entry)
         if (pnum == 0)
             return false;
 
-        entry = TlbEntry(pid, vaddr, pnum << LogVMPageSize);
+        entry = TlbEntry(pid, vaddr, pnum << PageShift);
         updateCache(page_addr, entry);
     } else {
         return false;
index 010259a7273d0b339df0eca7c277e2e26bd7d651..b906e5b8242e89184b5cbb2a67bb9ef95742ef3a 100644 (file)
@@ -73,7 +73,7 @@ class PageTableBase
   public:
 
     PageTableBase(const std::string &__name, uint64_t _pid,
-              Addr _pageSize = TheISA::VMPageSize)
+              Addr _pageSize = TheISA::PageBytes)
             : pageSize(_pageSize), offsetMask(mask(floorLog2(_pageSize))),
               pid(_pid), _name(__name)
     {
@@ -188,7 +188,7 @@ class FuncPageTable : public PageTableBase
   public:
 
     FuncPageTable(const std::string &__name, uint64_t _pid,
-              Addr _pageSize = TheISA::VMPageSize);
+                  Addr _pageSize = TheISA::PageBytes);
 
     ~FuncPageTable();
 
@@ -229,7 +229,7 @@ class NoArchPageTable : public FuncPageTable
 {
   public:
     NoArchPageTable(const std::string &__name, uint64_t _pid, System *_sys,
-              Addr _pageSize = TheISA::VMPageSize) : FuncPageTable(__name, _pid)
+              Addr _pageSize = TheISA::PageBytes) : FuncPageTable(__name, _pid)
     {
         fatal("No architectural page table defined for this ISA.\n");
     }
index 692f4cae8d75b6ab516a608c4e99dc19eacbb194..eb234f46e97b49177c88d83c5ce2348ba9717c2a 100644 (file)
@@ -139,7 +139,7 @@ Address::operator=(const Address& obj)
 void
 Address::makePageAddress()
 {
-    m_address = maskLowOrderBits(TheISA::LogVMPageSize);
+    m_address = maskLowOrderBits(TheISA::PageShift);
 }
 
 Address
index 1060a32700c83f770f0dc95e5c26ae6f8c4c1a3e..ef9ce585011f2066d3827507fbe1ba9cbc4ebaab 100644 (file)
@@ -68,7 +68,7 @@ SETranslatingPortProxy::tryReadBlob(Addr addr, uint8_t *p, int size) const
 {
     int prevSize = 0;
 
-    for (ChunkGenerator gen(addr, size, VMPageSize); !gen.done(); gen.next()) {
+    for (ChunkGenerator gen(addr, size, PageBytes); !gen.done(); gen.next()) {
         Addr paddr;
 
         if (!pTable->translate(gen.addr(),paddr))
@@ -94,13 +94,13 @@ SETranslatingPortProxy::tryWriteBlob(Addr addr, uint8_t *p, int size) const
 {
     int prevSize = 0;
 
-    for (ChunkGenerator gen(addr, size, VMPageSize); !gen.done(); gen.next()) {
+    for (ChunkGenerator gen(addr, size, PageBytes); !gen.done(); gen.next()) {
         Addr paddr;
 
         if (!pTable->translate(gen.addr(), paddr)) {
             if (allocating == Always) {
-                process->allocateMem(roundDown(gen.addr(), VMPageSize),
-                                     VMPageSize);
+                process->allocateMem(roundDown(gen.addr(), PageBytes),
+                                     PageBytes);
             } else if (allocating == NextPage) {
                 // check if we've accessed the next page on the stack
                 if (!process->fixupStackFault(gen.addr()))
@@ -130,13 +130,13 @@ SETranslatingPortProxy::writeBlob(Addr addr, uint8_t *p, int size) const
 bool
 SETranslatingPortProxy::tryMemsetBlob(Addr addr, uint8_t val, int size) const
 {
-    for (ChunkGenerator gen(addr, size, VMPageSize); !gen.done(); gen.next()) {
+    for (ChunkGenerator gen(addr, size, PageBytes); !gen.done(); gen.next()) {
         Addr paddr;
 
         if (!pTable->translate(gen.addr(), paddr)) {
             if (allocating == Always) {
-                process->allocateMem(roundDown(gen.addr(), VMPageSize),
-                                     VMPageSize);
+                process->allocateMem(roundDown(gen.addr(), PageBytes),
+                                     PageBytes);
                 pTable->translate(gen.addr(), paddr);
             } else {
                 return false;
index a738908e17c74e125406df6a99aaee8509de30d0..2ca1f1531efc401cdd6e95af6c1088bbda465e5a 100644 (file)
@@ -334,7 +334,7 @@ Process::sim_fd_obj(int tgt_fd)
 void
 Process::allocateMem(Addr vaddr, int64_t size, bool clobber)
 {
-    int npages = divCeil(size, (int64_t)VMPageSize);
+    int npages = divCeil(size, (int64_t)PageBytes);
     Addr paddr = system->allocPhysPages(npages);
     pTable->map(vaddr, paddr, size, clobber);
 }
@@ -345,7 +345,7 @@ Process::fixupStackFault(Addr vaddr)
     // Check if this is already on the stack and there's just no page there
     // yet.
     if (vaddr >= stack_min && vaddr < stack_base) {
-        allocateMem(roundDown(vaddr, VMPageSize), VMPageSize);
+        allocateMem(roundDown(vaddr, PageBytes), PageBytes);
         return true;
     }
 
index fa18b910f8007d8fc2d490a00e6a38e37de54940..13ea784e54f4de04f576bd1e2589af40d928246a 100644 (file)
@@ -148,7 +148,7 @@ exitGroupFunc(SyscallDesc *desc, int callnum, LiveProcess *process,
 SyscallReturn
 getpagesizeFunc(SyscallDesc *desc, int num, LiveProcess *p, ThreadContext *tc)
 {
-    return (int)VMPageSize;
+    return (int)PageBytes;
 }
 
 
@@ -167,9 +167,9 @@ brkFunc(SyscallDesc *desc, int num, LiveProcess *p, ThreadContext *tc)
     if (new_brk > p->brk_point) {
         // might need to allocate some new pages
         for (ChunkGenerator gen(p->brk_point, new_brk - p->brk_point,
-                                VMPageSize); !gen.done(); gen.next()) {
+                                PageBytes); !gen.done(); gen.next()) {
             if (!p->pTable->translate(gen.addr()))
-                p->allocateMem(roundDown(gen.addr(), VMPageSize), VMPageSize);
+                p->allocateMem(roundDown(gen.addr(), PageBytes), PageBytes);
 
             // if the address is already there, zero it out
             else {
@@ -177,14 +177,14 @@ brkFunc(SyscallDesc *desc, int num, LiveProcess *p, ThreadContext *tc)
                 SETranslatingPortProxy &tp = tc->getMemProxy();
 
                 // split non-page aligned accesses
-                Addr next_page = roundUp(gen.addr(), VMPageSize);
+                Addr next_page = roundUp(gen.addr(), PageBytes);
                 uint32_t size_needed = next_page - gen.addr();
                 tp.memsetBlob(gen.addr(), zero, size_needed);
-                if (gen.addr() + VMPageSize > next_page &&
+                if (gen.addr() + PageBytes > next_page &&
                     next_page < new_brk &&
                     p->pTable->translate(next_page))
                 {
-                    size_needed = VMPageSize - size_needed;
+                    size_needed = PageBytes - size_needed;
                     tp.memsetBlob(next_page, zero, size_needed);
                 }
             }
index e971902cba8954b06bf0e66c76f0636ce0bc9f31..66c12f07de30b2a0ef85f51bcf9a816de01aad61 100644 (file)
@@ -822,9 +822,9 @@ mremapFunc(SyscallDesc *desc, int callnum, LiveProcess *process, ThreadContext *
     if (use_provided_address)
         provided_address = process->getSyscallArg(tc, index);
 
-    if ((start % TheISA::VMPageSize != 0) ||
-        (new_length % TheISA::VMPageSize != 0) ||
-        (provided_address % TheISA::VMPageSize != 0)) {
+    if ((start % TheISA::PageBytes != 0) ||
+        (new_length % TheISA::PageBytes != 0) ||
+        (provided_address % TheISA::PageBytes != 0)) {
         warn("mremap failing: arguments not page aligned");
         return -EINVAL;
     }
@@ -1226,8 +1226,8 @@ mmapFunc(SyscallDesc *desc, int num, LiveProcess *p, ThreadContext *tc)
         }
     }
 
-    if ((start  % TheISA::VMPageSize) != 0 ||
-        (length % TheISA::VMPageSize) != 0) {
+    if ((start  % TheISA::PageBytes) != 0 ||
+        (length % TheISA::PageBytes) != 0) {
         warn("mmap failing: arguments not page-aligned: "
              "start 0x%x length 0x%x",
              start, length);
index 9cd79cac0b1be7f8e20f4458c13b5b33774eb1dd..ffab19c990f63609a289a8cfd91b7fba2903e214 100644 (file)
@@ -317,9 +317,9 @@ System::replaceThreadContext(ThreadContext *tc, int context_id)
 Addr
 System::allocPhysPages(int npages)
 {
-    Addr return_addr = pagePtr << LogVMPageSize;
+    Addr return_addr = pagePtr << PageShift;
     pagePtr += npages;
-    if ((pagePtr << LogVMPageSize) > physmem.totalSize())
+    if ((pagePtr << PageShift) > physmem.totalSize())
         fatal("Out of memory, please increase size of physical memory.");
     return return_addr;
 }
@@ -333,7 +333,7 @@ System::memSize() const
 Addr
 System::freeMemSize() const
 {
-   return physmem.totalSize() - (pagePtr << LogVMPageSize);
+   return physmem.totalSize() - (pagePtr << PageShift);
 }
 
 bool