Reserve marking register for all GCs

Nterp relies on marking register to know if GC is happening. This is why
from the beginning nterp was enabled only if kUseReadBarrier was true.
Now, with userfaultfd GC merged in, this requirement hasn't changed. But
since userfaultfd GC is able to run even when marking register is
reserved, we allow nterp to be used with it. However, if at build time
read-barrier was disabled (using ART_USE_READ_BARRIER=false), then there
is no way to use nterp. This CL fixes this situation by reserving
marking register (and refreshing it) for every GC configuration.

This CL also puts back logic that was earlier taken away in the
userfaultfd GC to allow SS and CMS GCs to be used.

Test: ART_DEFAULT_GC_TYPE=SS ART_USE_READ_BARRIER=false art/test/testrunner/testrunner.py
--host --debug -bv
Test: Golem
Bug: 244737154

Change-Id: Ief336b9f39156571b7cd98d3d7f997eb82cd14c3
diff --git a/runtime/arch/arm/asm_support_arm.S b/runtime/arch/arm/asm_support_arm.S
index 68afc24..7f1f470 100644
--- a/runtime/arch/arm/asm_support_arm.S
+++ b/runtime/arch/arm/asm_support_arm.S
@@ -27,10 +27,8 @@
 // Register holding Thread::Current().
 #define rSELF r9
 
-#if defined(USE_READ_BARRIER) && defined(USE_BAKER_READ_BARRIER)
+#ifdef RESERVE_MARKING_REGISTER
 // Marking Register, holding Thread::Current()->GetIsGcMarking().
-// Only used with the Concurrent Copying (CC) garbage
-// collector, with the Baker read barrier configuration.
 #define rMR r8
 #endif
 
@@ -160,7 +158,7 @@
 // entrypoints that possibly (directly or indirectly) perform a
 // suspend check (before they return).
 .macro REFRESH_MARKING_REGISTER
-#if defined(USE_READ_BARRIER) && defined(USE_BAKER_READ_BARRIER)
+#ifdef RESERVE_MARKING_REGISTER
     ldr rMR, [rSELF, #THREAD_IS_GC_MARKING_OFFSET]
 #endif
 .endm