if (VM.VerifyAssertions) VM.assert(fieldRef.getSize() == 8);
if (VM.VerifyAssertions) VM._assert(fieldRef.getSize() == 8);
  protected final void emit_resolved_getstatic(VM_Field fieldRef) {    int fieldOffset = fieldRef.getOffset();    if (!(VM.BuildForStrongVolatileSemantics && fieldRef.isVolatile())) { // normal case      if (fieldRef.getSize() == 4) { // field is one word	asm.emitLtoc(T0, fieldOffset);	asm.emitSTU (T0, -4, SP);      } else { // field is two words (double or long)	if (VM.VerifyAssertions) VM.assert(fieldRef.getSize() == 8);	asm.emitLFDtoc(F0, fieldOffset, T0);	asm.emitSTFDU (F0, -8, SP);      }    } else { // strong volatiles case      // asm.emitISYNC(); // to make getstatic of a volatile field a read barrier uncomment this line (Note this is untested and the Opt compiler must also behave.))      if (fieldRef.getSize() == 4) {  // see Appendix E of PowerPC Microprocessor Family: The Programming nvironments	asm.emitLVAL  (T1, fieldOffset); // T1 = fieldOffset	int label = asm.getMachineCodeIndex();	asm.emitLWARX (T0, JTOC, T1);    // T0 = value	asm.emitSTWCXr(T0, JTOC, T1);    // atomically rewrite value	asm.emitBC    (NE, label);       // retry, if reservation lost	asm.emitSTU   (T0, -4, SP);      // push value      } else { // volatile field is two words (double or long)	if (VM.VerifyAssertions) VM.assert(fieldRef.getSize() == 8);	asm.emitLtoc  (T0, VM_Entrypoints.doublewordVolatileMutexField.getOffset());	VM_ObjectModel.baselineEmitLoadTIB(asm, T1, T0);	asm.emitL     (S0, VM_Entrypoints.processorLockMethod.getOffset(), T1);	asm.emitMTLR  (S0);	asm.emitCall  (spSaveAreaOffset);	asm.emitLFDtoc(F0, fieldOffset, T0);	asm.emitSTFDU (F0, -8, SP);	asm.emitLtoc  (T0, VM_Entrypoints.doublewordVolatileMutexField.getOffset());	VM_ObjectModel.baselineEmitLoadTIB(asm, T1, T0);	asm.emitL     (S0, VM_Entrypoints.processorUnlockMethod.getOffset(), T1);	asm.emitMTLR  (S0);	asm.emitCall  (spSaveAreaOffset);      }    }  }