Giacomo Travaglini has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/52008 )
(
1 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the
submitted one.
)Change subject: arch-arm: Add walkBits method to PageTableOps
......................................................................
arch-arm: Add walkBits method to PageTableOps
Change-Id: I84cea3bcc5a3b566b8c26ebd3a54443c96199483
Signed-off-by: Giacomo Travaglini <[email protected]>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/52008
Tested-by: kokoro <[email protected]>
Reviewed-by: Jason Lowe-Power <[email protected]>
Reviewed-by: Andreas Sandberg <[email protected]>
Maintainer: Jason Lowe-Power <[email protected]>
Maintainer: Andreas Sandberg <[email protected]>
---
M src/arch/arm/pagetable.cc
M src/arch/arm/pagetable.hh
2 files changed, 55 insertions(+), 31 deletions(-)
Approvals:
Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved
Andreas Sandberg: Looks good to me, approved; Looks good to me, approved
kokoro: Regressions pass
diff --git a/src/arch/arm/pagetable.cc b/src/arch/arm/pagetable.cc
index 0834e7b..542610d 100644
--- a/src/arch/arm/pagetable.cc
+++ b/src/arch/arm/pagetable.cc
@@ -51,6 +51,12 @@
const GrainSize GrainMap_tg1[] =
{ ReservedGrain, Grain16KB, Grain4KB, Grain64KB };
+Addr
+PageTableOps::walkMask(unsigned level) const
+{
+ return ~mask(walkBits(level));
+}
+
bool
V7LPageTableOps::isValid(pte_t pte, unsigned level) const
{
@@ -119,14 +125,14 @@
}
}
-Addr
-V7LPageTableOps::walkMask(unsigned level) const
+unsigned
+V7LPageTableOps::walkBits(unsigned level) const
{
switch (level) {
- case 1: return ~mask(30);
- case 2: return ~mask(21);
- case 3: return ~mask(12);
- default: panic("bad level %d", level);
+ case 1: return 30;
+ case 2: return 21;
+ case 3: return 12;
+ default: panic("bad level %d", level);
}
}
@@ -212,15 +218,15 @@
}
}
-Addr
-V8PageTableOps4k::walkMask(unsigned level) const
+unsigned
+V8PageTableOps4k::walkBits(unsigned level) const
{
switch (level) {
- case 0: return ~mask(39);
- case 1: return ~mask(30);
- case 2: return ~mask(21);
- case 3: return ~mask(12);
- default: panic("bad level %d", level);
+ case 0: return 39;
+ case 1: return 30;
+ case 2: return 21;
+ case 3: return 12;
+ default: panic("bad level %d", level);
}
}
@@ -323,15 +329,15 @@
}
}
-Addr
-V8PageTableOps16k::walkMask(unsigned level) const
+unsigned
+V8PageTableOps16k::walkBits(unsigned level) const
{
switch (level) {
- case 0: return ~mask(47);
- case 1: return ~mask(36);
- case 2: return ~mask(25);
- case 3: return ~mask(14);
- default: panic("bad level %d", level);
+ case 0: return 47;
+ case 1: return 36;
+ case 2: return 25;
+ case 3: return 14;
+ default: panic("bad level %d", level);
}
}
@@ -428,14 +434,14 @@
}
}
-Addr
-V8PageTableOps64k::walkMask(unsigned level) const
+unsigned
+V8PageTableOps64k::walkBits(unsigned level) const
{
switch (level) {
- case 1: return ~mask(42);
- case 2: return ~mask(29);
- case 3: return ~mask(16);
- default: panic("bad level %d", level);
+ case 1: return 42;
+ case 2: return 29;
+ case 3: return 16;
+ default: panic("bad level %d", level);
}
}
diff --git a/src/arch/arm/pagetable.hh b/src/arch/arm/pagetable.hh
index bf4a5f7..4cfdf2a 100644
--- a/src/arch/arm/pagetable.hh
+++ b/src/arch/arm/pagetable.hh
@@ -98,10 +98,12 @@
virtual Addr nextLevelPointer(pte_t pte, unsigned level) const = 0;
virtual Addr index(Addr va, unsigned level, int tsz) const = 0;
virtual Addr pageMask(pte_t pte, unsigned level) const = 0;
- virtual Addr walkMask(unsigned level) const = 0;
+ virtual unsigned walkBits(unsigned level) const = 0;
virtual LookupLevel firstLevel(uint8_t tsz) const = 0;
virtual LookupLevel firstS2Level(uint8_t sl0) const = 0;
virtual LookupLevel lastLevel() const = 0;
+
+ Addr walkMask(unsigned level) const;
};
struct V7LPageTableOps : public PageTableOps
@@ -112,7 +114,7 @@
Addr nextLevelPointer(pte_t pte, unsigned level) const override;
Addr index(Addr va, unsigned level, int tsz) const override;
Addr pageMask(pte_t pte, unsigned level) const override;
- Addr walkMask(unsigned level) const override;
+ unsigned walkBits(unsigned level) const override;
LookupLevel firstLevel(uint8_t tsz) const override;
LookupLevel lastLevel() const override;
};
@@ -125,7 +127,7 @@
Addr nextLevelPointer(pte_t pte, unsigned level) const override;
Addr index(Addr va, unsigned level, int tsz) const override;
Addr pageMask(pte_t pte, unsigned level) const override;
- Addr walkMask(unsigned level) const override;
+ unsigned walkBits(unsigned level) const override;
LookupLevel firstLevel(uint8_t tsz) const override;
LookupLevel firstS2Level(uint8_t sl0) const override;
LookupLevel lastLevel() const override;
@@ -139,7 +141,7 @@
Addr nextLevelPointer(pte_t pte, unsigned level) const override;
Addr index(Addr va, unsigned level, int tsz) const override;
Addr pageMask(pte_t pte, unsigned level) const override;
- Addr walkMask(unsigned level) const override;
+ unsigned walkBits(unsigned level) const override;
LookupLevel firstLevel(uint8_t tsz) const override;
LookupLevel firstS2Level(uint8_t sl0) const override;
LookupLevel lastLevel() const override;
@@ -153,7 +155,7 @@
Addr nextLevelPointer(pte_t pte, unsigned level) const override;
Addr index(Addr va, unsigned level, int tsz) const override;
Addr pageMask(pte_t pte, unsigned level) const override;
- Addr walkMask(unsigned level) const override;
+ unsigned walkBits(unsigned level) const override;
LookupLevel firstLevel(uint8_t tsz) const override;
LookupLevel firstS2Level(uint8_t sl0) const override;
LookupLevel lastLevel() const override;
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/52008
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I84cea3bcc5a3b566b8c26ebd3a54443c96199483
Gerrit-Change-Number: 52008
Gerrit-PatchSet: 4
Gerrit-Owner: Giacomo Travaglini <[email protected]>
Gerrit-Reviewer: Andreas Sandberg <[email protected]>
Gerrit-Reviewer: Giacomo Travaglini <[email protected]>
Gerrit-Reviewer: Jason Lowe-Power <[email protected]>
Gerrit-Reviewer: kokoro <[email protected]>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s