Yes, basically. Gabe
Quoting Paul Rosenfeld <[email protected]>:
Oh, Is it just assumed that the TLB flags will go into the lowest byte of the Request flags since the actual request flags seem to start in the second lowest byte? On Fri, Feb 24, 2012 at 2:09 PM, Paul Rosenfeld <[email protected]>wrote:Reading through the ARM code I've come across something puzzling. Take for example this code from my timing_simple_cpu_exec.cc file that is generated by the ISA parser: Fault LOAD_REG_AN_PN_SN_UN_WY_SZ4Acc::initiateAcc(TimingSimpleCPU *xc, Trace::InstRecord *traceData) const { *[snip]* unsigned *memAccessFlags = ArmISA::TLB::MustBeOne|3|ArmISA::TLB::AllowUnaligned;;* if (testPredicate(OptCondCodesNZ, OptShiftRmCondCodesC, OptCondCodesV, condCode)/*auto*/) { if (fault == NoFault) { fault = *readMemTiming(xc, traceData, EA, Mem, memAccessFlags);* } } else { xc->setPredicate(false); } return fault; } So here I've got memAccessFlags being set to a bunch of ArmISA::TLB flags and then being passed to readMemTiming() which will eventually end up in TimingSimpleCPU::readMem() as the flags variable. This variable will then be used to construct a Request: Fault TimingSimpleCPU::readMem(Addr addr, uint8_t *data, unsigned size, *unsigned flags*) { *[snip] * RequestPtr req = new Request(asid, addr, size, *flags*, pc, _cpuId, tid); However, as far as I understand it, the flags that the Request constructor is expecting is Request flags and not TLB flags. Am I misunderstanding something about how this works?
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
