asm.emitSTFD  (F0, VM_Entrypoints.scratchStorageField.getOffset(), PROCESSOR_REGISTER); asm.emitLWZ   (S0, VM_Entrypoints.scratchStorageField.getOffset() + 4, PROCESSOR_REGISTER);
asm.emitSTFD  (F0, VM_Entrypoints.scratchStorageField.getOffsetAsInt(), PROCESSOR_REGISTER); asm.emitLWZ   (S0, VM_Entrypoints.scratchStorageField.getOffsetAsInt() + 4, PROCESSOR_REGISTER);
  protected final void emit_f2i() {    if (unreachableBytecode) return;    popToRegister(FLOAT_TYPE, F0);    asm.emitFCMPU(F0, F0);    VM_ForwardReference fr1 = asm.emitForwardBC(NE);    // Normal case: F0 == F0 therefore not a NaN    asm.emitFCTIWZ(F0, F0);    if (VM.BuildFor64Addr) {       // XXX CJH TODO: pushLowDoubleAsInt(F0);      if (VM.VerifyAssertions) VM._assert(NOT_REACHED);    } else {      asm.emitSTFD  (F0, VM_Entrypoints.scratchStorageField.getOffset(), PROCESSOR_REGISTER);      asm.emitLWZ   (S0, VM_Entrypoints.scratchStorageField.getOffset() + 4, PROCESSOR_REGISTER);    }    VM_ForwardReference fr2 = asm.emitForwardB();    fr1.resolve(asm);    // A NaN => 0    asm.emitLVAL  (S0, 0);    fr2.resolve(asm);    pushFromRegister(WORD_TYPE, S0);  }