コード例 #1
0
  /**
   * 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);
  }