Exemple #1
0
  public void ID()
      throws RAWException, IrregularWriteOperationException, IrregularStringOfBitsException {
    // if source registers are valid passing their own values into temporary registers
    Register rs = cpu.getRegister(params.get(RS_FIELD));
    Register rt = cpu.getRegister(params.get(RT_FIELD));
    if (rs.getWriteSemaphore() > 0 || rt.getWriteSemaphore() > 0) throw new RAWException();
    TR[RS_FIELD] = rs;
    TR[RT_FIELD] = rt;
    // locking the destination register

    cpu.getLO().incrWriteSemaphore();
    cpu.getHI().incrWriteSemaphore();
  }