asm.emitLAddr(T1, fprsOffset, T0);
asm.emitLAddrOffset(T1, T0, VM_Entrypoints.registersFPRsField.getOffset());
  private static VM_CodeArray generateSaveThreadStateInstructions() {    VM_Assembler asm = new VM_Assembler(0);    int   ipOffset = VM_Entrypoints.registersIPField.getOffsetAsInt();    int fprsOffset = VM_Entrypoints.registersFPRsField.getOffsetAsInt();    int gprsOffset = VM_Entrypoints.registersGPRsField.getOffsetAsInt();    // save return address    //     asm.emitMFLR  (T1);               // T1 = LR (return address)    asm.emitSTAddr(T1, ipOffset, T0); // registers.ip = return address    // save non-volatile fprs    //    asm.emitLAddr(T1, fprsOffset, T0); // T1 := registers.fprs[]    for (int i = FIRST_NONVOLATILE_FPR; i <= LAST_NONVOLATILE_FPR; ++i)      asm.emitSTFD(i, i << LOG_BYTES_IN_DOUBLE, T1);    // save non-volatile gprs    //    asm.emitLAddr(T1, gprsOffset, T0); // T1 := registers.gprs[]    for (int i = FIRST_NONVOLATILE_GPR; i <= LAST_NONVOLATILE_GPR; ++i)      asm.emitSTAddr(i, i << LOG_BYTES_IN_ADDRESS, T1);    // save fp    //    asm.emitSTAddr(FP, FP<<LOG_BYTES_IN_ADDRESS, T1);          // return to caller    //    asm.emitBCLR();         return asm.makeMachineCode().getInstructions();  }