diff --git a/pages/index.js b/pages/index.js index 1e61062..1f94fb0 100644 --- a/pages/index.js +++ b/pages/index.js @@ -31,39 +31,39 @@ export default function Home() { let instructionList = [ { operacao: "LD", - registradorR: "F6", + registradorR: "R6", registradorS: "32", registradorT: "R2", }, { operacao: "LD", - registradorR: "F2", + registradorR: "R2", registradorS: "44", registradorT: "R3", }, { - operacao: "MULTD", - registradorR: "F0", - registradorS: "F2", - registradorT: "F4", + operacao: "MULT", + registradorR: "R0", + registradorS: "R2", + registradorT: "R4", }, { - operacao: "SUBD", - registradorR: "F8", - registradorS: "F2", - registradorT: "F6", + operacao: "SUB", + registradorR: "R8", + registradorS: "R2", + registradorT: "R6", }, { - operacao: "DIVD", - registradorR: "F10", - registradorS: "F0", - registradorT: "F6", + operacao: "DIV", + registradorR: "R10", + registradorS: "R0", + registradorT: "R6", }, { - operacao: "ADDD", - registradorR: "F6", - registradorS: "F8", - registradorT: "F2", + operacao: "ADD", + registradorR: "R6", + registradorS: "R8", + registradorT: "R2", } ]; @@ -125,15 +125,13 @@ export default function Home() { > - - - + - + - + diff --git a/pages/runner.js b/pages/runner.js index bbf8b14..850aca0 100644 --- a/pages/runner.js +++ b/pages/runner.js @@ -174,26 +174,22 @@ export default function Home() { console.log("getFunctionalUnity:", instr.operacao); switch (instr.operacao) { - case 'ADDD': - return 'Add' - case 'SUBD': - return 'Add' - case 'MULTD': - return 'Mult' - case 'DIVD': - return 'Mult' - case 'LD': - return 'Load' - case 'SD': - return 'Store' case 'ADD': - return 'Integer' - case 'DADDUI': - return 'Integer' + return 'Add' case 'BEQ': return 'Integer' case 'BNEZ': return 'Integer' + case 'DIV': + return 'Mult' + case 'LD': + return 'Load' + case 'MULT': + return 'Mult' + case 'SD': + return 'Store' + case 'SUB': + return 'Add' } } @@ -227,26 +223,22 @@ export default function Home() { function getCycles(instrucao) { switch (instrucao.operacao) { - case 'ADDD': - return 1; - case 'SUBD': - return 1; - case 'MULTD': - return 1; - case 'DIVD': - return 1; - case 'LD': - return 1; - case 'SD': - return 1; case 'ADD': return 1; - case 'DADDUI': - return 1; case 'BEQ': return 1; case 'BNEZ': return 1; + case 'DIV': + return 1; + case 'LD': + return 1; + case 'MULT': + return 1; + case 'SD': + return 1; + case 'SUB': + return 1; } } @@ -263,13 +255,13 @@ export default function Home() { let reg_k_inst; if ((instrucao.operacao === 'BNEZ') || (instrucao.operacao === 'BEQ')) { - reg_j = registerStatus[instrucao.registradorR.replace('R','').replace('F','')]; - reg_k = registerStatus[instrucao.registradorS.replace('R','').replace('F','')]; + reg_j = registerStatus[instrucao.registradorR.replace('R', '')]; + reg_k = registerStatus[instrucao.registradorS.replace('R', '')]; reg_j_inst = instrucao.registradorR; reg_k_inst = instrucao.registradorS; } else { - reg_j = registerStatus[instrucao.registradorS.replace('R','').replace('F','')]; - reg_k = registerStatus[instrucao.registradorT.replace('R','').replace('F','')]; + reg_j = registerStatus[instrucao.registradorS.replace('R', '')]; + reg_k = registerStatus[instrucao.registradorT.replace('R', '')]; reg_j_inst = instrucao.registradorS; reg_k_inst = instrucao.registradorT; } @@ -311,7 +303,7 @@ export default function Home() { uf.qj = null; if (instrucao.operacao === 'SD') { - let UFQueTemQueEsperar = registerStatus[instrucao.registradorR.replace('R','').replace('F','')]; + let UFQueTemQueEsperar = registerStatus[instrucao.registradorR.replace('R', '')]; if ((UFQueTemQueEsperar in functionalUnits) || (UFQueTemQueEsperar in memoryUnits)) { uf.qi = UFQueTemQueEsperar; @@ -321,7 +313,7 @@ export default function Home() { } } - let UFintQueTemQueEsperar = registerStatus[instrucao.registradorT.replace('R','').replace('F','')]; + let UFintQueTemQueEsperar = registerStatus[instrucao.registradorT.replace('R', '')]; if ((UFintQueTemQueEsperar in functionalUnits) || (UFintQueTemQueEsperar in memoryUnits)) { uf.qj = UFintQueTemQueEsperar; @@ -332,7 +324,7 @@ export default function Home() { } function writeRegister(instrucao, entry) { - registerStatus[instrucao.registradorR.replace('R','').replace('F','')] = entry; + registerStatus[instrucao.registradorR.replace('R', '')] = entry; setRegisterStatus(registerStatus); } @@ -427,7 +419,6 @@ export default function Home() { if ((ufMem.ocupado) && (ufMem.qi === null) && (ufMem.qj === null)) { ufMem.tempo = ufMem.tempo - 1; - console.log("estado Instrucao", ufMem.estadoInstrucao); if (ufMem.tempo === 0) { ufMem.estadoInstrucao.exeCompleta = clock; @@ -459,10 +450,10 @@ export default function Home() { if (ufMem.tempo === -1) { ufMem.estadoInstrucao.write = clock; - let valorReg = registerStatus[ufMem.instrucao.registradorR.replace('R','').replace('F','')]; + let valorReg = registerStatus[ufMem.instrucao.registradorR.replace('R', '')]; if (valorReg === ufMem.nome) { - registerStatus[ufMem.instrucao.registradorR.replace('R','').replace('F','')] = 'VAL(' + ufMem.nome + ')'; + registerStatus[ufMem.instrucao.registradorR.replace('R', '')] = 'VAL(' + ufMem.nome + ')'; } releaseWaitingUnity(ufMem); @@ -477,10 +468,10 @@ export default function Home() { if (uf.ocupado && uf.tempo === -1) { uf.estadoInstrucao.write = clock; - let valorReg = registerStatus[uf.instrucao.registradorR.replace('R','').replace('F','')]; + let valorReg = registerStatus[uf.instrucao.registradorR.replace('R', '')]; if (valorReg === uf.nome) { - registerStatus[uf.instrucao.registradorR.replace('R','').replace('F','')] = 'VAL(' + uf.nome + ')'; + registerStatus[uf.instrucao.registradorR.replace('R', '')] = 'VAL(' + uf.nome + ')'; } releaseWaitingUnity(uf); @@ -518,13 +509,11 @@ export default function Home() { function reorderBufferValueFormat(instr) { switch (instr.instrucao.operacao) { - case 'ADDD': - return {`${instr.instrucao.registradorS} + ${instr.instrucao.registradorT}`}; - case 'SUBD': + case 'SUB': return {`${instr.instrucao.registradorS} - ${instr.instrucao.registradorT}`}; - case 'MULTD': + case 'MULT': return {`${instr.instrucao.registradorS} * ${instr.instrucao.registradorT}`}; - case 'DIVD': + case 'DIV': return {`${instr.instrucao.registradorS} / ${instr.instrucao.registradorT}`}; case 'LD': return {`Mem[${instr.instrucao.registradorS} + ${instr.instrucao.registradorT}]`}; @@ -532,8 +521,6 @@ export default function Home() { return {`Mem[${instr.instrucao.registradorS} + ${instr.instrucao.registradorT}]`}; case 'ADD': return {`${instr.instrucao.registradorS} + ${instr.instrucao.registradorT}`}; - case 'DADDUI': - return {`${instr.instrucao.registradorS} + ${instr.instrucao.registradorT}`}; case 'BEQ': return {`${instr.instrucao.registradorR} == ${instr.instrucao.registradorS}`}; case 'BNEZ': @@ -608,11 +595,11 @@ export default function Home() { - - - - - + + + + + @@ -624,11 +611,11 @@ export default function Home() { - - - - - + + + + + @@ -640,11 +627,11 @@ export default function Home() { - - - - - + + + + +
F0F1F2F3F4R0R1R2R3R4
F5F6F7F8F9R5R6R7R8R9
F10F11F12F13F14R10R11R12R13R14