plg.insertBefore(MIR_BinaryAcc.create(IA32_ADD, R(ECX), IC(frameSize)));
plg.insertBefore(MIR_BinaryAcc.create(IA32_ADD, new OPT_RegisterOperand(ECX, VM_TypeReference.Int), IC(frameSize)));
  private void insertBigFrameStackOverflowCheck(OPT_Instruction plg) {    if (!ir.method.isInterruptible()) {      plg.remove();      return;    }    if (ir.compiledMethod.isSaveVolatile()) {      return;    }    OPT_PhysicalRegisterSet phys = ir.regpool.getPhysicalRegisterSet();    OPT_Register PR = phys.getPR();    OPT_Register ESP = phys.getESP();    OPT_Register ECX = phys.getECX();    //    ECX := active Thread Stack Limit    OPT_MemoryOperand M =       OPT_MemoryOperand.BD(R(PR), VM_Entrypoints.activeThreadStackLimitField.getOffset(),                            (byte)WORDSIZE, null, null);    plg.insertBefore(MIR_Move.create(IA32_MOV, R(ECX), M));    //    ECX += frame Size    int frameSize = getFrameFixedSize();    plg.insertBefore(MIR_BinaryAcc.create(IA32_ADD, R(ECX), IC(frameSize)));    //    Trap if ESP <= ECX    MIR_TrapIf.mutate(plg,IA32_TRAPIF,null,R(ESP),R(ECX),                      OPT_IA32ConditionOperand.LE(),                      OPT_TrapCodeOperand.StackOverflow());  }