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

Side by Side Diff: src/objects.h

Issue 346223007: Do not eagerly update allow_osr_at_loop_nesting_level. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 6 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
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/assert-scope.h" 9 #include "src/assert-scope.h"
10 #include "src/builtins.h" 10 #include "src/builtins.h"
(...skipping 5559 matching lines...) Expand 10 before | Expand all | Expand 10 after
5570 // the instruction stream where the safepoint table starts. 5570 // the instruction stream where the safepoint table starts.
5571 inline unsigned safepoint_table_offset(); 5571 inline unsigned safepoint_table_offset();
5572 inline void set_safepoint_table_offset(unsigned offset); 5572 inline void set_safepoint_table_offset(unsigned offset);
5573 5573
5574 // [back_edge_table_start]: For kind FUNCTION, the offset in the 5574 // [back_edge_table_start]: For kind FUNCTION, the offset in the
5575 // instruction stream where the back edge table starts. 5575 // instruction stream where the back edge table starts.
5576 inline unsigned back_edge_table_offset(); 5576 inline unsigned back_edge_table_offset();
5577 inline void set_back_edge_table_offset(unsigned offset); 5577 inline void set_back_edge_table_offset(unsigned offset);
5578 5578
5579 inline bool back_edges_patched_for_osr(); 5579 inline bool back_edges_patched_for_osr();
5580 inline void set_back_edges_patched_for_osr(bool value);
5581 5580
5582 // [to_boolean_foo]: For kind TO_BOOLEAN_IC tells what state the stub is in. 5581 // [to_boolean_foo]: For kind TO_BOOLEAN_IC tells what state the stub is in.
5583 inline byte to_boolean_state(); 5582 inline byte to_boolean_state();
5584 5583
5585 // [has_function_cache]: For kind STUB tells whether there is a function 5584 // [has_function_cache]: For kind STUB tells whether there is a function
5586 // cache is passed to the stub. 5585 // cache is passed to the stub.
5587 inline bool has_function_cache(); 5586 inline bool has_function_cache();
5588 inline void set_has_function_cache(bool flag); 5587 inline void set_has_function_cache(bool flag);
5589 5588
5590 5589
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
5815 5814
5816 // Byte offsets within kKindSpecificFlags1Offset. 5815 // Byte offsets within kKindSpecificFlags1Offset.
5817 static const int kOptimizableOffset = kKindSpecificFlags1Offset; 5816 static const int kOptimizableOffset = kKindSpecificFlags1Offset;
5818 5817
5819 static const int kFullCodeFlags = kOptimizableOffset + 1; 5818 static const int kFullCodeFlags = kOptimizableOffset + 1;
5820 class FullCodeFlagsHasDeoptimizationSupportField: 5819 class FullCodeFlagsHasDeoptimizationSupportField:
5821 public BitField<bool, 0, 1> {}; // NOLINT 5820 public BitField<bool, 0, 1> {}; // NOLINT
5822 class FullCodeFlagsHasDebugBreakSlotsField: public BitField<bool, 1, 1> {}; 5821 class FullCodeFlagsHasDebugBreakSlotsField: public BitField<bool, 1, 1> {};
5823 class FullCodeFlagsIsCompiledOptimizable: public BitField<bool, 2, 1> {}; 5822 class FullCodeFlagsIsCompiledOptimizable: public BitField<bool, 2, 1> {};
5824 5823
5825 static const int kAllowOSRAtLoopNestingLevelOffset = kFullCodeFlags + 1; 5824 static const int kProfilerTicksOffset = kFullCodeFlags + 1;
5826 static const int kProfilerTicksOffset = kAllowOSRAtLoopNestingLevelOffset + 1;
5827 5825
5828 // Flags layout. BitField<type, shift, size>. 5826 // Flags layout. BitField<type, shift, size>.
5829 class ICStateField: public BitField<InlineCacheState, 0, 3> {}; 5827 class ICStateField: public BitField<InlineCacheState, 0, 3> {};
5830 class TypeField: public BitField<StubType, 3, 1> {}; 5828 class TypeField: public BitField<StubType, 3, 1> {};
5831 class CacheHolderField: public BitField<InlineCacheHolderFlag, 5, 1> {}; 5829 class CacheHolderField: public BitField<InlineCacheHolderFlag, 5, 1> {};
5832 class KindField: public BitField<Kind, 6, 4> {}; 5830 class KindField: public BitField<Kind, 6, 4> {};
5833 // TODO(bmeurer): Bit 10 is available for free use. :-) 5831 // TODO(bmeurer): Bit 10 is available for free use. :-)
5834 class ExtraICStateField: public BitField<ExtraICState, 11, 5832 class ExtraICStateField: public BitField<ExtraICState, 11,
5835 PlatformSmiTagging::kSmiValueSize - 11 + 1> {}; // NOLINT 5833 PlatformSmiTagging::kSmiValueSize - 11 + 1> {}; // NOLINT
5836 5834
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
5887 kSafepointTableOffsetBitCount <= 32); 5885 kSafepointTableOffsetBitCount <= 32);
5888 5886
5889 class SafepointTableOffsetField: public BitField<int, 5887 class SafepointTableOffsetField: public BitField<int,
5890 kSafepointTableOffsetFirstBit, 5888 kSafepointTableOffsetFirstBit,
5891 kSafepointTableOffsetBitCount> {}; // NOLINT 5889 kSafepointTableOffsetBitCount> {}; // NOLINT
5892 class StubMajorKeyField: public BitField<int, 5890 class StubMajorKeyField: public BitField<int,
5893 kStubMajorKeyFirstBit, kStubMajorKeyBits> {}; // NOLINT 5891 kStubMajorKeyFirstBit, kStubMajorKeyBits> {}; // NOLINT
5894 5892
5895 // KindSpecificFlags2 layout (FUNCTION) 5893 // KindSpecificFlags2 layout (FUNCTION)
5896 class BackEdgeTableOffsetField: public BitField<int, 5894 class BackEdgeTableOffsetField: public BitField<int,
5897 kIsCrankshaftedBit + 1, 29> {}; // NOLINT 5895 kIsCrankshaftedBit + 1, 27> {}; // NOLINT
5898 class BackEdgesPatchedForOSRField: public BitField<bool, 5896 class AllowOSRAtLoopNestingLevelField: public BitField<int,
5899 kIsCrankshaftedBit + 1 + 29, 1> {}; // NOLINT 5897 kIsCrankshaftedBit + 1 + 27, 4> {}; // NOLINT
5898 STATIC_ASSERT(AllowOSRAtLoopNestingLevelField::kMax >= kMaxLoopNestingMarker);
5900 5899
5901 static const int kArgumentsBits = 16; 5900 static const int kArgumentsBits = 16;
5902 static const int kMaxArguments = (1 << kArgumentsBits) - 1; 5901 static const int kMaxArguments = (1 << kArgumentsBits) - 1;
5903 5902
5904 // This constant should be encodable in an ARM instruction. 5903 // This constant should be encodable in an ARM instruction.
5905 static const int kFlagsNotUsedInLookup = 5904 static const int kFlagsNotUsedInLookup =
5906 TypeField::kMask | CacheHolderField::kMask; 5905 TypeField::kMask | CacheHolderField::kMask;
5907 5906
5908 private: 5907 private:
5909 friend class RelocIterator; 5908 friend class RelocIterator;
(...skipping 5234 matching lines...) Expand 10 before | Expand all | Expand 10 after
11144 } else { 11143 } else {
11145 value &= ~(1 << bit_position); 11144 value &= ~(1 << bit_position);
11146 } 11145 }
11147 return value; 11146 return value;
11148 } 11147 }
11149 }; 11148 };
11150 11149
11151 } } // namespace v8::internal 11150 } } // namespace v8::internal
11152 11151
11153 #endif // V8_OBJECTS_H_ 11152 #endif // V8_OBJECTS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698