asm.emitMOV_Reg_RegDisp(T0, SP, 8); asm.emitMOV_Reg_RegDisp(S0, SP, 12);
asm.emitMOV_Reg_RegDisp(T0, SP, TWO_SLOTS); asm.emitMOV_Reg_RegDisp(S0, SP, THREE_SLOTS);
  protected final void emit_dastore() {    VM_Barriers.compileModifyCheck(asm, 12);    asm.emitMOV_Reg_RegDisp(T0, SP, 8);                     // T0 is the array index    asm.emitMOV_Reg_RegDisp(S0, SP, 12);                    // S0 is the array ref    genBoundsCheck(asm, T0, S0);                            // T0 is index, S0 is address of array    asm.emitPOP_Reg(T1);                                    // low part of double value    asm.emitMOV_RegIdx_Reg(S0, T0, asm.LONG, 0, T1);        // [S0 + T0<<3 + 0] <- T1 store low part into array i.e.      asm.emitPOP_Reg(T1);                                    // high part of double value    asm.emitMOV_RegIdx_Reg(S0, T0, asm.LONG, WORDSIZE, T1); // [S0 + T0<<3 + 4] <- T1 store high part into array i.e.     asm.emitADD_Reg_Imm(SP, WORDSIZE*2);                    // remove index and ref from the stack  }