Index: src/a64/assembler-a64-inl.h |
diff --git a/src/a64/assembler-a64-inl.h b/src/a64/assembler-a64-inl.h |
index a925e551f5cbbff6fe3291b8572786cc6fe0ef95..2b1e942774ad8a4feec5d9c18449db76754438d6 100644 |
--- a/src/a64/assembler-a64-inl.h |
+++ b/src/a64/assembler-a64-inl.h |
@@ -179,9 +179,9 @@ inline void CPURegList::Combine(const CPURegList& other) { |
inline void CPURegList::Remove(const CPURegList& other) { |
ASSERT(IsValid()); |
- ASSERT(other.type() == type_); |
- ASSERT(other.RegisterSizeInBits() == size_); |
- list_ &= ~other.list(); |
+ if (other.type() == type_) { |
+ list_ &= ~other.list(); |
+ } |
} |
@@ -192,10 +192,14 @@ inline void CPURegList::Combine(const CPURegister& other) { |
} |
-inline void CPURegList::Remove(const CPURegister& other) { |
- ASSERT(other.type() == type_); |
- ASSERT(other.SizeInBits() == size_); |
- Remove(other.code()); |
+inline void CPURegList::Remove(const CPURegister& other1, |
+ const CPURegister& other2, |
+ const CPURegister& other3, |
+ const CPURegister& other4) { |
+ if (!other1.IsNone() && (other1.type() == type_)) Remove(other1.code()); |
+ if (!other2.IsNone() && (other2.type() == type_)) Remove(other2.code()); |
+ if (!other3.IsNone() && (other3.type() == type_)) Remove(other3.code()); |
+ if (!other4.IsNone() && (other4.type() == type_)) Remove(other4.code()); |
} |