Hello,

I am using M5's inorder model (in ALPHA_SE mode).
I found out that the InOrderCPU::createBackEndSked only makes schedules for the MultDivUnit IF the instruction is an Integer multiplication/division. It doesn't do this for floating point mul/divs. Is there a special purpose for this?

Changing it to allow for fp mul/div only involves changing the following lines:
in cpu/inorder/cpu.cc in the function InOrderCPU::createBackEndSked:
---else if (inst->opClass() == IntMultOp || inst->opClass() == IntDivOp) {
        X.needs(MDU, MultDivUnit::StartMultDiv);

+++else if (inst->opClass() == IntMultOp || inst->opClass() == IntDivOp || inst->opClass() == FloatDivOp|| inst->opClass() == FloatMultOp ) {
        X.needs(MDU, MultDivUnit::StartMultDiv);

and similar lines in cpu/inorder/resources/mult_div_unit.cc (in functions MultDivUnit::getSlot, MultDivUnit::execute and MultDivUnit::exeMulDiv).


Kind regards,

Max
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to