static void mono_x86_throw_corlib_exception (mgreg_t *regs, guint32 ex_token_index, mgreg_t eip, gint32 pc_offset) { guint32 ex_token = MONO_TOKEN_TYPE_DEF | ex_token_index; MonoException *ex; ex = mono_exception_from_token (mono_defaults.exception_class->image, ex_token); eip -= pc_offset; mono_x86_throw_exception (regs, (MonoObject*)ex, eip, FALSE); }
void mono_x86_throw_corlib_exception (mgreg_t *regs, guint32 ex_token_index, mgreg_t eip, gint32 pc_offset) { guint32 ex_token = MONO_TOKEN_TYPE_DEF | ex_token_index; MonoException *ex; ex = mono_exception_from_token (m_class_get_image (mono_defaults.exception_class), ex_token); eip -= pc_offset; /* Negate the ip adjustment done in mono_x86_throw_exception () */ eip += 1; mono_x86_throw_exception (regs, (MonoObject*)ex, eip, FALSE); }