Hi Tim,

It looks like you lost the initialization of isUncacheable... is that safe?

> diff --git a/src/cpu/base_dyn_inst.hh b/src/cpu/base_dyn_inst.hh
> --- a/src/cpu/base_dyn_inst.hh
> +++ b/src/cpu/base_dyn_inst.hh
> @@ -861,29 +871,14 @@
>     Request *req = new Request(asid, addr, sizeof(T), flags, this->PC,
>                                thread->contextId(), threadNumber);
>
> -    fault = cpu->dtb->translateAtomic(req, thread->getTC(), BaseTLB::Read);
> +    initiateTranslation(req, NULL, BaseTLB::Read);
>
> -    if (req->isUncacheable())
> -        isUncacheable = true;
> +    effAddr = req->getVaddr();
> +    effAddrValid = true;
> +    if (fault == NoFault) {
> +        cpu->read(req, data, lqIdx);
> +    } else {
>

Actually I'm not sure why we need that variable, and don't just have
BaseDynInst::uncacheable() call req->isUncacheable() directly (unless
there are times we call it when we don't have a req, but then how do
we know the right answer?).

Also I'd suggest just folding this patch in with your last patch that
fixes up TimingSimpleCPU too, basically getting there in one step
instead of two.

Thanks for all the great work!

Steve
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to