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

Side by Side Diff: src/objects.h

Issue 6969037: Make the code flushing candidate field explicit in code objects. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Address review comments. Created 9 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/mark-compact.cc ('k') | src/objects-inl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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(next_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
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 kNextCodeFlushingCandidateOffset =
3541 static const int kKindSpecificFlagsOffset = kFlagsOffset + kIntSize; 3547 kDeoptimizationDataOffset + kPointerSize;
3548 static const int kFlagsOffset =
3549 kNextCodeFlushingCandidateOffset + kPointerSize;
3542 3550
3551 static const int kKindSpecificFlagsOffset = kFlagsOffset + kIntSize;
3543 static const int kKindSpecificFlagsSize = 2 * kIntSize; 3552 static const int kKindSpecificFlagsSize = 2 * kIntSize;
3544 3553
3545 static const int kHeaderPaddingStart = kKindSpecificFlagsOffset + 3554 static const int kHeaderPaddingStart = kKindSpecificFlagsOffset +
3546 kKindSpecificFlagsSize; 3555 kKindSpecificFlagsSize;
3547 3556
3548 // Add padding to align the instruction start following right after 3557 // Add padding to align the instruction start following right after
3549 // the Code object header. 3558 // the Code object header.
3550 static const int kHeaderSize = 3559 static const int kHeaderSize =
3551 (kHeaderPaddingStart + kCodeAlignmentMask) & ~kCodeAlignmentMask; 3560 (kHeaderPaddingStart + kCodeAlignmentMask) & ~kCodeAlignmentMask;
3552 3561
(...skipping 3159 matching lines...) Expand 10 before | Expand all | Expand 10 after
6712 } else { 6721 } else {
6713 value &= ~(1 << bit_position); 6722 value &= ~(1 << bit_position);
6714 } 6723 }
6715 return value; 6724 return value;
6716 } 6725 }
6717 }; 6726 };
6718 6727
6719 } } // namespace v8::internal 6728 } } // namespace v8::internal
6720 6729
6721 #endif // V8_OBJECTS_H_ 6730 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/mark-compact.cc ('k') | src/objects-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698