emitDynamicLinkingSequence(T0, fieldRef);
  protected final void emit_unresolved_putfield(VM_Field fieldRef) {    if (VM_Interface.NEEDS_WRITE_BARRIER && !fieldRef.getType().isPrimitiveType()) {      VM_Barriers.compileUnresolvedPutfieldBarrier(asm, fieldRef.getDictionaryId());    }    emitDynamicLinkingSequence(T0, fieldRef);    if (fieldRef.getSize() == 4) {// field is one word      asm.emitMOV_Reg_RegDisp(T1, SP, 0);               // T1 is the value to be stored      asm.emitMOV_Reg_RegDisp(S0, SP, 4);               // S0 is the object reference      asm.emitMOV_RegIdx_Reg (S0, T0, asm.BYTE, 0, T1); // [S0+T0] <- T1      asm.emitADD_Reg_Imm(SP, WORDSIZE*2);              // complete popping the value and reference    } else { // field is two words (double or long)      if (VM.VerifyAssertions) VM._assert(fieldRef.getSize() == 8);      asm.emitMOV_Reg_RegDisp(JTOC, SP, 0);                          // JTOC is low part of the value to be stored      asm.emitMOV_Reg_RegDisp(T1, SP, 4);                            // T1 is high part of the value to be stored      asm.emitMOV_Reg_RegDisp(S0, SP, 8);                            // S0 is the object reference      asm.emitMOV_RegIdx_Reg (S0, T0, asm.BYTE, 0, JTOC);            // [S0+T0] <- JTOC      asm.emitMOV_RegIdx_Reg (S0, T0, asm.BYTE, WORDSIZE, T1);       // [S0+T0+4] <- T1      asm.emitADD_Reg_Imm(SP, WORDSIZE*3);                           // complete popping the values and reference      // restore JTOC      VM_ProcessorLocalState.emitMoveFieldToReg(asm, JTOC, VM_Entrypoints.jtocField.getOffset());    }  }