/*------------------------------------------------------------------*/
#define S390_CALLFILTER_INTREGS S390_MINIMAL_STACK_SIZE
-#define S390_CALLFILTER_FLTREGS S390_CALLFILTER_INTREGS+(16*sizeof(gulong))
-#define S390_CALLFILTER_ACCREGS S390_CALLFILTER_FLTREGS+(16*sizeof(gdouble))
+#define S390_CALLFILTER_FLTREGS (S390_CALLFILTER_INTREGS+(16*sizeof(gulong)))
+#define S390_CALLFILTER_ACCREGS (S390_CALLFILTER_FLTREGS+(16*sizeof(gdouble)))
#define S390_CALLFILTER_SIZE (S390_CALLFILTER_ACCREGS+(16*sizeof(gint32)))
#define S390_THROWSTACK_ACCPRM S390_MINIMAL_STACK_SIZE
-#define S390_THROWSTACK_FPCPRM S390_THROWSTACK_ACCPRM+sizeof(gpointer)
-#define S390_THROWSTACK_RETHROW S390_THROWSTACK_FPCPRM+sizeof(gint32)
-#define S390_THROWSTACK_INTREGS S390_THROWSTACK_RETHROW+sizeof(gboolean)
-#define S390_THROWSTACK_FLTREGS S390_THROWSTACK_INTREGS+(16*sizeof(gulong))
-#define S390_THROWSTACK_ACCREGS S390_THROWSTACK_FLTREGS+(16*sizeof(gdouble))
+#define S390_THROWSTACK_FPCPRM (S390_THROWSTACK_ACCPRM+sizeof(gpointer))
+#define S390_THROWSTACK_RETHROW (S390_THROWSTACK_FPCPRM+sizeof(gint32))
+#define S390_THROWSTACK_INTREGS (S390_THROWSTACK_RETHROW+sizeof(gboolean))
+#define S390_THROWSTACK_FLTREGS (S390_THROWSTACK_INTREGS+(16*sizeof(gulong)))
+#define S390_THROWSTACK_ACCREGS (S390_THROWSTACK_FLTREGS+(16*sizeof(gdouble)))
#define S390_THROWSTACK_SIZE (S390_THROWSTACK_ACCREGS+(16*sizeof(gint32)))
#define SZ_THROW 384
/* */
/* Name - mono_arch_find_jit_info */
/* */
-/* Function - This function is used to gather informatoin from */
+/* Function - This function is used to gather information from */
/* @ctx. It returns the MonoJitInfo of the corres- */
/* ponding function, unwinds one stack frame and */
/* stores the resulting context into @new_ctx. It */
/* into @trace (if not NULL), and modifies the @lmf */
/* if necessary. @native_offset returns the IP off- */
/* set from the start of the function or -1 if that */
-/* informatoin is not available. */
+/* information is not available. */
/* */
/*------------------------------------------------------------------*/
MonoJitInfo *
mono_arch_find_jit_info (MonoDomain *domain, MonoJitTlsData *jit_tls,
MonoJitInfo *res, MonoJitInfo *prev_ji, MonoContext *ctx,
- MonoContext *new_ctx, char **trace, MonoLMF **lmf,
- int *native_offset, gboolean *managed)
+ MonoContext *new_ctx, MonoLMF **lmf, gboolean *managed)
{
MonoJitInfo *ji;
gpointer ip = (gpointer) MONO_CONTEXT_GET_IP (ctx);
else
ji = mono_jit_info_table_find (domain, ip);
- if (trace)
- *trace = NULL;
-
- if (native_offset)
- *native_offset = -1;
-
if (managed)
*managed = FALSE;
if (ji != NULL) {
- char *source_location, *tmpaddr, *fname;
- gint64 address, iloffset;
+ gint64 address;
*new_ctx = *ctx;
address = (char *)ip - (char *)ji->code_start;
- if (native_offset)
- *native_offset = address;
-
if (managed)
if (!ji->method->wrapper_type)
*managed = TRUE;
- if (trace) {
- source_location = mono_debug_source_location_from_address (ji->method, address, NULL, domain);
- iloffset = mono_debug_il_offset_from_address (ji->method, address, domain);
-
- if (iloffset < 0)
- tmpaddr = g_strdup_printf ("<0x%016lx>", address);
- else
- tmpaddr = g_strdup_printf ("[0x%16x]", iloffset);
-
- fname = mono_method_full_name (ji->method, TRUE);
-
- if (source_location)
- *trace = g_strdup_printf ("in %s (at %s) %s", tmpaddr, source_location, fname);
- else
- *trace = g_strdup_printf ("in %s %s", tmpaddr, fname);
-
- g_free (fname);
- g_free (source_location);
- g_free (tmpaddr);
- }
sframe = (MonoS390StackFrame *) MONO_CONTEXT_GET_SP (ctx);
MONO_CONTEXT_SET_BP (new_ctx, sframe->prev);
sframe = (MonoS390StackFrame *) sframe->prev;
MONO_CONTEXT_SET_IP (new_ctx, sframe->return_address);
memcpy (&new_ctx->uc_mcontext.gregs[6], sframe->regs, (8*sizeof(gint64)));
return ji;
+
} else if (*lmf) {
*new_ctx = *ctx;
if (!(*lmf)->method)
return (gpointer)-1;
- if (trace)
- *trace = g_strdup_printf ("in (unmanaged) %s", mono_method_full_name ((*lmf)->method, TRUE));
-
if ((ji = mono_jit_info_table_find (domain, (gpointer)(*lmf)->eip))) {
} else {
memset (res, 0, sizeof (MonoJitInfo));