#define CALLCONV_IS_STDCALL(call_conv) ((call_conv) == MONO_CALL_STDCALL)
#endif
+static gpointer mono_arch_get_lmf_addr (void);
+
const char*
mono_arch_regname (int reg) {
switch (reg) {
static int indent_level = 0;
static void indent (int diff) {
+ int v;
if (diff < 0)
indent_level += diff;
- int v = indent_level;
+ v = indent_level;
while (v-- > 0) {
printf (". ");
}
void
mono_arch_register_lowlevel_calls (void)
{
+ mono_register_jit_icall (mono_arch_get_lmf_addr, "mono_arch_get_lmf_addr", NULL, TRUE);
mono_register_jit_icall (enter_method, "mono_enter_method", NULL, TRUE);
mono_register_jit_icall (leave_method, "mono_leave_method", NULL, TRUE);
}
x86_mov_reg_membase (code, X86_EAX, X86_EAX, lmf_tls_offset, 4);
}
else {
+#ifdef HAVE_KW_THREAD
+ mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD,
+ (gpointer)"mono_arch_get_lmf_addr");
+#else
mono_add_patch_info (cfg, code - cfg->native_code, MONO_PATCH_INFO_INTERNAL_METHOD,
(gpointer)"mono_get_lmf_addr");
+#endif
x86_call_code (code, 0);
}