private void callHelperToUpdateCounters(OPT_BasicBlock b, OPT_Operand op1, OPT_Operand op2, OPT_Operand op3){ OPT_RegisterOperand addrReg = ir.regpool.makeTempAddress(); OPT_Instruction loadInstr = Load.create(REF_LOAD, addrReg, ir.regpool.makeJTOCOp(ir, null), OPT_IRTools.AC(VM_Entrypoints.updateCountersMethod.getOffset()), new OPT_LocationOperand(VM_Entrypoints.updateCountersMethod.getOffset())); // Nagy: TODO: Is this right ? //loadInstr.copyPosition(ir.cfg.entry().firstRealInstruction()); loadInstr.position = ir.gc.inlineSequence; loadInstr.bcIndex = INSTRUMENTATION_BCI; b.appendInstruction(loadInstr); OPT_Instruction callInstr = Call.create3(CALL, null, addrReg.copyRO(), OPT_MethodOperand.STATIC(VM_Entrypoints.updateCountersMethod), op1, op2, op3); //callInstr.copyPosition(ir.cfg.entry().firstRealInstruction()); callInstr.position = ir.gc.inlineSequence; callInstr.bcIndex = INSTRUMENTATION_BCI; b.appendInstruction(callInstr); }