asm.emitMOV_Reg_RegDisp(ECX, SP, 0); asm.emitMOV_Reg_RegDisp(EAX, SP, 4);
asm.emitMOV_Reg_RegDisp(ECX, SP, NO_SLOT); asm.emitMOV_Reg_RegDisp(EAX, SP, ONE_SLOT);
  protected final void emit_irem() {    asm.emitMOV_Reg_RegDisp(ECX, SP, 0); // ECX is divisor; NOTE: can't use symbolic registers because of intel hardware requirements    asm.emitMOV_Reg_RegDisp(EAX, SP, 4); // EAX is dividend    asm.emitCDQ ();                      // sign extend EAX into EDX    asm.emitIDIV_Reg_Reg(EAX, ECX);      // compute EAX/ECX - Quotient in EAX, remainder in EDX    asm.emitADD_Reg_Imm(SP, WORDSIZE*2); // complete popping the 2 values    asm.emitPUSH_Reg(EDX);               // push remainder  }