private void Emit1ByteOpCodeInt8(byte opCode, int popCount, int pushCount, int emitInt8)
{
// Enlarge the array if necessary.
const int instructionSize = 2;
if (this.offset + instructionSize >= this.bytes.Length)
EnlargeArray(instructionSize);
// Emit the instruction bytes.
this.bytes[this.offset++] = opCode;
this.bytes[this.offset++] = (byte)emitInt8;
// The instruction pops two values and pushes a value to the stack.
if (this.stackSize < popCount)
throw new InvalidOperationException("Stack underflow");
this.stackSize += pushCount - popCount;
this.maxStackSize = Math.Max(this.stackSize, this.maxStackSize);
}