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

Side by Side Diff: src/objects.h

Issue 50213003: Do deferred migration of maps after deoptimizing once. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 5617 matching lines...) Expand 10 before | Expand all | Expand 10 after
5628 class IsShared: public BitField<bool, 22, 1> {}; 5628 class IsShared: public BitField<bool, 22, 1> {};
5629 class FunctionWithPrototype: public BitField<bool, 23, 1> {}; 5629 class FunctionWithPrototype: public BitField<bool, 23, 1> {};
5630 class DictionaryMap: public BitField<bool, 24, 1> {}; 5630 class DictionaryMap: public BitField<bool, 24, 1> {};
5631 class OwnsDescriptors: public BitField<bool, 25, 1> {}; 5631 class OwnsDescriptors: public BitField<bool, 25, 1> {};
5632 class IsObserved: public BitField<bool, 26, 1> {}; 5632 class IsObserved: public BitField<bool, 26, 1> {};
5633 class Deprecated: public BitField<bool, 27, 1> {}; 5633 class Deprecated: public BitField<bool, 27, 1> {};
5634 class IsFrozen: public BitField<bool, 28, 1> {}; 5634 class IsFrozen: public BitField<bool, 28, 1> {};
5635 class IsUnstable: public BitField<bool, 29, 1> {}; 5635 class IsUnstable: public BitField<bool, 29, 1> {};
5636 class IsMigrationTarget: public BitField<bool, 30, 1> {}; 5636 class IsMigrationTarget: public BitField<bool, 30, 1> {};
5637 5637
5638 // Bit field 4.
5639 inline uint32_t bit_field4();
5640 inline void set_bit_field4(uint32_t bits);
5641
5642 class HasMigrated: public BitField<int, 0, 1> {};
5643
5644 inline void set_has_migrated(bool value);
5645 inline bool has_migrated();
5646
5638 // Tells whether the object in the prototype property will be used 5647 // Tells whether the object in the prototype property will be used
5639 // for instances created from this function. If the prototype 5648 // for instances created from this function. If the prototype
5640 // property is set to a value that is not a JSObject, the prototype 5649 // property is set to a value that is not a JSObject, the prototype
5641 // property will not be used to create instances of the function. 5650 // property will not be used to create instances of the function.
5642 // See ECMA-262, 13.2.2. 5651 // See ECMA-262, 13.2.2.
5643 inline void set_non_instance_prototype(bool value); 5652 inline void set_non_instance_prototype(bool value);
5644 inline bool has_non_instance_prototype(); 5653 inline bool has_non_instance_prototype();
5645 5654
5646 // Tells whether function has special prototype property. If not, prototype 5655 // Tells whether function has special prototype property. If not, prototype
5647 // property will not be created when accessed (will return undefined), 5656 // property will not be created when accessed (will return undefined),
(...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after
6178 // pointer if unused. When the map has transitions, the back pointer is 6187 // pointer if unused. When the map has transitions, the back pointer is
6179 // transferred to the transition array and accessed through an extra 6188 // transferred to the transition array and accessed through an extra
6180 // indirection. 6189 // indirection.
6181 static const int kTransitionsOrBackPointerOffset = 6190 static const int kTransitionsOrBackPointerOffset =
6182 kConstructorOffset + kPointerSize; 6191 kConstructorOffset + kPointerSize;
6183 static const int kDescriptorsOffset = 6192 static const int kDescriptorsOffset =
6184 kTransitionsOrBackPointerOffset + kPointerSize; 6193 kTransitionsOrBackPointerOffset + kPointerSize;
6185 static const int kCodeCacheOffset = kDescriptorsOffset + kPointerSize; 6194 static const int kCodeCacheOffset = kDescriptorsOffset + kPointerSize;
6186 static const int kDependentCodeOffset = kCodeCacheOffset + kPointerSize; 6195 static const int kDependentCodeOffset = kCodeCacheOffset + kPointerSize;
6187 static const int kBitField3Offset = kDependentCodeOffset + kPointerSize; 6196 static const int kBitField3Offset = kDependentCodeOffset + kPointerSize;
6188 static const int kSize = kBitField3Offset + kPointerSize; 6197 static const int kBitField4Offset = kBitField3Offset + kPointerSize;
6198 static const int kSize = kBitField4Offset + kPointerSize;
6189 6199
6190 // Layout of pointer fields. Heap iteration code relies on them 6200 // Layout of pointer fields. Heap iteration code relies on them
6191 // being continuously allocated. 6201 // being continuously allocated.
6192 static const int kPointerFieldsBeginOffset = Map::kPrototypeOffset; 6202 static const int kPointerFieldsBeginOffset = Map::kPrototypeOffset;
6193 static const int kPointerFieldsEndOffset = kBitField3Offset + kPointerSize; 6203 static const int kPointerFieldsEndOffset = kBitField3Offset + kPointerSize;
6194 6204
6195 // Byte offsets within kInstanceSizesOffset. 6205 // Byte offsets within kInstanceSizesOffset.
6196 static const int kInstanceSizeOffset = kInstanceSizesOffset + 0; 6206 static const int kInstanceSizeOffset = kInstanceSizesOffset + 0;
6197 static const int kInObjectPropertiesByte = 1; 6207 static const int kInObjectPropertiesByte = 1;
6198 static const int kInObjectPropertiesOffset = 6208 static const int kInObjectPropertiesOffset =
(...skipping 4238 matching lines...) Expand 10 before | Expand all | Expand 10 after
10437 } else { 10447 } else {
10438 value &= ~(1 << bit_position); 10448 value &= ~(1 << bit_position);
10439 } 10449 }
10440 return value; 10450 return value;
10441 } 10451 }
10442 }; 10452 };
10443 10453
10444 } } // namespace v8::internal 10454 } } // namespace v8::internal
10445 10455
10446 #endif // V8_OBJECTS_H_ 10456 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/hydrogen-instructions.h ('k') | src/objects.cc » ('j') | src/objects-inl.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698