OPT_Instruction s = MonitorOp.create(MONITOREXIT, lockObject);
OPT_Instruction s = MonitorOp.create(MONITOREXIT, lockObject, new OPT_TrueGuardOperand());
  private void completeEpilogue(boolean isOutermost) {    // Deal with implicit monitorexit for synchronized methods.    if (method.isSynchronized() && !options.MONITOR_NOP     				&& !options.INVOKEE_THREAD_LOCAL) {      OPT_Operand lockObject = getLockObject(EPILOGUE_BCI, epilogue);      OPT_Instruction s = MonitorOp.create(MONITOREXIT, lockObject);      appendInstruction(epilogue, s, SYNCHRONIZED_MONITOREXIT_BCI);    }    // Deal with Uninteruptible code.    if (!isOutermost && requiresUnintMarker()) {      OPT_Instruction s = Empty.create(UNINT_END);      appendInstruction(epilogue, s, EPILOGUE_BCI);    }    if (isOutermost) {      VM_Type returnType = method.getReturnType();      OPT_Operand retVal = returnType.isVoidType() ? null :           new OPT_RegisterOperand(resultReg, returnType);      OPT_Instruction s = Return.create(RETURN, retVal);      appendInstruction(epilogue, s, EPILOGUE_BCI);    }  }