Skip to content

Instantly share code, notes, and snippets.

@mark-moseley
Created August 6, 2009 23:13
Show Gist options
  • Save mark-moseley/163618 to your computer and use it in GitHub Desktop.
Save mark-moseley/163618 to your computer and use it in GitHub Desktop.
/* for GCC 3.4.x */
#define TC_DISPATCH(insn) \
if (UNLIKELY(th->event_flags) && RUBY_VM_NORMAL_ISEQ_P(REG_CFP->iseq) && UNLIKELY(REG_CFP->iseq->iseq_flag != NULL)) \
{ \
unsigned long pos = REG_CFP->pc - REG_CFP->iseq->iseq_encoded; \
if (REG_CFP->iseq->iseq_flag[pos] & RUBY_EVENT_CALL) \
EXEC_EVENT_HOOK(th, RUBY_EVENT_CALL, GET_SELF(), 0, 0); \
if (REG_CFP->iseq->iseq_flag[pos] & RUBY_EVENT_LINE) \
EXEC_EVENT_HOOK(th, RUBY_EVENT_LINE, GET_SELF(), 0, 0); \
if (REG_CFP->iseq->iseq_flag[pos] & RUBY_EVENT_RETURN) \
EXEC_EVENT_HOOK(th, RUBY_EVENT_RETURN, GET_SELF(), 0, 0); \
} \
INSN_DISPATCH_SIG(insn); \
goto *GET_CURRENT_INSN(); \
;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment