summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--compiler/dex/quick/mir_to_lir.h6
-rw-r--r--compiler/dex/quick/ralloc_util.cc18
2 files changed, 10 insertions, 14 deletions
diff --git a/compiler/dex/quick/mir_to_lir.h b/compiler/dex/quick/mir_to_lir.h
index 68c3d0f..946adc5 100644
--- a/compiler/dex/quick/mir_to_lir.h
+++ b/compiler/dex/quick/mir_to_lir.h
@@ -482,11 +482,11 @@ class Mir2Lir : public Backend {
void FreeTemp(int reg);
void FreeTemp(RegStorage reg);
RegisterInfo* IsLive(int reg);
- RegisterInfo* IsLive(RegStorage reg);
+ bool IsLive(RegStorage reg);
RegisterInfo* IsTemp(int reg);
- RegisterInfo* IsTemp(RegStorage reg);
+ bool IsTemp(RegStorage reg);
RegisterInfo* IsPromoted(int reg);
- RegisterInfo* IsPromoted(RegStorage reg);
+ bool IsPromoted(RegStorage reg);
bool IsDirty(int reg);
bool IsDirty(RegStorage reg);
void LockTemp(int reg);
diff --git a/compiler/dex/quick/ralloc_util.cc b/compiler/dex/quick/ralloc_util.cc
index 3c49756..137d5eb 100644
--- a/compiler/dex/quick/ralloc_util.cc
+++ b/compiler/dex/quick/ralloc_util.cc
@@ -431,10 +431,9 @@ Mir2Lir::RegisterInfo* Mir2Lir::IsLive(int reg) {
return p->live ? p : NULL;
}
-Mir2Lir::RegisterInfo* Mir2Lir::IsLive(RegStorage reg) {
+bool Mir2Lir::IsLive(RegStorage reg) {
if (reg.IsPair()) {
- DCHECK_EQ(IsLive(reg.GetLowReg()) == nullptr, IsLive(reg.GetHighReg()) == nullptr);
- return IsLive(reg.GetLowReg());
+ return IsLive(reg.GetLowReg()) || IsLive(reg.GetHighReg());
} else {
return IsLive(reg.GetReg());
}
@@ -445,10 +444,9 @@ Mir2Lir::RegisterInfo* Mir2Lir::IsTemp(int reg) {
return (p->is_temp) ? p : NULL;
}
-Mir2Lir::RegisterInfo* Mir2Lir::IsTemp(RegStorage reg) {
+bool Mir2Lir::IsTemp(RegStorage reg) {
if (reg.IsPair()) {
- DCHECK_EQ(IsTemp(reg.GetLowReg()) == nullptr, IsTemp(reg.GetHighReg()) == nullptr);
- return IsTemp(reg.GetLowReg());
+ return IsTemp(reg.GetLowReg()) || IsTemp(reg.GetHighReg());
} else {
return IsTemp(reg.GetReg());
}
@@ -459,10 +457,9 @@ Mir2Lir::RegisterInfo* Mir2Lir::IsPromoted(int reg) {
return (p->is_temp) ? NULL : p;
}
-Mir2Lir::RegisterInfo* Mir2Lir::IsPromoted(RegStorage reg) {
+bool Mir2Lir::IsPromoted(RegStorage reg) {
if (reg.IsPair()) {
- DCHECK_EQ(IsPromoted(reg.GetLowReg()) == nullptr, IsPromoted(reg.GetHighReg()) == nullptr);
- return IsPromoted(reg.GetLowReg());
+ return IsPromoted(reg.GetLowReg()) || IsPromoted(reg.GetHighReg());
} else {
return IsPromoted(reg.GetReg());
}
@@ -475,8 +472,7 @@ bool Mir2Lir::IsDirty(int reg) {
bool Mir2Lir::IsDirty(RegStorage reg) {
if (reg.IsPair()) {
- DCHECK_EQ(IsDirty(reg.GetLowReg()), IsDirty(reg.GetHighReg()));
- return IsDirty(reg.GetLowReg());
+ return IsDirty(reg.GetLowReg()) || IsDirty(reg.GetHighReg());
} else {
return IsDirty(reg.GetReg());
}