int instr = ip.diff(VM_Magic.objectAsAddress(compiledMethod.getInstructions())).toInt(); int lockOffset = ((VM_BaselineCompiledMethod)compiledMethod).getLockAcquisitionOffset(); if (instr > lockOffset) {
Offset instr = ip.diff(VM_Magic.objectAsAddress(compiledMethod.getInstructions())); Offset lockOffset = ((VM_BaselineCompiledMethod)compiledMethod).getLockAcquisitionOffset(); if (instr.sGT(lockOffset)) {
  public void unwindStackFrame(VM_CompiledMethod compiledMethod, VM_Registers registers) {    VM_NormalMethod method = (VM_NormalMethod)compiledMethod.getMethod();    Address fp     = registers.getInnermostFramePointer();    if (method.isSynchronized()) { // release the lock, if it is being held      Address ip = registers.getInnermostInstructionAddress();      int instr = ip.diff(VM_Magic.objectAsAddress(compiledMethod.getInstructions())).toInt();      int lockOffset = ((VM_BaselineCompiledMethod)compiledMethod).getLockAcquisitionOffset();      if (instr > lockOffset) { // we actually have the lock, so must unlock it.        Object lock;        if (method.isStatic()) {          lock = method.getDeclaringClass().getClassForType();        } else {          lock = VM_Magic.addressAsObject(fp.add(VM_Compiler.getFirstLocalOffset(method)).loadAddress());        }        VM_ObjectModel.genericUnlock(lock);      }    }    // Restore nonvolatile registers used by the baseline compiler.    if (VM.VerifyAssertions) VM._assert(VM_Compiler.SAVED_GPRS == 2);    registers.gprs.set(JTOC, fp.add(VM_Compiler.JTOC_SAVE_OFFSET).loadWord());    registers.gprs.set(EBX, fp.add(VM_Compiler.EBX_SAVE_OFFSET).loadWord());        registers.unwindStackFrame();  }