if (tls->tid != GetCurrentThreadId ()) {
/* Happens on osx because threads are not suspended using signals */
+#ifndef TARGET_WIN32
gboolean res;
+#endif
g_assert (tls->info);
#ifdef TARGET_WIN32
return;
#else
- res = mono_thread_state_init_from_handle (&tls->unwind_state, (MonoNativeThreadId)tls->tid, tls->info->native_handle);
+ res = mono_thread_state_init_from_handle (&tls->unwind_state, tls->info);
#endif
} else {
tls->unwind_state.unwind_data [MONO_UNWIND_DATA_LMF] = mono_get_lmf ();
#elif defined(TARGET_X86)
/* The offset is computed from the sp at the start of the call sequence */
g_assert (cfg->frame_reg == X86_EBP);
+ #ifdef MONO_X86_NO_PUSHES
+ return (- cfg->arch.sp_fp_offset + sp_offset);
+ #else
return (- cfg->arch.sp_fp_offset - sp_offset);
+ #endif
#else
NOT_IMPLEMENTED;
return -1;
#ifdef TARGET_AMD64
min_offset = MIN (min_offset, -cfg->arch.sp_fp_offset);
#elif defined(TARGET_X86)
+ #ifdef MONO_X86_NO_PUSHES
+ min_offset = MIN (min_offset, -cfg->arch.sp_fp_offset);
+ #else
min_offset = MIN (min_offset, - (cfg->arch.sp_fp_offset + cfg->arch.param_area_size));
+ #endif
#elif defined(TARGET_ARM)
// FIXME:
#elif defined(TARGET_s390X)