Chromium Code Reviews| Index: src/register-allocator.h |
| =================================================================== |
| --- src/register-allocator.h (revision 4025) |
| +++ src/register-allocator.h (working copy) |
| @@ -65,12 +65,12 @@ |
| Result() { invalidate(); } |
| // Construct a register Result. |
| - explicit Result(Register reg, NumberInfo::Type info = NumberInfo::kUnknown); |
| + explicit Result(Register reg, NumberInfo info = NumberInfo::Unknown()); |
| // Construct a Result whose value is a compile-time constant. |
| explicit Result(Handle<Object> value) { |
| value_ = TypeField::encode(CONSTANT) |
| - | NumberInfoField::encode(NumberInfo::kUninitialized) |
| + | NumberInfoField::encode(NumberInfo::Uninitialized().ToInt()) |
| | DataField::encode(ConstantList()->length()); |
| ConstantList()->Add(value); |
| } |
| @@ -101,13 +101,12 @@ |
| void invalidate() { value_ = TypeField::encode(INVALID); } |
| - NumberInfo::Type number_info(); |
| - void set_number_info(NumberInfo::Type info); |
| - bool is_number() { |
| - return (number_info() & NumberInfo::kNumber) != 0; |
| - } |
| - bool is_smi() { return number_info() == NumberInfo::kSmi; } |
| - bool is_heap_number() { return number_info() == NumberInfo::kHeapNumber; } |
| + NumberInfo number_info() const; |
|
fschneider
2010/03/05 15:01:07
Maybe make this an inline function?
|
| + void set_number_info(NumberInfo info); |
|
fschneider
2010/03/05 15:01:07
Maybe make this an inline function?
|
| + bool is_number() const { return number_info().IsNumber(); } |
| + bool is_smi() const { return number_info().IsSmi(); } |
| + bool is_integer32() const { return number_info().IsInteger32(); } |
| + bool is_heap_number() const { return number_info().IsHeapNumber(); } |
| bool is_valid() const { return type() != INVALID; } |
| bool is_register() const { return type() == REGISTER; } |
| @@ -140,8 +139,8 @@ |
| uint32_t value_; |
| class TypeField: public BitField<Type, 0, 2> {}; |
| - class NumberInfoField : public BitField<NumberInfo::Type, 2, 3> {}; |
| - class DataField: public BitField<uint32_t, 5, 32 - 5> {}; |
| + class NumberInfoField : public BitField<int, 2, 4> {}; |
| + class DataField: public BitField<uint32_t, 6, 32 - 6> {}; |
| inline void CopyTo(Result* destination) const; |