Index: src/lithium.h |
=================================================================== |
--- src/lithium.h (revision 10480) |
+++ src/lithium.h (working copy) |
@@ -59,6 +59,7 @@ |
bool IsDoubleRegister() const { return kind() == DOUBLE_REGISTER; } |
bool IsArgument() const { return kind() == ARGUMENT; } |
bool IsUnallocated() const { return kind() == UNALLOCATED; } |
+ bool IsIgnored() const { return kind() == INVALID; } |
bool Equals(LOperand* other) const { return value_ == other->value_; } |
int VirtualRegister(); |
@@ -89,8 +90,7 @@ |
FIXED_SLOT, |
MUST_HAVE_REGISTER, |
WRITABLE_REGISTER, |
- SAME_AS_FIRST_INPUT, |
- IGNORE |
+ SAME_AS_FIRST_INPUT |
}; |
// Lifetime of operand inside the instruction. |
@@ -121,9 +121,9 @@ |
// The superclass has a KindField. Some policies have a signed fixed |
// index in the upper bits. |
- static const int kPolicyWidth = 4; |
+ static const int kPolicyWidth = 3; |
static const int kLifetimeWidth = 1; |
- static const int kVirtualRegisterWidth = 17; |
+ static const int kVirtualRegisterWidth = 18; |
static const int kPolicyShift = kKindFieldWidth; |
static const int kLifetimeShift = kPolicyShift + kPolicyWidth; |
@@ -143,12 +143,10 @@ |
kVirtualRegisterWidth> { |
}; |
- static const int kMaxVirtualRegisters = 1 << (kVirtualRegisterWidth + 1); |
+ static const int kMaxVirtualRegisters = 1 << kVirtualRegisterWidth; |
static const int kMaxFixedIndex = 63; |
static const int kMinFixedIndex = -64; |
- bool HasIgnorePolicy() const { return policy() == IGNORE; } |
- bool HasNoPolicy() const { return policy() == NONE; } |
bool HasAnyPolicy() const { |
return policy() == ANY; |
} |
@@ -234,9 +232,7 @@ |
} |
bool IsIgnored() const { |
- return destination_ != NULL && |
- destination_->IsUnallocated() && |
- LUnallocated::cast(destination_)->HasIgnorePolicy(); |
+ return destination_ != NULL && destination_->IsIgnored(); |
} |
// We clear both operands to indicate move that's been eliminated. |