OLD | NEW |
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 4156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4167 | 4167 |
4168 // [type_feedback_info]: Struct containing type feedback information. | 4168 // [type_feedback_info]: Struct containing type feedback information. |
4169 // Will contain either a TypeFeedbackInfo object, or undefined. | 4169 // Will contain either a TypeFeedbackInfo object, or undefined. |
4170 DECL_ACCESSORS(type_feedback_info, Object) | 4170 DECL_ACCESSORS(type_feedback_info, Object) |
4171 | 4171 |
4172 // [gc_metadata]: Field used to hold GC related metadata. The contents of this | 4172 // [gc_metadata]: Field used to hold GC related metadata. The contents of this |
4173 // field does not have to be traced during garbage collection since | 4173 // field does not have to be traced during garbage collection since |
4174 // it is only used by the garbage collector itself. | 4174 // it is only used by the garbage collector itself. |
4175 DECL_ACCESSORS(gc_metadata, Object) | 4175 DECL_ACCESSORS(gc_metadata, Object) |
4176 | 4176 |
| 4177 // [ic_age]: Inline caching age: the value of the Heap::global_ic_age |
| 4178 // at the moment when this object was created. |
| 4179 inline void set_ic_age(int count); |
| 4180 inline int ic_age(); |
| 4181 |
4177 // Unchecked accessors to be used during GC. | 4182 // Unchecked accessors to be used during GC. |
4178 inline ByteArray* unchecked_relocation_info(); | 4183 inline ByteArray* unchecked_relocation_info(); |
4179 inline FixedArray* unchecked_deoptimization_data(); | 4184 inline FixedArray* unchecked_deoptimization_data(); |
4180 | 4185 |
4181 inline int relocation_size(); | 4186 inline int relocation_size(); |
4182 | 4187 |
4183 // [flags]: Various code flags. | 4188 // [flags]: Various code flags. |
4184 inline Flags flags(); | 4189 inline Flags flags(); |
4185 inline void set_flags(Flags flags); | 4190 inline void set_flags(Flags flags); |
4186 | 4191 |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4419 | 4424 |
4420 // Layout description. | 4425 // Layout description. |
4421 static const int kInstructionSizeOffset = HeapObject::kHeaderSize; | 4426 static const int kInstructionSizeOffset = HeapObject::kHeaderSize; |
4422 static const int kRelocationInfoOffset = kInstructionSizeOffset + kIntSize; | 4427 static const int kRelocationInfoOffset = kInstructionSizeOffset + kIntSize; |
4423 static const int kHandlerTableOffset = kRelocationInfoOffset + kPointerSize; | 4428 static const int kHandlerTableOffset = kRelocationInfoOffset + kPointerSize; |
4424 static const int kDeoptimizationDataOffset = | 4429 static const int kDeoptimizationDataOffset = |
4425 kHandlerTableOffset + kPointerSize; | 4430 kHandlerTableOffset + kPointerSize; |
4426 static const int kTypeFeedbackInfoOffset = | 4431 static const int kTypeFeedbackInfoOffset = |
4427 kDeoptimizationDataOffset + kPointerSize; | 4432 kDeoptimizationDataOffset + kPointerSize; |
4428 static const int kGCMetadataOffset = kTypeFeedbackInfoOffset + kPointerSize; | 4433 static const int kGCMetadataOffset = kTypeFeedbackInfoOffset + kPointerSize; |
4429 static const int kFlagsOffset = kGCMetadataOffset + kPointerSize; | 4434 static const int kICAgeOffset = |
4430 | 4435 kGCMetadataOffset + kPointerSize; |
| 4436 static const int kFlagsOffset = kICAgeOffset + kIntSize; |
4431 static const int kKindSpecificFlagsOffset = kFlagsOffset + kIntSize; | 4437 static const int kKindSpecificFlagsOffset = kFlagsOffset + kIntSize; |
4432 static const int kKindSpecificFlagsSize = 2 * kIntSize; | 4438 static const int kKindSpecificFlagsSize = 2 * kIntSize; |
4433 | 4439 |
4434 static const int kHeaderPaddingStart = kKindSpecificFlagsOffset + | 4440 static const int kHeaderPaddingStart = kKindSpecificFlagsOffset + |
4435 kKindSpecificFlagsSize; | 4441 kKindSpecificFlagsSize; |
4436 | 4442 |
4437 // Add padding to align the instruction start following right after | 4443 // Add padding to align the instruction start following right after |
4438 // the Code object header. | 4444 // the Code object header. |
4439 static const int kHeaderSize = | 4445 static const int kHeaderSize = |
4440 (kHeaderPaddingStart + kCodeAlignmentMask) & ~kCodeAlignmentMask; | 4446 (kHeaderPaddingStart + kCodeAlignmentMask) & ~kCodeAlignmentMask; |
(...skipping 4138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8579 } else { | 8585 } else { |
8580 value &= ~(1 << bit_position); | 8586 value &= ~(1 << bit_position); |
8581 } | 8587 } |
8582 return value; | 8588 return value; |
8583 } | 8589 } |
8584 }; | 8590 }; |
8585 | 8591 |
8586 } } // namespace v8::internal | 8592 } } // namespace v8::internal |
8587 | 8593 |
8588 #endif // V8_OBJECTS_H_ | 8594 #endif // V8_OBJECTS_H_ |
OLD | NEW |