1/* 2 * Copyright (c) 2010 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 51 unchanged lines hidden (view full) --- 60namespace ArmISA { 61 62class TableWalker; 63 64class TLB : public BaseTLB 65{ 66 public: 67 enum ArmFlags { |
68 AlignmentMask = 0x1f, |
69 70 AlignByte = 0x0, 71 AlignHalfWord = 0x1, 72 AlignWord = 0x3, 73 AlignDoubleWord = 0x7, |
74 AlignQuadWord = 0xf, 75 AlignOctWord = 0x1f, |
76 |
77 AllowUnaligned = 0x20, |
78 // Priv code operating as if it wasn't |
79 UserMode = 0x40, |
80 // Because zero otherwise looks like a valid setting and may be used 81 // accidentally, this bit must be non-zero to show it was used on 82 // purpose. |
83 MustBeOne = 0x80 |
84 }; 85 protected: 86 typedef std::multimap<Addr, int> PageTable; 87 PageTable lookupTable; // Quick lookup into page table 88 89 TlbEntry *table; // the Page Table 90 int size; // TLB Size 91 int nlu; // not last used entry (for replacement) --- 99 unchanged lines hidden --- |