OLD | NEW |
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 <iosfwd> | 8 #include <iosfwd> |
9 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 5085 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5096 // [has_debug_break_slots]: For FUNCTION kind, tells if it has | 5096 // [has_debug_break_slots]: For FUNCTION kind, tells if it has |
5097 // been compiled with debug break slots. | 5097 // been compiled with debug break slots. |
5098 inline bool has_debug_break_slots(); | 5098 inline bool has_debug_break_slots(); |
5099 inline void set_has_debug_break_slots(bool value); | 5099 inline void set_has_debug_break_slots(bool value); |
5100 | 5100 |
5101 // [compiled_with_optimizing]: For FUNCTION kind, tells if it has | 5101 // [compiled_with_optimizing]: For FUNCTION kind, tells if it has |
5102 // been compiled with IsOptimizing set to true. | 5102 // been compiled with IsOptimizing set to true. |
5103 inline bool is_compiled_optimizable(); | 5103 inline bool is_compiled_optimizable(); |
5104 inline void set_compiled_optimizable(bool value); | 5104 inline void set_compiled_optimizable(bool value); |
5105 | 5105 |
| 5106 // [has_reloc_info_for_serialization]: For FUNCTION kind, tells if its |
| 5107 // reloc info includes runtime and external references to support |
| 5108 // serialization/deserialization. |
| 5109 inline bool has_reloc_info_for_serialization(); |
| 5110 inline void set_has_reloc_info_for_serialization(bool value); |
| 5111 |
5106 // [allow_osr_at_loop_nesting_level]: For FUNCTION kind, tells for | 5112 // [allow_osr_at_loop_nesting_level]: For FUNCTION kind, tells for |
5107 // how long the function has been marked for OSR and therefore which | 5113 // how long the function has been marked for OSR and therefore which |
5108 // level of loop nesting we are willing to do on-stack replacement | 5114 // level of loop nesting we are willing to do on-stack replacement |
5109 // for. | 5115 // for. |
5110 inline void set_allow_osr_at_loop_nesting_level(int level); | 5116 inline void set_allow_osr_at_loop_nesting_level(int level); |
5111 inline int allow_osr_at_loop_nesting_level(); | 5117 inline int allow_osr_at_loop_nesting_level(); |
5112 | 5118 |
5113 // [profiler_ticks]: For FUNCTION kind, tells for how many profiler ticks | 5119 // [profiler_ticks]: For FUNCTION kind, tells for how many profiler ticks |
5114 // the code object was seen on the stack with no IC patching going on. | 5120 // the code object was seen on the stack with no IC patching going on. |
5115 inline int profiler_ticks(); | 5121 inline int profiler_ticks(); |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5380 (kHeaderPaddingStart + kCodeAlignmentMask) & ~kCodeAlignmentMask; | 5386 (kHeaderPaddingStart + kCodeAlignmentMask) & ~kCodeAlignmentMask; |
5381 | 5387 |
5382 // Byte offsets within kKindSpecificFlags1Offset. | 5388 // Byte offsets within kKindSpecificFlags1Offset. |
5383 static const int kOptimizableOffset = kKindSpecificFlags1Offset; | 5389 static const int kOptimizableOffset = kKindSpecificFlags1Offset; |
5384 | 5390 |
5385 static const int kFullCodeFlags = kOptimizableOffset + 1; | 5391 static const int kFullCodeFlags = kOptimizableOffset + 1; |
5386 class FullCodeFlagsHasDeoptimizationSupportField: | 5392 class FullCodeFlagsHasDeoptimizationSupportField: |
5387 public BitField<bool, 0, 1> {}; // NOLINT | 5393 public BitField<bool, 0, 1> {}; // NOLINT |
5388 class FullCodeFlagsHasDebugBreakSlotsField: public BitField<bool, 1, 1> {}; | 5394 class FullCodeFlagsHasDebugBreakSlotsField: public BitField<bool, 1, 1> {}; |
5389 class FullCodeFlagsIsCompiledOptimizable: public BitField<bool, 2, 1> {}; | 5395 class FullCodeFlagsIsCompiledOptimizable: public BitField<bool, 2, 1> {}; |
| 5396 class FullCodeFlagsHasRelocInfoForSerialization |
| 5397 : public BitField<bool, 3, 1> {}; |
5390 | 5398 |
5391 static const int kProfilerTicksOffset = kFullCodeFlags + 1; | 5399 static const int kProfilerTicksOffset = kFullCodeFlags + 1; |
5392 | 5400 |
5393 // Flags layout. BitField<type, shift, size>. | 5401 // Flags layout. BitField<type, shift, size>. |
5394 class ICStateField : public BitField<InlineCacheState, 0, 4> {}; | 5402 class ICStateField : public BitField<InlineCacheState, 0, 4> {}; |
5395 class TypeField : public BitField<StubType, 4, 1> {}; | 5403 class TypeField : public BitField<StubType, 4, 1> {}; |
5396 class CacheHolderField : public BitField<CacheHolderFlag, 5, 2> {}; | 5404 class CacheHolderField : public BitField<CacheHolderFlag, 5, 2> {}; |
5397 class KindField : public BitField<Kind, 7, 4> {}; | 5405 class KindField : public BitField<Kind, 7, 4> {}; |
5398 class ExtraICStateField: public BitField<ExtraICState, 11, | 5406 class ExtraICStateField: public BitField<ExtraICState, 11, |
5399 PlatformSmiTagging::kSmiValueSize - 11 + 1> {}; // NOLINT | 5407 PlatformSmiTagging::kSmiValueSize - 11 + 1> {}; // NOLINT |
(...skipping 5569 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10969 } else { | 10977 } else { |
10970 value &= ~(1 << bit_position); | 10978 value &= ~(1 << bit_position); |
10971 } | 10979 } |
10972 return value; | 10980 return value; |
10973 } | 10981 } |
10974 }; | 10982 }; |
10975 | 10983 |
10976 } } // namespace v8::internal | 10984 } } // namespace v8::internal |
10977 | 10985 |
10978 #endif // V8_OBJECTS_H_ | 10986 #endif // V8_OBJECTS_H_ |
OLD | NEW |