/** * depending on the opcode the functions decided which decode function to use to break down the * instruction */ public void decodeSwitch(IR IRobject) { code = Integer.parseInt(IRobject.getIRstring().substring(0, 6), base); IRobject.setOpCode(code); logger.debug("OpCode=" + OpCode.fromCode(code)); if (code == OpCode.LDR.getCode() || code == 2 || code == 3 || code == 4 || code == 5 || code == 10 || code == 11 || code == 16 || code == 17) function1(IRobject); else if (code == 41 || code == 42 || code == 13 || code == 14) function3(IRobject); else if (code == 6 || code == 7) function4(IRobject); else if (code == 20 || code == 21 || code == 22 || code == 23 || code == 24 || code == 25) function5(IRobject); else if (code == 31 || code == 32) function6(IRobject); else if (code == 15) function7(IRobject); else if (code == 12) function8(IRobject); else if (code == 61 || code == 62) ioInstructions(IRobject); else if (code == 30) trapInstructions(IRobject); else if (code == 33 || code == 34 || code == 50 || code == 51) floats(IRobject); else if (code == 35 || code == 36 || code == 37) function1(IRobject); publishEngineerData(IRobject); }