diff --git a/compiler/driver/compiler_options.cc b/compiler/driver/compiler_options.cc
index c0a9a05..1780b1d 100644
--- a/compiler/driver/compiler_options.cc
+++ b/compiler/driver/compiler_options.cc
@@ -20,6 +20,7 @@
 
 #include "android-base/stringprintf.h"
 
+#include "base/runtime_debug.h"
 #include "base/variant_map.h"
 #include "cmdline_parser.h"
 #include "compiler_options_map-inl.h"
@@ -68,17 +69,16 @@
   // because we don't want to include the PassManagerOptions definition from the header file.
 }
 
+namespace {
+
+bool kEmitRuntimeReadBarrierChecks = kIsDebugBuild &&
+    RegisterRuntimeDebugFlag(&kEmitRuntimeReadBarrierChecks);
+
+}  // namespace
+
 bool CompilerOptions::EmitRunTimeChecksInDebugMode() const {
-  // Run-time checks (e.g. Marking Register checks) are only emitted
-  // in debug mode, and
-  // - when running on device; or
-  // - when running on host, but only
-  //   - when compiling the core image (which is used only for testing); or
-  //   - when JIT compiling (only relevant for non-native methods).
-  // This is to prevent these checks from being emitted into pre-opted
-  // boot image or apps, as these are compiled with dex2oatd.
-  return kIsDebugBuild &&
-      (kIsTargetBuild || IsCoreImage() || Runtime::Current()->UseJitCompilation());
+  // Run-time checks (e.g. Marking Register checks) are only emitted in slow-debug mode.
+  return kEmitRuntimeReadBarrierChecks;
 }
 
 bool CompilerOptions::ParseDumpInitFailures(const std::string& option, std::string* error_msg) {
diff --git a/compiler/optimizing/optimizing_cfi_test.cc b/compiler/optimizing/optimizing_cfi_test.cc
index 4ad2996..e2b2106 100644
--- a/compiler/optimizing/optimizing_cfi_test.cc
+++ b/compiler/optimizing/optimizing_cfi_test.cc
@@ -18,6 +18,7 @@
 #include <vector>
 
 #include "arch/instruction_set.h"
+#include "base/runtime_debug.h"
 #include "cfi_test.h"
 #include "driver/compiler_options.h"
 #include "gtest/gtest.h"
@@ -56,6 +57,9 @@
   ArenaAllocator* GetAllocator() { return pool_and_allocator_.GetAllocator(); }
 
   void SetUpFrame(InstructionSet isa) {
+    // Ensure that slow-debug is off, so that there is no unexpected read-barrier check emitted.
+    SetRuntimeDebugFlagsEnabled(false);
+
     // Setup simple context.
     std::string error;
     isa_features_ = InstructionSetFeatures::FromVariant(isa, "default", &error);
