asm.emitMOV_Reg_RegDisp(T0, SP, 0); asm.emitOR_Reg_RegDisp(T0, SP, 4);
asm.emitMOV_Reg_RegDisp(T0, SP, NO_SLOT); asm.emitOR_Reg_RegDisp(T0, SP, ONE_SLOT);
  protected final void emit_ldiv() {    // (1) zero check    asm.emitMOV_Reg_RegDisp(T0, SP, 0);    asm.emitOR_Reg_RegDisp(T0, SP, 4);    VM_ForwardReference fr1 = asm.forwardJcc(asm.NE);    asm.emitINT_Imm(VM_Runtime.TRAP_DIVIDE_BY_ZERO + RVM_TRAP_BASE);    // trap if divisor is 0    fr1.resolve(asm);    // (2) save RVM nonvolatiles    int numNonVols = NONVOLATILE_GPRS.length;    for (int i = 0; i<numNonVols; i++) {      asm.emitPUSH_Reg(NONVOLATILE_GPRS[i]);    }    // (3) Push args to C function (reversed)    asm.emitPUSH_RegDisp(SP, numNonVols*WORDSIZE+4);    asm.emitPUSH_RegDisp(SP, numNonVols*WORDSIZE+4);    asm.emitPUSH_RegDisp(SP, numNonVols*WORDSIZE+20);    asm.emitPUSH_RegDisp(SP, numNonVols*WORDSIZE+20);    // (4) invoke C function through bootrecord    asm.emitMOV_Reg_RegDisp(S0, JTOC, VM_Entrypoints.the_boot_recordField.getOffsetAsInt());    asm.emitCALL_RegDisp(S0, VM_Entrypoints.sysLongDivideIPField.getOffsetAsInt());    // (5) pop space for arguments    asm.emitADD_Reg_Imm(SP, 4*WORDSIZE);    // (6) restore RVM nonvolatiles    for (int i = numNonVols-1; i >=0; i--) {      asm.emitPOP_Reg(NONVOLATILE_GPRS[i]);    }    // (7) pop expression stack    asm.emitADD_Reg_Imm(SP, 4*WORDSIZE);    // (8) push results    asm.emitPUSH_Reg(T1);    asm.emitPUSH_Reg(T0);  }