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,
74 AlignQuadWord = 0xf,
75 AlignOctWord = 0x1f,
76
75 AllowUnaligned = 0x8,
77 AllowUnaligned = 0x20,
78 // Priv code operating as if it wasn't
77 UserMode = 0x10,
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.
81 MustBeOne = 0x20
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 ---