Merge pull request #3563 from lewurm/interpreter
[mono.git] / mono / mini / mini-amd64.c
index 46f9f64606d35539bcde6907bc7d04b5d3e07d14..1269d5d5c7c122af0ba55d290199ef934422fa52 100644 (file)
@@ -3426,6 +3426,9 @@ mono_arch_have_fast_tls (void)
        static gboolean inited = FALSE;
        guint8 *ins;
 
+       if (mini_get_debug_options ()->use_fallback_tls)
+               return FALSE;
+
        if (inited)
                return have_fast_tls;
 
@@ -3483,10 +3486,23 @@ mono_arch_have_fast_tls (void)
 #elif defined(TARGET_ANDROID)
        return FALSE;
 #else
+       if (mini_get_debug_options ()->use_fallback_tls)
+               return FALSE;
        return TRUE;
 #endif
 }
 
+int
+mono_amd64_get_tls_gs_offset (void)
+{
+#ifdef TARGET_OSX
+       return tls_gs_offset;
+#else
+       g_assert_not_reached ();
+       return -1;
+#endif
+}
+
 /*
  * mono_amd64_emit_tls_get:
  * @code: buffer to store code to
@@ -6349,7 +6365,8 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        break;
                case OP_ICONV_TO_R4_RAW:
                        amd64_movd_xreg_reg_size (code, ins->dreg, ins->sreg1, 4);
-                       amd64_sse_cvtss2sd_reg_reg (code, ins->dreg, ins->dreg);
+                       if (!cfg->r4fp)
+                         amd64_sse_cvtss2sd_reg_reg (code, ins->dreg, ins->dreg);
                        break;
 
                case OP_FCONV_TO_R8_X: