| Index: src/hydrogen-instructions.cc
|
| diff --git a/src/hydrogen-instructions.cc b/src/hydrogen-instructions.cc
|
| index 36d1e11edab37c49aea9aa725866799eb28b83c6..95d9b4831ccc2cf07b68631d484e66893d978016 100644
|
| --- a/src/hydrogen-instructions.cc
|
| +++ b/src/hydrogen-instructions.cc
|
| @@ -2050,7 +2050,8 @@ HConstant::HConstant(Handle<Object> handle, Representation r)
|
| has_int32_value_(false),
|
| has_double_value_(false),
|
| is_internalized_string_(false),
|
| - boolean_value_(handle->BooleanValue()) {
|
| + boolean_value_(handle->BooleanValue()),
|
| + raw_address_(NULL) {
|
| if (handle_->IsNumber()) {
|
| double n = handle_->Number();
|
| has_int32_value_ = IsInteger32(n);
|
| @@ -2075,6 +2076,7 @@ HConstant::HConstant(Handle<Object> handle, Representation r)
|
|
|
|
|
| HConstant::HConstant(Handle<Object> handle,
|
| + Address raw_address,
|
| Representation r,
|
| HType type,
|
| bool is_internalize_string,
|
| @@ -2084,6 +2086,7 @@ HConstant::HConstant(Handle<Object> handle,
|
| has_double_value_(false),
|
| is_internalized_string_(is_internalize_string),
|
| boolean_value_(boolean_value),
|
| + raw_address_(raw_address),
|
| type_from_value_(type) {
|
| ASSERT(!handle.is_null());
|
| ASSERT(!type.IsUninitialized());
|
| @@ -2095,7 +2098,8 @@ HConstant::HConstant(Handle<Object> handle,
|
| HConstant::HConstant(int32_t integer_value,
|
| Representation r,
|
| Handle<Object> optional_handle)
|
| - : has_int32_value_(true),
|
| + : handle_(optional_handle),
|
| + has_int32_value_(true),
|
| has_double_value_(true),
|
| is_internalized_string_(false),
|
| boolean_value_(integer_value != 0),
|
| @@ -2108,7 +2112,8 @@ HConstant::HConstant(int32_t integer_value,
|
| HConstant::HConstant(double double_value,
|
| Representation r,
|
| Handle<Object> optional_handle)
|
| - : has_int32_value_(IsInteger32(double_value)),
|
| + : handle_(optional_handle),
|
| + has_int32_value_(IsInteger32(double_value)),
|
| has_double_value_(true),
|
| is_internalized_string_(false),
|
| boolean_value_(double_value != 0 && !isnan(double_value)),
|
| @@ -2133,8 +2138,13 @@ HConstant* HConstant::CopyToRepresentation(Representation r, Zone* zone) const {
|
| if (has_int32_value_) return new(zone) HConstant(int32_value_, r, handle_);
|
| if (has_double_value_) return new(zone) HConstant(double_value_, r, handle_);
|
| ASSERT(!handle_.is_null());
|
| - return new(zone) HConstant(
|
| - handle_, r, type_from_value_, is_internalized_string_, boolean_value_);
|
| + ASSERT_NE(NULL, raw_address_);
|
| + return new(zone) HConstant(handle_,
|
| + raw_address_,
|
| + r,
|
| + type_from_value_,
|
| + is_internalized_string_,
|
| + boolean_value_);
|
| }
|
|
|
|
|
|
|