| 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_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ | 5 #ifndef V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ |
| 6 #define V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ | 6 #define V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ |
| 7 | 7 |
| 8 #include <cstring> | 8 #include <cstring> |
| 9 #include <iosfwd> | 9 #include <iosfwd> |
| 10 | 10 |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 V(SeqStringSetChar) \ | 128 V(SeqStringSetChar) \ |
| 129 V(Shl) \ | 129 V(Shl) \ |
| 130 V(Shr) \ | 130 V(Shr) \ |
| 131 V(Simulate) \ | 131 V(Simulate) \ |
| 132 V(StackCheck) \ | 132 V(StackCheck) \ |
| 133 V(StoreCodeEntry) \ | 133 V(StoreCodeEntry) \ |
| 134 V(StoreContextSlot) \ | 134 V(StoreContextSlot) \ |
| 135 V(StoreKeyed) \ | 135 V(StoreKeyed) \ |
| 136 V(StoreKeyedGeneric) \ | 136 V(StoreKeyedGeneric) \ |
| 137 V(StoreNamedField) \ | 137 V(StoreNamedField) \ |
| 138 V(StoreNamedGeneric) \ | |
| 139 V(StringAdd) \ | 138 V(StringAdd) \ |
| 140 V(StringCharCodeAt) \ | 139 V(StringCharCodeAt) \ |
| 141 V(StringCharFromCode) \ | 140 V(StringCharFromCode) \ |
| 142 V(StringCompareAndBranch) \ | 141 V(StringCompareAndBranch) \ |
| 143 V(Sub) \ | 142 V(Sub) \ |
| 144 V(ThisFunction) \ | 143 V(ThisFunction) \ |
| 145 V(TransitionElementsKind) \ | 144 V(TransitionElementsKind) \ |
| 146 V(TrapAllocationMemento) \ | 145 V(TrapAllocationMemento) \ |
| 147 V(Typeof) \ | 146 V(Typeof) \ |
| 148 V(TypeofIsAndBranch) \ | 147 V(TypeofIsAndBranch) \ |
| (...skipping 6172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6321 } | 6320 } |
| 6322 | 6321 |
| 6323 class HasTransitionField : public BitField<bool, 0, 1> {}; | 6322 class HasTransitionField : public BitField<bool, 0, 1> {}; |
| 6324 class StoreModeField : public BitField<StoreFieldOrKeyedMode, 1, 1> {}; | 6323 class StoreModeField : public BitField<StoreFieldOrKeyedMode, 1, 1> {}; |
| 6325 | 6324 |
| 6326 HObjectAccess access_; | 6325 HObjectAccess access_; |
| 6327 HValue* dominator_; | 6326 HValue* dominator_; |
| 6328 uint32_t bit_field_; | 6327 uint32_t bit_field_; |
| 6329 }; | 6328 }; |
| 6330 | 6329 |
| 6331 class HStoreNamedGeneric final : public HTemplateInstruction<3> { | |
| 6332 public: | |
| 6333 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P6(HStoreNamedGeneric, HValue*, | |
| 6334 Handle<Name>, HValue*, | |
| 6335 LanguageMode, | |
| 6336 Handle<TypeFeedbackVector>, | |
| 6337 FeedbackVectorSlot); | |
| 6338 HValue* object() const { return OperandAt(0); } | |
| 6339 HValue* value() const { return OperandAt(1); } | |
| 6340 HValue* context() const { return OperandAt(2); } | |
| 6341 Handle<Name> name() const { return name_; } | |
| 6342 LanguageMode language_mode() const { return language_mode_; } | |
| 6343 | |
| 6344 std::ostream& PrintDataTo(std::ostream& os) const override; // NOLINT | |
| 6345 | |
| 6346 Representation RequiredInputRepresentation(int index) override { | |
| 6347 return Representation::Tagged(); | |
| 6348 } | |
| 6349 | |
| 6350 FeedbackVectorSlot slot() const { return slot_; } | |
| 6351 Handle<TypeFeedbackVector> feedback_vector() const { | |
| 6352 return feedback_vector_; | |
| 6353 } | |
| 6354 | |
| 6355 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric) | |
| 6356 | |
| 6357 private: | |
| 6358 HStoreNamedGeneric(HValue* context, HValue* object, Handle<Name> name, | |
| 6359 HValue* value, LanguageMode language_mode, | |
| 6360 Handle<TypeFeedbackVector> vector, FeedbackVectorSlot slot) | |
| 6361 : name_(name), | |
| 6362 feedback_vector_(vector), | |
| 6363 slot_(slot), | |
| 6364 language_mode_(language_mode) { | |
| 6365 SetOperandAt(0, object); | |
| 6366 SetOperandAt(1, value); | |
| 6367 SetOperandAt(2, context); | |
| 6368 SetAllSideEffects(); | |
| 6369 } | |
| 6370 | |
| 6371 Handle<Name> name_; | |
| 6372 Handle<TypeFeedbackVector> feedback_vector_; | |
| 6373 FeedbackVectorSlot slot_; | |
| 6374 LanguageMode language_mode_; | |
| 6375 }; | |
| 6376 | |
| 6377 class HStoreKeyed final : public HTemplateInstruction<4>, | 6330 class HStoreKeyed final : public HTemplateInstruction<4>, |
| 6378 public ArrayInstructionInterface { | 6331 public ArrayInstructionInterface { |
| 6379 public: | 6332 public: |
| 6380 DECLARE_INSTRUCTION_FACTORY_P5(HStoreKeyed, HValue*, HValue*, HValue*, | 6333 DECLARE_INSTRUCTION_FACTORY_P5(HStoreKeyed, HValue*, HValue*, HValue*, |
| 6381 HValue*, ElementsKind); | 6334 HValue*, ElementsKind); |
| 6382 DECLARE_INSTRUCTION_FACTORY_P6(HStoreKeyed, HValue*, HValue*, HValue*, | 6335 DECLARE_INSTRUCTION_FACTORY_P6(HStoreKeyed, HValue*, HValue*, HValue*, |
| 6383 HValue*, ElementsKind, StoreFieldOrKeyedMode); | 6336 HValue*, ElementsKind, StoreFieldOrKeyedMode); |
| 6384 DECLARE_INSTRUCTION_FACTORY_P7(HStoreKeyed, HValue*, HValue*, HValue*, | 6337 DECLARE_INSTRUCTION_FACTORY_P7(HStoreKeyed, HValue*, HValue*, HValue*, |
| 6385 HValue*, ElementsKind, StoreFieldOrKeyedMode, | 6338 HValue*, ElementsKind, StoreFieldOrKeyedMode, |
| 6386 int); | 6339 int); |
| (...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7129 bool IsDeletable() const override { return true; } | 7082 bool IsDeletable() const override { return true; } |
| 7130 }; | 7083 }; |
| 7131 | 7084 |
| 7132 #undef DECLARE_INSTRUCTION | 7085 #undef DECLARE_INSTRUCTION |
| 7133 #undef DECLARE_CONCRETE_INSTRUCTION | 7086 #undef DECLARE_CONCRETE_INSTRUCTION |
| 7134 | 7087 |
| 7135 } // namespace internal | 7088 } // namespace internal |
| 7136 } // namespace v8 | 7089 } // namespace v8 |
| 7137 | 7090 |
| 7138 #endif // V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ | 7091 #endif // V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ |
| OLD | NEW |