do \
{ \
inst = m_state.inst(context.pp, context.ip); \
padding = m_state.inst(context.pp, context.ip + 1); \
arg = static_cast<uint16_t>((m_state.inst(context.pp, context.ip + 2) << 8) + \
m_state.inst(context.pp, context.ip + 3)); \
context.ip += 4; \
context.inst_exec_counter = (context.inst_exec_counter + 1) % VMOverflowBufferSize; \
if constexpr (WithDebugger) \
{ \
if (!m_debugger) initDebugger(context); \
m_debugger->registerInstruction(inst, padding, arg, context.ip - 4, context.pp); \
} \
if (context.inst_exec_counter < 2 && context.sp >= VMStackSize) \
stackOverflowError(context); \
} while (false)