Index: runtime/vm/assembler_arm_test.cc |
diff --git a/runtime/vm/assembler_arm_test.cc b/runtime/vm/assembler_arm_test.cc |
index 12f470af2e02e475af23207be2bb5df828a2817f..1e6e6efb67f10d859b9893f62bf8a8ab9c2edee9 100644 |
--- a/runtime/vm/assembler_arm_test.cc |
+++ b/runtime/vm/assembler_arm_test.cc |
@@ -1798,10 +1798,20 @@ ASSEMBLER_TEST_GENERATE(IntDiv_supported, assembler) { |
ASSEMBLER_TEST_RUN(IntDiv_supported, test) { |
EXPECT(test != NULL); |
+#if defined(USING_SIMULATOR) |
+ bool orig = TargetCPUFeatures::integer_division_supported(); |
+ HostCPUFeatures::set_integer_division_supported(true); |
+ if (TargetCPUFeatures::can_divide()) { |
+ typedef int (*Tst)() DART_UNUSED; |
+ EXPECT_EQ(3, EXECUTE_TEST_CODE_INT32(Tst, test->entry())); |
+ } |
+ HostCPUFeatures::set_integer_division_supported(orig); |
+#else |
if (TargetCPUFeatures::can_divide()) { |
typedef int (*Tst)() DART_UNUSED; |
EXPECT_EQ(3, EXECUTE_TEST_CODE_INT32(Tst, test->entry())); |
} |
+#endif |
} |
@@ -1829,10 +1839,20 @@ ASSEMBLER_TEST_GENERATE(IntDiv_unsupported, assembler) { |
ASSEMBLER_TEST_RUN(IntDiv_unsupported, test) { |
EXPECT(test != NULL); |
+#if defined(USING_SIMULATOR) |
+ bool orig = TargetCPUFeatures::integer_division_supported(); |
+ HostCPUFeatures::set_integer_division_supported(false); |
if (TargetCPUFeatures::can_divide()) { |
typedef int (*Tst)() DART_UNUSED; |
EXPECT_EQ(3, EXECUTE_TEST_CODE_INT32(Tst, test->entry())); |
} |
+ HostCPUFeatures::set_integer_division_supported(orig); |
+#else |
+ if (TargetCPUFeatures::can_divide()) { |
+ typedef int (*Tst)() DART_UNUSED; |
+ EXPECT_EQ(3, EXECUTE_TEST_CODE_INT32(Tst, test->entry())); |
+ } |
+#endif |
} |