asm.emitMTLR(T0);
asm.emitMTCTR(T0);
  protected final void emit_aastore() {    asm.emitLtoc(T0,  VM_Entrypoints.checkstoreMethod.getOffset());    asm.emitMTLR(T0);    asm.emitL   (T0,  8, SP);  //  T0 := arrayref    asm.emitL   (T1,  0, SP);  //  T1 := value    asm.emitCall(spSaveAreaOffset);   // checkstore(arrayref, value)    if (VM_Interface.NEEDS_WRITE_BARRIER)       VM_Barriers.compileArrayStoreBarrier(asm, spSaveAreaOffset);    astoreSetup(-1);	// NOT (dfb): following 4 lines plus emitTLLE seem redundant and possibly bogus    asm.emitL   (T1,  8, SP);                    // T1 is array ref    asm.emitL   (T0,  4, SP);                    // T0 is array index    asm.emitL   (T2,  VM_ObjectModel.getArrayLengthOffset(), T1);  // T2 is array length    asm.emitL   (T3,  0, SP);                    // T3 is value to store    emitSegmentedArrayAccess (asm, T1, T0, T2, 2);    asm.emitTLLE(T2, T0);      // trap if index < 0 or index >= length    asm.emitSLI (T0, T0,  2);  // convert word index to byte index    asm.emitSTX (T3, T0, T1);  // store ref value in array    asm.emitCAL (SP, 12, SP);  // complete 3 pops  }