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

Unified Diff: src/objects-visiting.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/objects-visiting.cc
diff --git a/src/objects-visiting.cc b/src/objects-visiting.cc
index 7d10fbd2791c0219cb6eb1e2a6a009ab0d504cd6..ad5516e57b1e2a61c145f59feb5c2143fb635bc4 100644
--- a/src/objects-visiting.cc
+++ b/src/objects-visiting.cc
@@ -17,8 +17,7 @@ static inline bool IsShortcutCandidate(int type) {
StaticVisitorBase::VisitorId StaticVisitorBase::GetVisitorId(
- int instance_type,
- int instance_size) {
+ int instance_type, int instance_size, bool has_non_tagged_fields) {
Toon Verwaest 2014/07/29 15:02:09 has_unboxed_fields?
Igor Sheludko 2014/10/30 14:23:44 Done.
if (instance_type < FIRST_NONSTRING_TYPE) {
switch (instance_type & kStringRepresentationMask) {
case kSeqStringTag:
@@ -39,9 +38,8 @@ StaticVisitorBase::VisitorId StaticVisitorBase::GetVisitorId(
return kVisitSlicedString;
case kExternalStringTag:
- return GetVisitorIdForSize(kVisitDataObject,
- kVisitDataObjectGeneric,
- instance_size);
+ return GetVisitorIdForSize(kVisitDataObject, kVisitDataObjectGeneric,
+ instance_size, has_non_tagged_fields);
}
UNREACHABLE();
}
@@ -78,14 +76,12 @@ StaticVisitorBase::VisitorId StaticVisitorBase::GetVisitorId(
return kVisitPropertyCell;
case JS_SET_TYPE:
- return GetVisitorIdForSize(kVisitStruct,
- kVisitStructGeneric,
- JSSet::kSize);
+ return GetVisitorIdForSize(kVisitStruct, kVisitStructGeneric,
+ JSSet::kSize, has_non_tagged_fields);
case JS_MAP_TYPE:
- return GetVisitorIdForSize(kVisitStruct,
- kVisitStructGeneric,
- JSMap::kSize);
+ return GetVisitorIdForSize(kVisitStruct, kVisitStructGeneric,
+ JSMap::kSize, has_non_tagged_fields);
case JS_WEAK_MAP_TYPE:
case JS_WEAK_SET_TYPE:
@@ -98,19 +94,16 @@ StaticVisitorBase::VisitorId StaticVisitorBase::GetVisitorId(
return kVisitSharedFunctionInfo;
case JS_PROXY_TYPE:
- return GetVisitorIdForSize(kVisitStruct,
- kVisitStructGeneric,
- JSProxy::kSize);
+ return GetVisitorIdForSize(kVisitStruct, kVisitStructGeneric,
+ JSProxy::kSize, has_non_tagged_fields);
case JS_FUNCTION_PROXY_TYPE:
- return GetVisitorIdForSize(kVisitStruct,
- kVisitStructGeneric,
- JSFunctionProxy::kSize);
+ return GetVisitorIdForSize(kVisitStruct, kVisitStructGeneric,
+ JSFunctionProxy::kSize, has_non_tagged_fields);
case FOREIGN_TYPE:
- return GetVisitorIdForSize(kVisitDataObject,
- kVisitDataObjectGeneric,
- Foreign::kSize);
+ return GetVisitorIdForSize(kVisitDataObject, kVisitDataObjectGeneric,
+ Foreign::kSize, has_non_tagged_fields);
case SYMBOL_TYPE:
return kVisitSymbol;
@@ -140,9 +133,8 @@ StaticVisitorBase::VisitorId StaticVisitorBase::GetVisitorId(
case JS_MESSAGE_OBJECT_TYPE:
case JS_SET_ITERATOR_TYPE:
case JS_MAP_ITERATOR_TYPE:
- return GetVisitorIdForSize(kVisitJSObject,
- kVisitJSObjectGeneric,
- instance_size);
+ return GetVisitorIdForSize(kVisitJSObject, kVisitJSObjectGeneric,
+ instance_size, has_non_tagged_fields);
case JS_FUNCTION_TYPE:
return kVisitJSFunction;
@@ -153,9 +145,8 @@ StaticVisitorBase::VisitorId StaticVisitorBase::GetVisitorId(
case EXTERNAL_##TYPE##_ARRAY_TYPE:
TYPED_ARRAYS(EXTERNAL_ARRAY_CASE)
- return GetVisitorIdForSize(kVisitDataObject,
- kVisitDataObjectGeneric,
- instance_size);
+ return GetVisitorIdForSize(kVisitDataObject, kVisitDataObjectGeneric,
+ instance_size, has_non_tagged_fields);
#undef EXTERNAL_ARRAY_CASE
case FIXED_UINT8_ARRAY_TYPE:
@@ -179,9 +170,8 @@ StaticVisitorBase::VisitorId StaticVisitorBase::GetVisitorId(
return kVisitAllocationSite;
}
- return GetVisitorIdForSize(kVisitStruct,
- kVisitStructGeneric,
- instance_size);
+ return GetVisitorIdForSize(kVisitStruct, kVisitStructGeneric,
+ instance_size, has_non_tagged_fields);
default:
UNREACHABLE();

Powered by Google App Engine
This is Rietveld 408576698