Do not refresh the Marking Register in CriticalNative methods.

CriticalNative methods shall not be suspended and hence do not
require MR to be refreshed in compiled JNI code.

This change is for ARM and ARM64 only.

Impact on Critical Native benchmarks times (median of 10 runs,
lower is better):

* angler-userdebug - ARMv7

** All cores

   NativeDowncallStaticCritical   -2.78%
   NativeDowncallStaticCritical6  -1.79%

** Little cores only

   NativeDowncallStaticCritical   -1.66%
   NativeDowncallStaticCritical6  -1.27%

** Big cores only

   NativeDowncallStaticCritical   -2.66%
   NativeDowncallStaticCritical6  -1.70%

* angler-userdebug - ARMv8

** All cores

   NativeDowncallStaticCritical   -3.52%
   NativeDowncallStaticCritical6  -1.79%

** Little cores only

   NativeDowncallStaticCritical   -1.63%
   NativeDowncallStaticCritical6  -1.27%

** Big cores only

   NativeDowncallStaticCritical   -3.87%
   NativeDowncallStaticCritical6  -1.75%

Test: m test-art-target
Test: m test-art-target with tree built with ART_USE_READ_BARRIER=false
Test: m test-art-host-gtest
Test: ARM64 device boot test
Test: ARM device boot test
Bug: b/37707231
Change-Id: I95d61b9ecde0afffdd5fd44763b19caa06025ec8
18 files changed