summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Lokesh Gidra <lokeshgidra@google.com> 2022-11-07 21:37:40 -0800
committer Lokesh Gidra <lokeshgidra@google.com> 2022-11-08 19:58:03 +0000
commit0b2ad42ecd828ff38fe1d3e6065e907bad7eecda (patch)
tree5164f37022355619cc51196abf793899a62ec850
parent196df5c25d9003ee402f1ec78c767e6ab2471fc6 (diff)
Allow generating marking-register check for all GCs
Since we reserve marking register and refresh it for all GCs (with kReserveMarkingRegister set to true), allow generating marking-register check as well. Test: art/test/testrunner/testrunner.py --target (device with uffd-unsupporting kernel) Bug: 160737021 Change-Id: Ifd200891da131e2b0c9d4271dea650016450f2cc
-rw-r--r--compiler/utils/arm/assembler_arm_vixl.cc4
-rw-r--r--compiler/utils/arm64/assembler_arm64.cc4
2 files changed, 2 insertions, 6 deletions
diff --git a/compiler/utils/arm/assembler_arm_vixl.cc b/compiler/utils/arm/assembler_arm_vixl.cc
index 0271db9ce1..2ed065fd1e 100644
--- a/compiler/utils/arm/assembler_arm_vixl.cc
+++ b/compiler/utils/arm/assembler_arm_vixl.cc
@@ -81,9 +81,7 @@ void ArmVIXLAssembler::MaybeUnpoisonHeapReference(vixl32::Register reg) {
}
void ArmVIXLAssembler::GenerateMarkingRegisterCheck(vixl32::Register temp, int code) {
- // The Marking Register is only used in the Baker read barrier configuration.
- DCHECK(gUseReadBarrier);
- DCHECK(kUseBakerReadBarrier);
+ DCHECK(kReserveMarkingRegister);
vixl32::Label mr_is_ok;
diff --git a/compiler/utils/arm64/assembler_arm64.cc b/compiler/utils/arm64/assembler_arm64.cc
index df05838e2c..b71b00b124 100644
--- a/compiler/utils/arm64/assembler_arm64.cc
+++ b/compiler/utils/arm64/assembler_arm64.cc
@@ -187,9 +187,7 @@ void Arm64Assembler::MaybeUnpoisonHeapReference(Register reg) {
}
void Arm64Assembler::GenerateMarkingRegisterCheck(Register temp, int code) {
- // The Marking Register is only used in the Baker read barrier configuration.
- DCHECK(gUseReadBarrier);
- DCHECK(kUseBakerReadBarrier);
+ DCHECK(kReserveMarkingRegister);
vixl::aarch64::Register mr = reg_x(MR); // Marking Register.
vixl::aarch64::Register tr = reg_x(TR); // Thread Register.