asm.emitMTLR  (S0);
asm.emitMTCTR  (S0);
  private void genSynchronizedMethodPrologue() {    if (method.isStatic()) { // put java.lang.Class object for VM_Type into T0      if (VM.writingBootImage) {	VM.deferClassObjectCreation(klass);      } else {	klass.getClassForType();      }      int tibOffset = klass.getTibOffset();      asm.emitLtoc(T0, tibOffset);      asm.emitL   (T0, 0, T0);      asm.emitL   (T0, VM_Entrypoints.classForTypeField.getOffset(), T0);     } else { // first local is "this" pointer      asm.emitL(T0, localOffset(0), FP);    }    asm.emitL     (S0, VM_Entrypoints.lockMethod.getOffset(), JTOC); // call out...    asm.emitMTLR  (S0);                                  // ...of line lock    asm.emitCall(spSaveAreaOffset);    lockOffset = 4*(asm.getMachineCodeIndex() - 1); // after this instruction, the method has the monitor  }