| 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 5115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5126 V(FUNCTION) \ | 5126 V(FUNCTION) \ |
| 5127 V(OPTIMIZED_FUNCTION) \ | 5127 V(OPTIMIZED_FUNCTION) \ |
| 5128 V(STUB) \ | 5128 V(STUB) \ |
| 5129 V(HANDLER) \ | 5129 V(HANDLER) \ |
| 5130 V(BUILTIN) \ | 5130 V(BUILTIN) \ |
| 5131 V(REGEXP) | 5131 V(REGEXP) |
| 5132 | 5132 |
| 5133 #define IC_KIND_LIST(V) \ | 5133 #define IC_KIND_LIST(V) \ |
| 5134 V(LOAD_IC) \ | 5134 V(LOAD_IC) \ |
| 5135 V(KEYED_LOAD_IC) \ | 5135 V(KEYED_LOAD_IC) \ |
| 5136 V(CALL_IC) \ | |
| 5137 V(KEYED_CALL_IC) \ | |
| 5138 V(STORE_IC) \ | 5136 V(STORE_IC) \ |
| 5139 V(KEYED_STORE_IC) \ | 5137 V(KEYED_STORE_IC) \ |
| 5140 V(BINARY_OP_IC) \ | 5138 V(BINARY_OP_IC) \ |
| 5141 V(COMPARE_IC) \ | 5139 V(COMPARE_IC) \ |
| 5142 V(COMPARE_NIL_IC) \ | 5140 V(COMPARE_NIL_IC) \ |
| 5143 V(TO_BOOLEAN_IC) | 5141 V(TO_BOOLEAN_IC) |
| 5144 | 5142 |
| 5145 #define CODE_KIND_LIST(V) \ | 5143 #define CODE_KIND_LIST(V) \ |
| 5146 NON_IC_KIND_LIST(V) \ | 5144 NON_IC_KIND_LIST(V) \ |
| 5147 IC_KIND_LIST(V) | 5145 IC_KIND_LIST(V) |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5252 inline int arguments_count(); // Only valid for call IC stubs. | 5250 inline int arguments_count(); // Only valid for call IC stubs. |
| 5253 | 5251 |
| 5254 // Testers for IC stub kinds. | 5252 // Testers for IC stub kinds. |
| 5255 inline bool is_inline_cache_stub(); | 5253 inline bool is_inline_cache_stub(); |
| 5256 inline bool is_debug_stub(); | 5254 inline bool is_debug_stub(); |
| 5257 inline bool is_handler() { return kind() == HANDLER; } | 5255 inline bool is_handler() { return kind() == HANDLER; } |
| 5258 inline bool is_load_stub() { return kind() == LOAD_IC; } | 5256 inline bool is_load_stub() { return kind() == LOAD_IC; } |
| 5259 inline bool is_keyed_load_stub() { return kind() == KEYED_LOAD_IC; } | 5257 inline bool is_keyed_load_stub() { return kind() == KEYED_LOAD_IC; } |
| 5260 inline bool is_store_stub() { return kind() == STORE_IC; } | 5258 inline bool is_store_stub() { return kind() == STORE_IC; } |
| 5261 inline bool is_keyed_store_stub() { return kind() == KEYED_STORE_IC; } | 5259 inline bool is_keyed_store_stub() { return kind() == KEYED_STORE_IC; } |
| 5262 inline bool is_call_stub() { return kind() == CALL_IC; } | |
| 5263 inline bool is_keyed_call_stub() { return kind() == KEYED_CALL_IC; } | |
| 5264 inline bool is_binary_op_stub() { return kind() == BINARY_OP_IC; } | 5260 inline bool is_binary_op_stub() { return kind() == BINARY_OP_IC; } |
| 5265 inline bool is_compare_ic_stub() { return kind() == COMPARE_IC; } | 5261 inline bool is_compare_ic_stub() { return kind() == COMPARE_IC; } |
| 5266 inline bool is_compare_nil_ic_stub() { return kind() == COMPARE_NIL_IC; } | 5262 inline bool is_compare_nil_ic_stub() { return kind() == COMPARE_NIL_IC; } |
| 5267 inline bool is_to_boolean_ic_stub() { return kind() == TO_BOOLEAN_IC; } | 5263 inline bool is_to_boolean_ic_stub() { return kind() == TO_BOOLEAN_IC; } |
| 5268 inline bool is_keyed_stub(); | 5264 inline bool is_keyed_stub(); |
| 5269 | 5265 |
| 5270 inline void set_raw_kind_specific_flags1(int value); | 5266 inline void set_raw_kind_specific_flags1(int value); |
| 5271 inline void set_raw_kind_specific_flags2(int value); | 5267 inline void set_raw_kind_specific_flags2(int value); |
| 5272 | 5268 |
| 5273 // [major_key]: For kind STUB or BINARY_OP_IC, the major key. | 5269 // [major_key]: For kind STUB or BINARY_OP_IC, the major key. |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5322 inline void set_safepoint_table_offset(unsigned offset); | 5318 inline void set_safepoint_table_offset(unsigned offset); |
| 5323 | 5319 |
| 5324 // [back_edge_table_start]: For kind FUNCTION, the offset in the | 5320 // [back_edge_table_start]: For kind FUNCTION, the offset in the |
| 5325 // instruction stream where the back edge table starts. | 5321 // instruction stream where the back edge table starts. |
| 5326 inline unsigned back_edge_table_offset(); | 5322 inline unsigned back_edge_table_offset(); |
| 5327 inline void set_back_edge_table_offset(unsigned offset); | 5323 inline void set_back_edge_table_offset(unsigned offset); |
| 5328 | 5324 |
| 5329 inline bool back_edges_patched_for_osr(); | 5325 inline bool back_edges_patched_for_osr(); |
| 5330 inline void set_back_edges_patched_for_osr(bool value); | 5326 inline void set_back_edges_patched_for_osr(bool value); |
| 5331 | 5327 |
| 5332 // [check type]: For kind CALL_IC, tells how to check if the | |
| 5333 // receiver is valid for the given call. | |
| 5334 inline CheckType check_type(); | |
| 5335 inline void set_check_type(CheckType value); | |
| 5336 | |
| 5337 // [to_boolean_foo]: For kind TO_BOOLEAN_IC tells what state the stub is in. | 5328 // [to_boolean_foo]: For kind TO_BOOLEAN_IC tells what state the stub is in. |
| 5338 inline byte to_boolean_state(); | 5329 inline byte to_boolean_state(); |
| 5339 | 5330 |
| 5340 // [has_function_cache]: For kind STUB tells whether there is a function | 5331 // [has_function_cache]: For kind STUB tells whether there is a function |
| 5341 // cache is passed to the stub. | 5332 // cache is passed to the stub. |
| 5342 inline bool has_function_cache(); | 5333 inline bool has_function_cache(); |
| 5343 inline void set_has_function_cache(bool flag); | 5334 inline void set_has_function_cache(bool flag); |
| 5344 | 5335 |
| 5345 | 5336 |
| 5346 // [marked_for_deoptimization]: For kind OPTIMIZED_FUNCTION tells whether | 5337 // [marked_for_deoptimization]: For kind OPTIMIZED_FUNCTION tells whether |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5553 | 5544 |
| 5554 static const int kHeaderPaddingStart = kConstantPoolOffset + kIntSize; | 5545 static const int kHeaderPaddingStart = kConstantPoolOffset + kIntSize; |
| 5555 | 5546 |
| 5556 // Add padding to align the instruction start following right after | 5547 // Add padding to align the instruction start following right after |
| 5557 // the Code object header. | 5548 // the Code object header. |
| 5558 static const int kHeaderSize = | 5549 static const int kHeaderSize = |
| 5559 (kHeaderPaddingStart + kCodeAlignmentMask) & ~kCodeAlignmentMask; | 5550 (kHeaderPaddingStart + kCodeAlignmentMask) & ~kCodeAlignmentMask; |
| 5560 | 5551 |
| 5561 // Byte offsets within kKindSpecificFlags1Offset. | 5552 // Byte offsets within kKindSpecificFlags1Offset. |
| 5562 static const int kOptimizableOffset = kKindSpecificFlags1Offset; | 5553 static const int kOptimizableOffset = kKindSpecificFlags1Offset; |
| 5563 static const int kCheckTypeOffset = kKindSpecificFlags1Offset; | |
| 5564 | 5554 |
| 5565 static const int kFullCodeFlags = kOptimizableOffset + 1; | 5555 static const int kFullCodeFlags = kOptimizableOffset + 1; |
| 5566 class FullCodeFlagsHasDeoptimizationSupportField: | 5556 class FullCodeFlagsHasDeoptimizationSupportField: |
| 5567 public BitField<bool, 0, 1> {}; // NOLINT | 5557 public BitField<bool, 0, 1> {}; // NOLINT |
| 5568 class FullCodeFlagsHasDebugBreakSlotsField: public BitField<bool, 1, 1> {}; | 5558 class FullCodeFlagsHasDebugBreakSlotsField: public BitField<bool, 1, 1> {}; |
| 5569 class FullCodeFlagsIsCompiledOptimizable: public BitField<bool, 2, 1> {}; | 5559 class FullCodeFlagsIsCompiledOptimizable: public BitField<bool, 2, 1> {}; |
| 5570 | 5560 |
| 5571 static const int kAllowOSRAtLoopNestingLevelOffset = kFullCodeFlags + 1; | 5561 static const int kAllowOSRAtLoopNestingLevelOffset = kFullCodeFlags + 1; |
| 5572 static const int kProfilerTicksOffset = kAllowOSRAtLoopNestingLevelOffset + 1; | 5562 static const int kProfilerTicksOffset = kAllowOSRAtLoopNestingLevelOffset + 1; |
| 5573 | 5563 |
| (...skipping 5195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10769 } else { | 10759 } else { |
| 10770 value &= ~(1 << bit_position); | 10760 value &= ~(1 << bit_position); |
| 10771 } | 10761 } |
| 10772 return value; | 10762 return value; |
| 10773 } | 10763 } |
| 10774 }; | 10764 }; |
| 10775 | 10765 |
| 10776 } } // namespace v8::internal | 10766 } } // namespace v8::internal |
| 10777 | 10767 |
| 10778 #endif // V8_OBJECTS_H_ | 10768 #endif // V8_OBJECTS_H_ |
| OLD | NEW |