OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 3299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3310 inline int instruction_size(); | 3310 inline int instruction_size(); |
3311 inline void set_instruction_size(int value); | 3311 inline void set_instruction_size(int value); |
3312 | 3312 |
3313 // [relocation_info]: Code relocation information | 3313 // [relocation_info]: Code relocation information |
3314 DECL_ACCESSORS(relocation_info, ByteArray) | 3314 DECL_ACCESSORS(relocation_info, ByteArray) |
3315 void InvalidateRelocation(); | 3315 void InvalidateRelocation(); |
3316 | 3316 |
3317 // [deoptimization_data]: Array containing data for deopt. | 3317 // [deoptimization_data]: Array containing data for deopt. |
3318 DECL_ACCESSORS(deoptimization_data, FixedArray) | 3318 DECL_ACCESSORS(deoptimization_data, FixedArray) |
3319 | 3319 |
| 3320 // [code_flushing_candidate]: Field only used during garbage |
| 3321 // collection to hold code flushing candidates. The contents of this |
| 3322 // field does not have to be traced during garbage collection since |
| 3323 // it is only used by the garbage collector itself. |
| 3324 DECL_ACCESSORS(code_flushing_candidate, Object) |
| 3325 |
3320 // Unchecked accessors to be used during GC. | 3326 // Unchecked accessors to be used during GC. |
3321 inline ByteArray* unchecked_relocation_info(); | 3327 inline ByteArray* unchecked_relocation_info(); |
3322 inline FixedArray* unchecked_deoptimization_data(); | 3328 inline FixedArray* unchecked_deoptimization_data(); |
3323 | 3329 |
3324 inline int relocation_size(); | 3330 inline int relocation_size(); |
3325 | 3331 |
3326 // [flags]: Various code flags. | 3332 // [flags]: Various code flags. |
3327 inline Flags flags(); | 3333 inline Flags flags(); |
3328 inline void set_flags(Flags flags); | 3334 inline void set_flags(Flags flags); |
3329 | 3335 |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3530 | 3536 |
3531 // Max loop nesting marker used to postpose OSR. We don't take loop | 3537 // Max loop nesting marker used to postpose OSR. We don't take loop |
3532 // nesting that is deeper than 5 levels into account. | 3538 // nesting that is deeper than 5 levels into account. |
3533 static const int kMaxLoopNestingMarker = 6; | 3539 static const int kMaxLoopNestingMarker = 6; |
3534 | 3540 |
3535 // Layout description. | 3541 // Layout description. |
3536 static const int kInstructionSizeOffset = HeapObject::kHeaderSize; | 3542 static const int kInstructionSizeOffset = HeapObject::kHeaderSize; |
3537 static const int kRelocationInfoOffset = kInstructionSizeOffset + kIntSize; | 3543 static const int kRelocationInfoOffset = kInstructionSizeOffset + kIntSize; |
3538 static const int kDeoptimizationDataOffset = | 3544 static const int kDeoptimizationDataOffset = |
3539 kRelocationInfoOffset + kPointerSize; | 3545 kRelocationInfoOffset + kPointerSize; |
3540 static const int kFlagsOffset = kDeoptimizationDataOffset + kPointerSize; | 3546 static const int kCodeFlushingCandidateOffset = |
3541 static const int kKindSpecificFlagsOffset = kFlagsOffset + kIntSize; | 3547 kDeoptimizationDataOffset + kPointerSize; |
| 3548 static const int kFlagsOffset = kCodeFlushingCandidateOffset + kPointerSize; |
3542 | 3549 |
| 3550 static const int kKindSpecificFlagsOffset = kFlagsOffset + kIntSize; |
3543 static const int kKindSpecificFlagsSize = 2 * kIntSize; | 3551 static const int kKindSpecificFlagsSize = 2 * kIntSize; |
3544 | 3552 |
3545 static const int kHeaderPaddingStart = kKindSpecificFlagsOffset + | 3553 static const int kHeaderPaddingStart = kKindSpecificFlagsOffset + |
3546 kKindSpecificFlagsSize; | 3554 kKindSpecificFlagsSize; |
3547 | 3555 |
3548 // Add padding to align the instruction start following right after | 3556 // Add padding to align the instruction start following right after |
3549 // the Code object header. | 3557 // the Code object header. |
3550 static const int kHeaderSize = | 3558 static const int kHeaderSize = |
3551 (kHeaderPaddingStart + kCodeAlignmentMask) & ~kCodeAlignmentMask; | 3559 (kHeaderPaddingStart + kCodeAlignmentMask) & ~kCodeAlignmentMask; |
3552 | 3560 |
(...skipping 3159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6712 } else { | 6720 } else { |
6713 value &= ~(1 << bit_position); | 6721 value &= ~(1 << bit_position); |
6714 } | 6722 } |
6715 return value; | 6723 return value; |
6716 } | 6724 } |
6717 }; | 6725 }; |
6718 | 6726 |
6719 } } // namespace v8::internal | 6727 } } // namespace v8::internal |
6720 | 6728 |
6721 #endif // V8_OBJECTS_H_ | 6729 #endif // V8_OBJECTS_H_ |
OLD | NEW |