Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(428)

Unified Diff: src/hydrogen.cc

Issue 211333002: Replace HeapNumber as doublebox with an explicit MutableHeapNumber. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/hydrogen.cc
diff --git a/src/hydrogen.cc b/src/hydrogen.cc
index c292a176792f410f4461121aaa3be77dacb14923..11643dee7bed582222c260756eae8ba5c2a9c10b 100644
--- a/src/hydrogen.cc
+++ b/src/hydrogen.cc
@@ -5372,7 +5372,8 @@ HInstruction* HOptimizedGraphBuilder::BuildStoreNamedField(
HType::HeapNumber(),
pretenure_flag,
HEAP_NUMBER_TYPE);
Igor Sheludko 2014/03/27 11:30:16 MUTABLE_HEAP_NUMBER_TYPE?
- AddStoreMapConstant(heap_number, isolate()->factory()->heap_number_map());
+ AddStoreMapConstant(
+ heap_number, isolate()->factory()->mutable_heap_number_map());
Add<HStoreNamedField>(heap_number, HObjectAccess::ForHeapNumberValue(),
value);
instr = New<HStoreNamedField>(checked_object->ActualValue(),
@@ -9911,9 +9912,12 @@ void HOptimizedGraphBuilder::BuildEmitInObjectProperties(
Add<HAllocate>(heap_number_constant, HType::HeapNumber(),
Igor Sheludko 2014/03/27 11:30:16 Don't we need a HType::MutableHeapNumber() thing?
pretenure_flag, HEAP_NUMBER_TYPE);
Igor Sheludko 2014/03/27 11:30:16 MUTABLE_HEAP_NUMBER_TYPE?
AddStoreMapConstant(double_box,
- isolate()->factory()->heap_number_map());
- Add<HStoreNamedField>(double_box, HObjectAccess::ForHeapNumberValue(),
- Add<HConstant>(value));
+ isolate()->factory()->mutable_heap_number_map());
+ // Unwrap the mutable heap number from the boilerplate.
+ HValue* double_value =
+ Add<HConstant>(Handle<HeapNumber>::cast(value)->value());
Igor Sheludko 2014/03/27 11:30:16 value->Number()
+ Add<HStoreNamedField>(
+ double_box, HObjectAccess::ForHeapNumberValue(), double_value);
value_instruction = double_box;
} else if (representation.IsSmi()) {
value_instruction = value->IsUninitialized()

Powered by Google App Engine
This is Rietveld 408576698