AArch64: Fix def use.
Add comment to GenPCUseDefEncoding(). Fix def-use flags for several
instruction encodings.
Change-Id: Ifc5a2484395486c01a64307a4acddc794026d46a
diff --git a/compiler/dex/quick/arm64/target_arm64.cc b/compiler/dex/quick/arm64/target_arm64.cc
index be3cd8e..8264a06 100644
--- a/compiler/dex/quick/arm64/target_arm64.cc
+++ b/compiler/dex/quick/arm64/target_arm64.cc
@@ -158,6 +158,9 @@
}
ResourceMask Arm64Mir2Lir::GetPCUseDefEncoding() const {
+ // Note: On arm64, we are not able to set pc except branch instructions, which is regarded as a
+ // kind of barrier. All other instructions only use pc, which has no dependency between any
+ // of them. So it is fine to just return kEncodeNone here.
return kEncodeNone;
}
@@ -167,6 +170,7 @@
DCHECK_EQ(cu_->instruction_set, kArm64);
DCHECK(!lir->flags.use_def_invalid);
+ // Note: REG_USE_PC is ignored, the reason is the same with what we do in GetPCUseDefEncoding().
// These flags are somewhat uncommon - bypass if we can.
if ((flags & (REG_DEF_SP | REG_USE_SP | REG_DEF_LR)) != 0) {
if (flags & REG_DEF_SP) {