private static void appendLoad(OPT_BasicBlock bb,
private void appendLoad(OPT_BasicBlock bb,
  private static void appendLoad(OPT_BasicBlock bb,                                 OPT_IR ir) {    if (DEBUG)VM.sysWrite("Adding load to "+ bb + "\n");    OPT_Instruction load = null;    if (ir.options.PROCESSOR_SPECIFIC_COUNTER) {      // Use one CBS counter per processor (better for multi threaded apps)      if (ir.IRStage == OPT_IR.HIR) {        // NOT IMPLEMENTED      }      else {        // Phase is being used in LIR        OPT_Instruction dummy = Load.create(INT_LOAD,null,null,null,null);                // Insert the load instruction.         load =           Load.create(INT_LOAD, cbsReg.copyRO(),                       OPT_IRTools.A(ir.regpool.getPhysicalRegisterSet().getPR()),                      OPT_IRTools.AC(VM_Entrypoints.processorCBSField.getOffset()),                      new OPT_LocationOperand(VM_Entrypoints.processorCBSField));                bb.appendInstruction(load);      }    }    else {      // Use global counter      if (ir.IRStage == OPT_IR.HIR) {        OPT_Operand offsetOp = new OPT_AddressConstantOperand(VM_Entrypoints.globalCBSField.getOffset());        load = GetStatic.create(GETSTATIC,cbsReg.copyRO(),offsetOp, new OPT_LocationOperand(VM_Entrypoints.globalCBSField));        bb.appendInstruction(load);      }      else {        // LIR        OPT_Instruction dummy = Load.create(INT_LOAD,null,null,null,null);                bb.appendInstruction(dummy);        load = Load.create(INT_LOAD, cbsReg.copyRO(),                            ir.regpool.makeJTOCOp(ir,dummy),                            OPT_IRTools.AC(VM_Entrypoints.globalCBSField.getOffset()),                           new OPT_LocationOperand(VM_Entrypoints.globalCBSField));                dummy.insertBefore(load);        dummy.remove();      }    }  }