[arm] respect thumb mode in mixed mode unwinding
authorBernhard Urban <bernhard.urban@xamarin.com>
Wed, 17 May 2017 11:40:58 +0000 (13:40 +0200)
committerBernhard Urban <bernhard.urban@xamarin.com>
Wed, 17 May 2017 15:36:43 +0000 (17:36 +0200)
mono/mini/mini-exceptions.c

index e612fdf73ba1640ddf3bfd7250853e46bfbc1f8c..b6b1d813399f21e758c9ff90188d8b3f9ddf139e 100644 (file)
 #include "mini-llvm-cpp.h"
 #endif
 
+#ifdef TARGET_ARM
+#include "mini-arm.h"
+#endif
+
 #ifndef MONO_ARCH_CONTEXT_DEF
 #define MONO_ARCH_CONTEXT_DEF
 #endif
@@ -2133,8 +2137,8 @@ mono_handle_exception_internal (MonoContext *ctx, MonoObject *obj, gboolean resu
                                                ctx->gregs [AMD64_RIP] ++;
 #elif defined(TARGET_ARM)
                                                ctx->pc ++;
-                                               /* set thumb bit */
-                                               ctx->pc |= 1;
+                                               if (mono_arm_thumb_supported ())
+                                                       ctx->pc |= 1;
 #elif defined(TARGET_ARM64)
                                                ctx->pc ++;
 #else