tlb.hh (7612:917946898102) | tlb.hh (7639:8c09b7ff5b57) |
---|---|
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 { | 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 = 0x7, | 68 AlignmentMask = 0x1f, |
69 70 AlignByte = 0x0, 71 AlignHalfWord = 0x1, 72 AlignWord = 0x3, 73 AlignDoubleWord = 0x7, | 69 70 AlignByte = 0x0, 71 AlignHalfWord = 0x1, 72 AlignWord = 0x3, 73 AlignDoubleWord = 0x7, |
74 AlignQuadWord = 0xf, 75 AlignOctWord = 0x1f, |
|
74 | 76 |
75 AllowUnaligned = 0x8, | 77 AllowUnaligned = 0x20, |
76 // Priv code operating as if it wasn't | 78 // Priv code operating as if it wasn't |
77 UserMode = 0x10, | 79 UserMode = 0x40, |
78 // Because zero otherwise looks like a valid setting and may be used 79 // accidentally, this bit must be non-zero to show it was used on 80 // purpose. | 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. |
81 MustBeOne = 0x20 | 83 MustBeOne = 0x80 |
82 }; 83 protected: 84 typedef std::multimap<Addr, int> PageTable; 85 PageTable lookupTable; // Quick lookup into page table 86 87 TlbEntry *table; // the Page Table 88 int size; // TLB Size 89 int nlu; // not last used entry (for replacement) --- 99 unchanged lines hidden --- | 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 --- |