[interp] assume EABI for passing arguments to arm trampoline
authorBernhard Urban <bernhard.urban@xamarin.com>
Wed, 17 May 2017 12:40:31 +0000 (14:40 +0200)
committerBernhard Urban <bernhard.urban@xamarin.com>
Wed, 17 May 2017 15:36:43 +0000 (17:36 +0200)
mono/mini/interp/interp.c
mono/mini/mini-arm.c
mono/mini/mini-arm.h

index 7392feb1298ef2a91c7373f797aef24dbd6a7c70..27b790a6a5016400cca788e7753eaf4b291852ef 100644 (file)
@@ -67,6 +67,9 @@
 #include <mono/mini/mini.h>
 #include <mono/mini/jit-icalls.h>
 
+#ifdef TARGET_ARM
+#include <mono/mini/mini-arm.h>
+#endif
 
 /* Mingw 2.1 doesnt need this any more, but leave it in for now for older versions */
 #ifdef _WIN32
@@ -718,6 +721,10 @@ static InterpMethodArguments* build_args_from_sig (MonoMethodSignature *sig, Mon
 {
        InterpMethodArguments *margs = g_malloc0 (sizeof (InterpMethodArguments));
 
+#ifdef TARGET_ARM
+       g_assert (mono_arm_eabi_supported ());
+#endif
+
        if (sig->hasthis)
                margs->ilen++;
 
index a60a113b12202a127eacc663084663e771d7aca0..d88dc4f10cceca9aebb2a9d86ce38508f4eab103 100644 (file)
@@ -4033,6 +4033,12 @@ mono_arm_thumb_supported (void)
        return thumb_supported;
 }
 
+gboolean
+mono_arm_eabi_supported (void)
+{
+       return eabi_supported;
+}
+
 #ifndef DISABLE_JIT
 
 static guint8*
index fd11ea8ac0a0ee3b5fc61b03743c5ad82d02ee26..eec8a507f2815106fbfdccb18375cf6d79bc6382 100644 (file)
@@ -390,6 +390,9 @@ mono_arm_resume_unwind (guint32 dummy1, mgreg_t pc, mgreg_t sp, mgreg_t *int_reg
 gboolean
 mono_arm_thumb_supported (void);
 
+gboolean
+mono_arm_eabi_supported (void);
+
 GSList*
 mono_arm_get_exception_trampolines (gboolean aot);