IKVM.Internal.CodeEmitter.Emit_idiv C# (CSharp) Method

Emit_idiv() private method

private Emit_idiv ( ) : void
return void
        internal void Emit_idiv()
        {
            // we need to special case dividing by -1, because the CLR div instruction
            // throws an OverflowException when dividing Int32.MinValue by -1, and
            // Java just silently overflows
            Emit(OpCodes.Dup);
            Emit(OpCodes.Ldc_I4_M1);
            CodeEmitterLabel label = DefineLabel();
            Emit(OpCodes.Bne_Un_S, label);
            Emit(OpCodes.Pop);
            Emit(OpCodes.Neg);
            CodeEmitterLabel label2 = DefineLabel();
            Emit(OpCodes.Br_S, label2);
            MarkLabel(label);
            Emit(OpCodes.Div);
            MarkLabel(label2);
        }