phBArgs.op ← dFP;
phBArgs.state.cycle ← 1;
m ← [dontGetNextMacro: FALSE];
FPAddPLARow[ setMode, sigphBArgs, phBArgs, m];
m ← NoOpMicro;
FPAddPLARow[ sglUnCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglUnAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglUnCvt, sigphBArgs, phBArgs, m];
m ← [
dontGetNextMacro: TRUE,
xBSource: pc,
bReg: [ s, minus1 ],
xASource: fpLdAMsw,
euPBusCmd: StoreFP ];
FPAddPLARow[ dblUnCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblUnAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblUnCvt, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglBiCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglBiAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglBiMult, sigphBArgs, phBArgs, m];
m ← [
dontGetNextMacro: TRUE,
xBSource: pc,
bReg: [ s, minus1 ],
xASource: fpLdBMsw,
euPBusCmd: StoreFP ];
FPAddPLARow[ dblBiCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblBiAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblBiMult, sigphBArgs, phBArgs, m];
phBArgs.state.cycle ← 2;
m ← NoOpMicro;
FPAddPLARow[ sglUnCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglUnAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglUnCvt, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblUnCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblUnAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblUnCvt, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglBiCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglBiAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglBiMult, sigphBArgs, phBArgs, m];
m ← [
dontGetNextMacro: TRUE,
xBSource: pc,
bReg: [ s, minus2 ],
xASource: fpLdALsw,
euPBusCmd: StoreFP ];
FPAddPLARow[ dblBiCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblBiAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblBiMult, sigphBArgs, phBArgs, m];
phBArgs.state.cycle ← 3;
m ← NoOpMicro;
FPAddPLARow[ sglUnCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglUnAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglUnCvt, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblUnCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblUnAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblUnCvt, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglBiCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglBiAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglBiMult, sigphBArgs, phBArgs, m];
m ← [
dontGetNextMacro: TRUE,
xBSource: pc,
bReg: [ s, minus3 ],
xASource: fpLdAMsw,
euPBusCmd: StoreFP ];
FPAddPLARow[ dblBiCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblBiAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblBiMult, sigphBArgs, phBArgs, m];
phBArgs.state.cycle ← 4;
m ← [
dontGetNextMacro: FALSE,
deltaSa: pop,
xASource: fpUnldMsw,
euPBusCmd: FetchFPAlu ];
FPAddPLARow[ sglUnCom, sigphBArgs, phBArgs, m];
m ← [
dontGetNextMacro: FALSE,
cReg: [ s, zero ],
xASource: fpUnldMsw,
euPBusCmd: FetchFPAlu ];
FPAddPLARow[ sglUnAlu, sigphBArgs, phBArgs, m];
m ← [
dontGetNextMacro: TRUE,
xBSource: pc,
cReg: [ s, zero ],
xASource: fpUnldMsw,
euPBusCmd: FetchFPAlu ];
FPAddPLARow[ sglUnCvt, sigphBArgs, phBArgs, m];
m ← NoOpMicro;
FPAddPLARow[ dblUnCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblUnAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblUnCvt, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglBiCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglBiAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglBiMult, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblBiCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblBiAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblBiMult, sigphBArgs, phBArgs, m];
phBArgs.state.cycle ← 5;
m ← [
dontGetNextMacro: FALSE,
deltaSc: push,
cReg: [ s, one ],
xASource: fpUnldLsw,
euPBusCmd: FetchFPAlu ];
FPAddPLARow[ sglUnCvt, sigphBArgs, phBArgs, m];
m ← [
dontGetNextMacro: FALSE,
deltaSa: pop,
deltaSb: pop,
xASource: fpUnldMsw,
euPBusCmd: FetchFPAlu ];
FPAddPLARow[ dblUnCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglBiCom, sigphBArgs, phBArgs, m];
m ← [
dontGetNextMacro: TRUE,
xBSource: pc,
cReg: [ s, minus1 ],
xASource: fpUnldMsw,
euPBusCmd: FetchFPAlu ];
FPAddPLARow[ dblUnAlu, sigphBArgs, phBArgs, m];
m ← [
dontGetNextMacro: FALSE,
deltaSa: pop,
cReg: [ s, minus1 ],
xASource: fpUnldMsw,
euPBusCmd: FetchFPAlu ];
FPAddPLARow[ dblUnCvt, sigphBArgs, phBArgs, m];
FPAddPLARow[ sglBiAlu, sigphBArgs, phBArgs, m];
m ← [
dontGetNextMacro: FALSE,
deltaSa: pop,
cReg: [ s, minus1 ],
xASource: fpUnldMsw,
euPBusCmd: FetchFPMult ];
FPAddPLARow[ sglBiMult, sigphBArgs, phBArgs, m];
m ← NoOpMicro;
FPAddPLARow[ dblBiCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblBiAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblBiMult, sigphBArgs, phBArgs, m];
phBArgs.state.cycle ← 6;
m ← [
dontGetNextMacro: FALSE,
cReg: [ s, zero ],
xASource: fpUnldLsw,
euPBusCmd: FetchFPAlu ];
FPAddPLARow[ dblUnAlu, sigphBArgs, phBArgs, m];
m ← NoOpMicro;
FPAddPLARow[ dblBiCom, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblBiAlu, sigphBArgs, phBArgs, m];
FPAddPLARow[ dblBiMult, sigphBArgs, phBArgs, m];
phBArgs.state.cycle ← 7;
m ← [
dontGetNextMacro: TRUE,
xBSource: pc,
deltaSa: pop,
deltaSb: pop, -- Two more left for next cycle
xASource: fpUnldMsw,
euPBusCmd: FetchFPAlu ];
FPAddPLARow[ dblBiCom, sigphBArgs, phBArgs, m];
m ← [
dontGetNextMacro: TRUE,
xBSource: pc,
cReg: [ s, minus3 ],
xASource: fpUnldMsw,
euPBusCmd: FetchFPAlu ];
FPAddPLARow[ dblBiAlu, sigphBArgs, phBArgs, m];
m ← NoOpMicro;
FPAddPLARow[ dblBiMult, sigphBArgs, phBArgs, m];
phBArgs.state.cycle ← 8;
m ← [
dontGetNextMacro: FALSE,
deltaSa: pop,
deltaSb: pop, -- Last two
xASource: fpUnldMsw,
euPBusCmd: FetchFPAlu ];
FPAddPLARow[ dblBiCom, sigphBArgs, phBArgs, m];
m ← [
dontGetNextMacro: FALSE,
deltaSa: pop,
deltaSb: pop,
cReg: [ s, minus2 ],
xASource: fpUnldLsw,
euPBusCmd: FetchFPAlu ];
FPAddPLARow[ dblBiAlu, sigphBArgs, phBArgs, m];
m ← [
dontGetNextMacro: TRUE,
xBSource: pc,
cReg: [ s, minus3 ],
xASource: fpUnldMsw,
euPBusCmd: FetchFPMult ];
FPAddPLARow[ dblBiMult, sigphBArgs, phBArgs, m];
phBArgs.state.cycle ← 9;
m ← [
dontGetNextMacro: FALSE,
deltaSa: pop,
deltaSb: pop,
cReg: [ s, minus2 ],
xASource: fpUnldLsw,
euPBusCmd: FetchFPMult ];
FPAddPLARow[ dblBiMult, sigphBArgs, phBArgs, m];