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

Unified Diff: src/hydrogen.cc

Issue 391693002: In-object double fields unboxing (for 64-bit only). (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 5 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 a87d623790e0007198cd6bf08ca20a1662606154..df9b3f8f252c0b7b21df290235019f196f42e760 100644
--- a/src/hydrogen.cc
+++ b/src/hydrogen.cc
@@ -5799,7 +5799,8 @@ HInstruction* HOptimizedGraphBuilder::BuildLoadNamedField(
}
HObjectAccess access = info->access();
- if (access.representation().IsDouble()) {
+ if (access.representation().IsDouble() &&
+ (!FLAG_unbox_double_fields || !access.IsInobject())) {
// Load the heap number.
checked_object = Add<HLoadNamedField>(
checked_object, static_cast<HValue*>(NULL),
@@ -5831,7 +5832,8 @@ HInstruction* HOptimizedGraphBuilder::BuildStoreNamedField(
HObjectAccess field_access = info->access();
HStoreNamedField *instr;
- if (field_access.representation().IsDouble()) {
+ if (field_access.representation().IsDouble() &&
+ (!FLAG_unbox_double_fields || !field_access.IsInobject())) {
HObjectAccess heap_number_access =
field_access.WithRepresentation(Representation::Tagged());
if (transition_to_field) {
@@ -11004,7 +11006,8 @@ void HOptimizedGraphBuilder::BuildEmitInObjectProperties(
Representation representation = details.representation();
HInstruction* value_instruction;
- if (representation.IsDouble()) {
+ if (representation.IsDouble() &&
+ (!FLAG_unbox_double_fields || !access.IsInobject())) {
// Allocate a HeapNumber box and store the value into it.
HValue* heap_number_constant = Add<HConstant>(HeapNumber::kSize);
// This heap number alloc does not have a corresponding

Powered by Google App Engine
This is Rietveld 408576698