How is squash handled in gem5 o3 CPU? What's exactly done in squash?

>From codes under src/cpu/o3, there are squash functions defined in
different pipeline resources, like iew, inst_queue, lsq etc. Does this mean
each part can initialize squash?

In following code, when an instruction is squashed, why we still set it as
Executed and canCommited?

Thanks

DefaultIEW<Impl>::executeInsts()

// Check if the instruction is squashed; if so then skip it
        if (inst->isSquashed()) {
            inst->setExecuted();

            inst->setCanCommit();

            ++iewExecSquashedInsts;

            decrWb(inst->seqNum);
            continue;
        }
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to