Gabe Black has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/26546 )
Change subject: arm: Eliminate the MustBeOne ARM specific request flag.
......................................................................
arm: Eliminate the MustBeOne ARM specific request flag.
This flag makes constructing a generic Request object for ARM
impossible, since generic consumers won't know to set that flag to one.
As a principle, Request flags should change the behavior of a request
away from whatever the default/typical behavior is in the current
context, so flags set to zero means no special behavior.
Change-Id: Id606dc0bf42210218e1745585327671a98a8dba4
---
M src/arch/arm/insts/macromem.cc
M src/arch/arm/insts/macromem.hh
M src/arch/arm/insts/sve_mem.hh
M src/arch/arm/isa.cc
M src/arch/arm/isa/formats/fp.isa
M src/arch/arm/isa/insts/amo64.isa
M src/arch/arm/isa/insts/branch.isa
M src/arch/arm/isa/insts/data64.isa
M src/arch/arm/isa/insts/ldr.isa
M src/arch/arm/isa/insts/ldr64.isa
M src/arch/arm/isa/insts/misc.isa
M src/arch/arm/isa/insts/str.isa
M src/arch/arm/isa/insts/str64.isa
M src/arch/arm/isa/templates/sve_mem.isa
M src/arch/arm/table_walker.cc
M src/arch/arm/tlb.cc
M src/arch/arm/tlb.hh
M src/arch/arm/tracers/tarmac_parser.cc
18 files changed, 47 insertions(+), 87 deletions(-)
diff --git a/src/arch/arm/insts/macromem.cc b/src/arch/arm/insts/macromem.cc
index 125e0f8..211a176 100644
--- a/src/arch/arm/insts/macromem.cc
+++ b/src/arch/arm/insts/macromem.cc
@@ -472,7 +472,7 @@
RegIndex rMid = deinterleave ? VecSpecialElem : vd * 2;
- uint32_t noAlign = TLB::MustBeOne;
+ uint32_t noAlign = 0;
unsigned uopIdx = 0;
switch (regs) {
@@ -833,7 +833,7 @@
if (interleave) numMicroops += (regs / elems);
microOps = new StaticInstPtr[numMicroops];
- uint32_t noAlign = TLB::MustBeOne;
+ uint32_t noAlign = 0;
RegIndex rMid = interleave ? VecSpecialElem : vd * 2;
@@ -1143,8 +1143,7 @@
microOps = new StaticInstPtr[numMicroops];
unsigned uopIdx = 0;
- uint32_t memaccessFlags = TLB::MustBeOne | (TLB::ArmFlags) eSize |
- TLB::AllowUnaligned;
+ uint32_t memaccessFlags = (TLB::ArmFlags)eSize | TLB::AllowUnaligned;
int i = 0;
for (; i < numMemMicroops - 1; ++i) {
@@ -1251,8 +1250,7 @@
}
}
- uint32_t memaccessFlags = TLB::MustBeOne | (TLB::ArmFlags) eSize |
- TLB::AllowUnaligned;
+ uint32_t memaccessFlags = (TLB::ArmFlags)eSize | TLB::AllowUnaligned;
int i = 0;
for (; i < numMemMicroops - 1; ++i) {
@@ -1319,8 +1317,7 @@
microOps = new StaticInstPtr[numMicroops];
unsigned uopIdx = 0;
- uint32_t memaccessFlags = TLB::MustBeOne | (TLB::ArmFlags) eSize |
- TLB::AllowUnaligned;
+ uint32_t memaccessFlags = (TLB::ArmFlags)eSize | TLB::AllowUnaligned;
int i = 0;
for (; i < numMemMicroops - 1; ++i) {
@@ -1398,8 +1395,7 @@
numStructElems, index, i /* step */, replicate);
}
- uint32_t memaccessFlags = TLB::MustBeOne | (TLB::ArmFlags) eSize |
- TLB::AllowUnaligned;
+ uint32_t memaccessFlags = (TLB::ArmFlags)eSize | TLB::AllowUnaligned;
int i = 0;
for (; i < numMemMicroops - 1; ++i) {
diff --git a/src/arch/arm/insts/macromem.hh b/src/arch/arm/insts/macromem.hh
index b3ba76d..94a3e0f 100644
--- a/src/arch/arm/insts/macromem.hh
+++ b/src/arch/arm/insts/macromem.hh
@@ -118,8 +118,7 @@
MicroNeonMemOp(const char *mnem, ExtMachInst machInst, OpClass
__opClass,
RegIndex _dest, RegIndex _ura, uint32_t _imm)
: MicroOp(mnem, machInst, __opClass),
- dest(_dest), ura(_ura), imm(_imm),
- memAccessFlags(TLB::MustBeOne)
+ dest(_dest), ura(_ura), imm(_imm), memAccessFlags()
{
}
};
@@ -393,7 +392,7 @@
MicroMemOp(const char *mnem, ExtMachInst machInst, OpClass __opClass,
RegIndex _ura, RegIndex _urb, bool _up, uint8_t _imm)
: MicroIntImmOp(mnem, machInst, __opClass, _ura, _urb, _imm),
- up(_up), memAccessFlags(TLB::MustBeOne | TLB::AlignWord)
+ up(_up), memAccessFlags(TLB::AlignWord)
{
}
@@ -414,7 +413,7 @@
bool _up, uint8_t _imm)
: MicroOp(mnem, machInst, __opClass),
dest(_dreg1), dest2(_dreg2), urb(_base), up(_up), imm(_imm),
- memAccessFlags(TLB::MustBeOne | TLB::AlignWord)
+ memAccessFlags(TLB::AlignWord)
{
}
diff --git a/src/arch/arm/insts/sve_mem.hh b/src/arch/arm/insts/sve_mem.hh
index 7625374..4865113 100644
--- a/src/arch/arm/insts/sve_mem.hh
+++ b/src/arch/arm/insts/sve_mem.hh
@@ -61,7 +61,7 @@
IntRegIndex _base, uint64_t _imm)
: ArmStaticInst(mnem, _machInst, __opClass),
dest(_dest), base(_base), imm(_imm),
- memAccessFlags(ArmISA::TLB::AllowUnaligned |
ArmISA::TLB::MustBeOne)
+ memAccessFlags(ArmISA::TLB::AllowUnaligned)
{
baseIsSP = isSP(_base);
}
@@ -86,7 +86,7 @@
IntRegIndex _base, uint64_t _imm)
: ArmStaticInst(mnem, _machInst, __opClass),
dest(_dest), base(_base), imm(_imm),
- memAccessFlags(ArmISA::TLB::AllowUnaligned |
ArmISA::TLB::MustBeOne)
+ memAccessFlags(ArmISA::TLB::AllowUnaligned)
{
baseIsSP = isSP(_base);
}
@@ -112,7 +112,7 @@
IntRegIndex _offset)
: ArmStaticInst(mnem, _machInst, __opClass),
dest(_dest), gp(_gp), base(_base), offset(_offset),
- memAccessFlags(ArmISA::TLB::AllowUnaligned |
ArmISA::TLB::MustBeOne)
+ memAccessFlags(ArmISA::TLB::AllowUnaligned)
{
baseIsSP = isSP(_base);
}
@@ -138,7 +138,7 @@
uint64_t _imm)
: ArmStaticInst(mnem, _machInst, __opClass),
dest(_dest), gp(_gp), base(_base), imm(_imm),
- memAccessFlags(ArmISA::TLB::AllowUnaligned |
ArmISA::TLB::MustBeOne)
+ memAccessFlags(ArmISA::TLB::AllowUnaligned)
{
baseIsSP = isSP(_base);
}
diff --git a/src/arch/arm/isa.cc b/src/arch/arm/isa.cc
index b2175cb..2cc0f95 100644
--- a/src/arch/arm/isa.cc
+++ b/src/arch/arm/isa.cc
@@ -1680,60 +1680,54 @@
Fault fault;
switch(misc_reg) {
case MISCREG_ATS1CPR:
- flags = TLB::MustBeOne;
tranType = TLB::S1CTran;
mode = BaseTLB::Read;
break;
case MISCREG_ATS1CPW:
- flags = TLB::MustBeOne;
tranType = TLB::S1CTran;
mode = BaseTLB::Write;
break;
case MISCREG_ATS1CUR:
- flags = TLB::MustBeOne | TLB::UserMode;
+ flags = TLB::UserMode;
tranType = TLB::S1CTran;
mode = BaseTLB::Read;
break;
case MISCREG_ATS1CUW:
- flags = TLB::MustBeOne | TLB::UserMode;
+ flags = TLB::UserMode;
tranType = TLB::S1CTran;
mode = BaseTLB::Write;
break;
case MISCREG_ATS12NSOPR:
if (!haveSecurity)
panic("Security Extensions required for ATS12NSOPR");
- flags = TLB::MustBeOne;
tranType = TLB::S1S2NsTran;
mode = BaseTLB::Read;
break;
case MISCREG_ATS12NSOPW:
if (!haveSecurity)
panic("Security Extensions required for ATS12NSOPW");
- flags = TLB::MustBeOne;
tranType = TLB::S1S2NsTran;
mode = BaseTLB::Write;
break;
case MISCREG_ATS12NSOUR:
if (!haveSecurity)
panic("Security Extensions required for ATS12NSOUR");
- flags = TLB::MustBeOne | TLB::UserMode;
+ flags = TLB::UserMode;
tranType = TLB::S1S2NsTran;
mode = BaseTLB::Read;
break;
case MISCREG_ATS12NSOUW:
if (!haveSecurity)
panic("Security Extensions required for ATS12NSOUW");
- flags = TLB::MustBeOne | TLB::UserMode;
+ flags = TLB::UserMode;
tranType = TLB::S1S2NsTran;
mode = BaseTLB::Write;
break;
case MISCREG_ATS1HR: // only really useful from secure
mode.
- flags = TLB::MustBeOne;
tranType = TLB::HypMode;
mode = BaseTLB::Read;
break;
case MISCREG_ATS1HW:
- flags = TLB::MustBeOne;
tranType = TLB::HypMode;
mode = BaseTLB::Write;
break;
@@ -1947,62 +1941,54 @@
Fault fault;
switch(misc_reg) {
case MISCREG_AT_S1E1R_Xt:
- flags = TLB::MustBeOne;
tranType = TLB::S1E1Tran;
mode = BaseTLB::Read;
break;
case MISCREG_AT_S1E1W_Xt:
- flags = TLB::MustBeOne;
tranType = TLB::S1E1Tran;
mode = BaseTLB::Write;
break;
case MISCREG_AT_S1E0R_Xt:
- flags = TLB::MustBeOne | TLB::UserMode;
+ flags = TLB::UserMode;
tranType = TLB::S1E0Tran;
mode = BaseTLB::Read;
break;
case MISCREG_AT_S1E0W_Xt:
- flags = TLB::MustBeOne | TLB::UserMode;
+ flags = TLB::UserMode;
tranType = TLB::S1E0Tran;
mode = BaseTLB::Write;
break;
case MISCREG_AT_S1E2R_Xt:
- flags = TLB::MustBeOne;
tranType = TLB::S1E2Tran;
mode = BaseTLB::Read;
break;
case MISCREG_AT_S1E2W_Xt:
- flags = TLB::MustBeOne;
tranType = TLB::S1E2Tran;
mode = BaseTLB::Write;
break;
case MISCREG_AT_S12E0R_Xt:
- flags = TLB::MustBeOne | TLB::UserMode;
+ flags = TLB::UserMode;
tranType = TLB::S12E0Tran;
mode = BaseTLB::Read;
break;
case MISCREG_AT_S12E0W_Xt:
- flags = TLB::MustBeOne | TLB::UserMode;
+ flags = TLB::UserMode;
tranType = TLB::S12E0Tran;
mode = BaseTLB::Write;
break;
case MISCREG_AT_S12E1R_Xt:
- flags = TLB::MustBeOne;
tranType = TLB::S12E1Tran;
mode = BaseTLB::Read;
break;
case MISCREG_AT_S12E1W_Xt:
- flags = TLB::MustBeOne;
tranType = TLB::S12E1Tran;
mode = BaseTLB::Write;
break;
case MISCREG_AT_S1E3R_Xt:
- flags = TLB::MustBeOne;
tranType = TLB::S1E3Tran;
mode = BaseTLB::Read;
break;
case MISCREG_AT_S1E3W_Xt:
- flags = TLB::MustBeOne;
tranType = TLB::S1E3Tran;
mode = BaseTLB::Write;
break;
diff --git a/src/arch/arm/isa/formats/fp.isa
b/src/arch/arm/isa/formats/fp.isa
index 0b99cc6..de0fdd2 100644
--- a/src/arch/arm/isa/formats/fp.isa
+++ b/src/arch/arm/isa/formats/fp.isa
@@ -141,7 +141,7 @@
bits(machInst, 22) << 4);
const uint32_t type = bits(machInst, 11, 8);
uint32_t size = 0;
- uint32_t align = TLB::MustBeOne;
+ uint32_t align = 0;
unsigned inc = 1;
unsigned regs = 1;
unsigned lane = 0;
diff --git a/src/arch/arm/isa/insts/amo64.isa
b/src/arch/arm/isa/insts/amo64.isa
index 86ee7ba..6d3a515 100644
--- a/src/arch/arm/isa/insts/amo64.isa
+++ b/src/arch/arm/isa/insts/amo64.isa
@@ -75,7 +75,7 @@
self.top = top
self.paired = paired
- self.memFlags = ["ArmISA::TLB::MustBeOne"]
+ self.memFlags = []
self.instFlags = ["IsAtomic"]
self.codeBlobs = { "postacc_code" : "" }
self.codeBlobs['usrDecl'] = ""
diff --git a/src/arch/arm/isa/insts/branch.isa
b/src/arch/arm/isa/insts/branch.isa
index 69a220e..f61d0c5 100644
--- a/src/arch/arm/isa/insts/branch.isa
+++ b/src/arch/arm/isa/insts/branch.isa
@@ -188,8 +188,7 @@
if isTbh:
eaCode = '''
unsigned memAccessFlags = ArmISA::TLB::AllowUnaligned |
- ArmISA::TLB::AlignHalfWord |
- ArmISA::TLB::MustBeOne;
+ ArmISA::TLB::AlignHalfWord;
EA = Op1 + Op2 * 2
'''
accCode = 'NPC = PC + 2 * (Mem_uh);\n'
@@ -197,8 +196,7 @@
else:
eaCode = '''
unsigned memAccessFlags = ArmISA::TLB::AllowUnaligned |
- ArmISA::TLB::AlignByte |
- ArmISA::TLB::MustBeOne;
+ ArmISA::TLB::AlignByte;
EA = Op1 + Op2
'''
accCode = 'NPC = PC + 2 * (Mem_ub)'
diff --git a/src/arch/arm/isa/insts/data64.isa
b/src/arch/arm/isa/insts/data64.isa
index 16b3c57..3c1e941 100644
--- a/src/arch/arm/isa/insts/data64.isa
+++ b/src/arch/arm/isa/insts/data64.isa
@@ -386,8 +386,7 @@
msrdczva_ea_code = msr_check_code
msrdczva_ea_code += '''
- Request::Flags memAccessFlags = Request::CACHE_BLOCK_ZERO |
- ArmISA::TLB::MustBeOne;
+ Request::Flags memAccessFlags = Request::CACHE_BLOCK_ZERO;
EA = XBase;
assert(!(Dczid & 0x10));
uint64_t op_size = power(2, Dczid + 2);
@@ -418,8 +417,7 @@
msrdccvau_ea_code = msr_check_code
msrdccvau_ea_code += '''
- Request::Flags memAccessFlags = Request::CLEAN |
Request::DST_POU |
- ArmISA::TLB::MustBeOne;
+ Request::Flags memAccessFlags = Request::CLEAN |
Request::DST_POU;
EA = XBase;
faultAddr = EA;
System *sys = xc->tcBase()->getSystemPtr();
@@ -443,8 +441,7 @@
msrdccvac_ea_code = msr_check_code
msrdccvac_ea_code += '''
- Request::Flags memAccessFlags = Request::CLEAN |
Request::DST_POC |
- ArmISA::TLB::MustBeOne;
+ Request::Flags memAccessFlags = Request::CLEAN |
Request::DST_POC;
EA = XBase;
faultAddr = EA;
System *sys = xc->tcBase()->getSystemPtr();
@@ -469,7 +466,7 @@
msrdccivac_ea_code = msr_check_code
msrdccivac_ea_code += '''
Request::Flags memAccessFlags = Request::CLEAN |
- Request::INVALIDATE | Request::DST_POC |
ArmISA::TLB::MustBeOne;
+ Request::INVALIDATE | Request::DST_POC;
EA = XBase;
faultAddr = EA;
System *sys = xc->tcBase()->getSystemPtr();
@@ -494,7 +491,7 @@
msrdcivac_ea_code = msr_check_code
msrdcivac_ea_code += '''
Request::Flags memAccessFlags = Request::INVALIDATE |
- Request::DST_POC | ArmISA::TLB::MustBeOne;
+ Request::DST_POC;
EA = XBase;
faultAddr = EA;
HCR hcr = Hcr64;
diff --git a/src/arch/arm/isa/insts/ldr.isa b/src/arch/arm/isa/insts/ldr.isa
index cab3cff..dc1d650 100644
--- a/src/arch/arm/isa/insts/ldr.isa
+++ b/src/arch/arm/isa/insts/ldr.isa
@@ -64,10 +64,11 @@
else:
self.op = " -"
- self.memFlags = ["ArmISA::TLB::MustBeOne"]
+ self.memFlags = []
self.codeBlobs = {"postacc_code" : ""}
- def emitHelper(self, base = 'Memory', wbDecl = None, instFlags =
[], pcDecl = None):
+ def emitHelper(self, base='Memory', wbDecl=None, instFlags=[],
+ pcDecl=None):
global header_output, decoder_output, exec_output
diff --git a/src/arch/arm/isa/insts/ldr64.isa
b/src/arch/arm/isa/insts/ldr64.isa
index 96bf642..4f12509 100644
--- a/src/arch/arm/isa/insts/ldr64.isa
+++ b/src/arch/arm/isa/insts/ldr64.isa
@@ -58,7 +58,7 @@
self.flavor = flavor
self.top = top
- self.memFlags = ["ArmISA::TLB::MustBeOne"]
+ self.memFlags = []
self.instFlags = []
self.codeBlobs = {"postacc_code" : ""}
diff --git a/src/arch/arm/isa/insts/misc.isa
b/src/arch/arm/isa/insts/misc.isa
index 0c6fdc3..f32d733 100644
--- a/src/arch/arm/isa/insts/misc.isa
+++ b/src/arch/arm/isa/insts/misc.isa
@@ -1119,8 +1119,7 @@
'''
McrDcimvacCode = '''
- const Request::Flags memAccessFlags(ArmISA::TLB::MustBeOne |
- Request::INVALIDATE |
+ const Request::Flags memAccessFlags(Request::INVALIDATE |
Request::DST_POC);
EA = Op1;
'''
@@ -1138,8 +1137,7 @@
Mcr15CompleteAcc.subst(McrDcimvacIop)
McrDccmvacCode = '''
- const Request::Flags memAccessFlags(ArmISA::TLB::MustBeOne |
- Request::CLEAN |
+ const Request::Flags memAccessFlags(Request::CLEAN |
Request::DST_POC);
EA = Op1;
'''
@@ -1157,8 +1155,7 @@
Mcr15CompleteAcc.subst(McrDccmvacIop)
McrDccmvauCode = '''
- const Request::Flags memAccessFlags(ArmISA::TLB::MustBeOne |
- Request::CLEAN |
+ const Request::Flags memAccessFlags(Request::CLEAN |
Request::DST_POU);
EA = Op1;
'''
@@ -1176,8 +1173,7 @@
Mcr15CompleteAcc.subst(McrDccmvauIop)
McrDccimvacCode = '''
- const Request::Flags memAccessFlags(ArmISA::TLB::MustBeOne |
- Request::CLEAN |
+ const Request::Flags memAccessFlags(Request::CLEAN |
Request::INVALIDATE |
Request::DST_POC);
EA = Op1;
diff --git a/src/arch/arm/isa/insts/str.isa b/src/arch/arm/isa/insts/str.isa
index 38c1ccb..f542478 100644
--- a/src/arch/arm/isa/insts/str.isa
+++ b/src/arch/arm/isa/insts/str.isa
@@ -63,7 +63,7 @@
else:
self.op = " -"
- self.memFlags = ["ArmISA::TLB::MustBeOne"]
+ self.memFlags = []
self.codeBlobs = { "postacc_code" : "" }
def emitHelper(self, base = 'Memory', wbDecl = None):
@@ -137,8 +137,7 @@
(newHeader,
newDecoder,
newExec) = self.fillTemplates(self.name, self.Name, codeBlobs,
- ["ArmISA::TLB::AlignWord", "ArmISA::TLB::MustBeOne"], [],
- 'SrsOp', wbDecl)
+ ["ArmISA::TLB::AlignWord"], [], 'SrsOp', wbDecl)
header_output += newHeader
decoder_output += newDecoder
diff --git a/src/arch/arm/isa/insts/str64.isa
b/src/arch/arm/isa/insts/str64.isa
index 58ca3df..22d1456 100644
--- a/src/arch/arm/isa/insts/str64.isa
+++ b/src/arch/arm/isa/insts/str64.isa
@@ -56,7 +56,7 @@
self.flavor = flavor
self.top = top
- self.memFlags = ["ArmISA::TLB::MustBeOne"]
+ self.memFlags = []
self.instFlags = []
self.codeBlobs = { "postacc_code" : "" }
diff --git a/src/arch/arm/isa/templates/sve_mem.isa
b/src/arch/arm/isa/templates/sve_mem.isa
index bd9cb83..fc31b2d 100644
--- a/src/arch/arm/isa/templates/sve_mem.isa
+++ b/src/arch/arm/isa/templates/sve_mem.isa
@@ -408,8 +408,7 @@
dest(_dest), gp(_gp), base(_base), imm(_imm),
elemIndex(_elemIndex), numElems(_numElems),
firstFault(_firstFault),
- memAccessFlags(ArmISA::TLB::AllowUnaligned |
- ArmISA::TLB::MustBeOne)
+ memAccessFlags(ArmISA::TLB::AllowUnaligned)
{
%(constructor)s;
if (_opClass == MemReadOp && elemIndex == 0) {
@@ -488,8 +487,7 @@
offsetIs32(_offsetIs32), offsetIsSigned(_offsetIsSigned),
offsetIsScaled(_offsetIsScaled), elemIndex(_elemIndex),
numElems(_numElems), firstFault(_firstFault),
- memAccessFlags(ArmISA::TLB::AllowUnaligned |
- ArmISA::TLB::MustBeOne)
+ memAccessFlags(ArmISA::TLB::AllowUnaligned)
{
%(constructor)s;
if (_opClass == MemReadOp && elemIndex == 0) {
@@ -847,8 +845,7 @@
: %(base_class)s(mnem, machInst, %(op_class)s),
dest(_dest), gp(_gp), base(_base), imm(_imm),
numRegs(_numRegs), regIndex(_regIndex),
- memAccessFlags(ArmISA::TLB::AllowUnaligned |
- ArmISA::TLB::MustBeOne)
+ memAccessFlags(ArmISA::TLB::AllowUnaligned)
{
%(constructor)s;
baseIsSP = isSP(_base);
@@ -1111,8 +1108,7 @@
: %(base_class)s(mnem, machInst, %(op_class)s),
dest(_dest), gp(_gp), base(_base), offset(_offset),
numRegs(_numRegs), regIndex(_regIndex),
- memAccessFlags(ArmISA::TLB::AllowUnaligned |
- ArmISA::TLB::MustBeOne)
+ memAccessFlags(ArmISA::TLB::AllowUnaligned)
{
%(constructor)s;
baseIsSP = isSP(_base);
diff --git a/src/arch/arm/table_walker.cc b/src/arch/arm/table_walker.cc
index 89eb9c7..51bb8ec 100644
--- a/src/arch/arm/table_walker.cc
+++ b/src/arch/arm/table_walker.cc
@@ -2014,7 +2014,6 @@
// check here.
if (currState->stage2Req) {
Fault fault;
- flags = flags | TLB::MustBeOne;
if (isTiming) {
Stage2MMU::Stage2Translation *tran = new
diff --git a/src/arch/arm/tlb.cc b/src/arch/arm/tlb.cc
index 31836e1..5a92a0c 100644
--- a/src/arch/arm/tlb.cc
+++ b/src/arch/arm/tlb.cc
@@ -549,7 +549,6 @@
bool is_write = (mode == Write);
if (!is_fetch) {
- assert(flags & MustBeOne || req->isPrefetch());
if (sctlr.a || !(flags & AllowUnaligned)) {
if (vaddr & mask(flags & AlignmentMask)) {
// LPAE is always disabled in SE mode
@@ -1165,7 +1164,6 @@
req->setFlags(Request::STRICT_ORDER);
}
if (!is_fetch) {
- assert(flags & MustBeOne || req->isPrefetch());
if (sctlr.a || !(flags & AllowUnaligned)) {
if (vaddr & mask(flags & AlignmentMask)) {
alignFaults++;
diff --git a/src/arch/arm/tlb.hh b/src/arch/arm/tlb.hh
index 428a445..4efbe02 100644
--- a/src/arch/arm/tlb.hh
+++ b/src/arch/arm/tlb.hh
@@ -113,11 +113,7 @@
AllowUnaligned = 0x8,
// Priv code operating as if it wasn't
- UserMode = 0x10,
- // Because zero otherwise looks like a valid setting and may be
used
- // accidentally, this bit must be non-zero to show it was used on
- // purpose.
- MustBeOne = 0x40
+ UserMode = 0x10
};
enum ArmTranslationType {
diff --git a/src/arch/arm/tracers/tarmac_parser.cc
b/src/arch/arm/tracers/tarmac_parser.cc
index 8f1974d..a5fc32d 100644
--- a/src/arch/arm/tracers/tarmac_parser.cc
+++ b/src/arch/arm/tracers/tarmac_parser.cc
@@ -873,8 +873,7 @@
ostream &outs = Trace::output();
uint64_t written_data = 0;
- unsigned mem_flags = ArmISA::TLB::MustBeOne | 3 |
- ArmISA::TLB::AllowUnaligned;
+ unsigned mem_flags = 3 | ArmISA::TLB::AllowUnaligned;
ISetState isetstate;
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/26546
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: Id606dc0bf42210218e1745585327671a98a8dba4
Gerrit-Change-Number: 26546
Gerrit-PatchSet: 1
Gerrit-Owner: Gabe Black <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev