Minor improvements in JNI assemblers.
Address issues identified in
https://android-review.googlesource.com/1246286
and clean up a few other things.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: aosp_taimen-userdebug boots.
Test: run-gtests.sh
Test: testrunner.py --target --optimizing
Bug: 12189621
Change-Id: I9ee1a9c113ef756d7aa3bd4d3f17ef1aaa4306f5
diff --git a/compiler/utils/x86/jni_macro_assembler_x86.cc b/compiler/utils/x86/jni_macro_assembler_x86.cc
index e4ce338..1adcc20 100644
--- a/compiler/utils/x86/jni_macro_assembler_x86.cc
+++ b/compiler/utils/x86/jni_macro_assembler_x86.cc
@@ -563,14 +563,10 @@
UNREACHABLE();
}
- // TODO: Compare the memory location with immediate 0.
- Register scratch = GetScratchRegister();
- DCHECK_EQ(Thread::IsGcMarkingSize(), 4u);
- __ fs()->movl(scratch, Address::Absolute(Thread::IsGcMarkingOffset<kX86PointerSize>()));
-
- // TEST reg, reg
+ // CMP self->tls32_.is_gc_marking, 0
// Jcc <Offset>
- __ testl(scratch, scratch);
+ DCHECK_EQ(Thread::IsGcMarkingSize(), 4u);
+ __ fs()->cmpl(Address::Absolute(Thread::IsGcMarkingOffset<kX86PointerSize>()), Immediate(0));
__ j(x86_cond, X86JNIMacroLabel::Cast(label)->AsX86());
}