mono_pop_lmf (&ext->lmf);
}
-static MONO_NEVER_INLINE InterpMethod*
+static InterpMethod*
get_virtual_method (InterpMethod *imethod, MonoVTable *vtable)
{
MonoMethod *m = imethod->method;
return table;
}
-static MONO_NEVER_INLINE InterpMethod* // Inlining causes additional stack use in caller.
+static InterpMethod* // Inlining causes additional stack use in caller.
get_virtual_method_fast (InterpMethod *imethod, MonoVTable *vtable, int offset)
{
gpointer *table;
return NULL;
}
-static MONO_NEVER_INLINE MonoException*
+static MonoException*
ves_array_element_address (InterpFrame *frame, MonoClass *required_type, MonoArray *ao, stackval *sp, gboolean needs_typecheck)
{
MonoClass *ac = ((MonoObject *) ao)->vtable->klass;
return mono_error_convert_to_exception (error);
}
-static MONO_NEVER_INLINE guchar*
+static guchar*
copy_varargs_vtstack (MonoMethodSignature *csig, stackval *sp, guchar *vt_sp_start)
{
stackval *first_arg = sp - csig->param_count;
} \
} while (0);
-static MONO_NEVER_INLINE MonoObject*
+static MonoObject*
mono_interp_new (MonoDomain* domain, MonoClass* klass)
{
ERROR_DECL (error);
return object;
}
-static
-#ifndef DISABLE_REMOTING
-MONO_NEVER_INLINE // To reduce stack.
-#endif
-void
+static void
mono_interp_load_remote_field (
InterpMethod* imethod,
MonoObject* o,
}
static
-#ifndef DISABLE_REMOTING
-MONO_NEVER_INLINE // To reduce stack.
-#endif
guchar* // Return new vt_sp instead of take-address.
mono_interp_load_remote_field_vt (
InterpMethod* imethod,
return vt_sp + ALIGN_TO (i32, MINT_VT_ALIGNMENT);
}
-static MONO_NEVER_INLINE gboolean
+static gboolean
mono_interp_isinst (MonoObject* object, MonoClass* klass)
{
ERROR_DECL (error);
return isinst;
}
-// This function is outlined to help save stack in its caller, on the premise
-// that it is relatively rarely called. This also lets it use alloca.
+// Do not inline use of alloca.
static MONO_NEVER_INLINE void
mono_interp_calli_nat_dynamic_pinvoke (
// Parameters are sorted by name.
interp_exec_method (child_frame, context, error);
}
-// Leave is split into pieces in order to consume less stack,
-// but not have to change how exception handling macros access labels and locals.
-static MONO_NEVER_INLINE MonoException*
+static MonoException*
mono_interp_leave (InterpFrame* child_frame)
{
stackval tmp_sp;
return (MonoException*)tmp_sp.data.p;
}
-static MONO_NEVER_INLINE void
+static void
mono_interp_enum_hasflag (stackval* sp, MonoClass* klass)
{
guint64 a_val = 0, b_val = 0;
sp->data.i = (a_val & b_val) == b_val;
}
-static MONO_NEVER_INLINE int
+static int
mono_interp_box_nullable (InterpFrame* frame, const guint16* ip, stackval* sp, MonoError* error)
{
InterpMethod* const imethod = frame->imethod;
return pop_vt_sp ? ALIGN_TO (size, MINT_VT_ALIGNMENT) : 0;
}
-static MONO_NEVER_INLINE int
+static int
mono_interp_box_vt (InterpFrame* frame, const guint16* ip, stackval* sp)
{
InterpMethod* const imethod = frame->imethod;
return pop_vt_sp ? ALIGN_TO (size, MINT_VT_ALIGNMENT) : 0;
}
-static MONO_NEVER_INLINE void
+static void
mono_interp_box (InterpFrame* frame, const guint16* ip, stackval* sp)
{
MonoObject *o; // See the comment about GC safety.
sp [-1 - offset].data.p = o;
}
-static MONO_NEVER_INLINE int
+static int
mono_interp_store_remote_field_vt (InterpFrame* frame, const guint16* ip, stackval* sp, MonoError* error)
{
InterpMethod* const imethod = frame->imethod;