| 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 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 V(Sar) \ | 126 V(Sar) \ |
| 127 V(SeqStringGetChar) \ | 127 V(SeqStringGetChar) \ |
| 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) \ | |
| 137 V(StoreNamedField) \ | 136 V(StoreNamedField) \ |
| 138 V(StringAdd) \ | 137 V(StringAdd) \ |
| 139 V(StringCharCodeAt) \ | 138 V(StringCharCodeAt) \ |
| 140 V(StringCharFromCode) \ | 139 V(StringCharFromCode) \ |
| 141 V(StringCompareAndBranch) \ | 140 V(StringCompareAndBranch) \ |
| 142 V(Sub) \ | 141 V(Sub) \ |
| 143 V(ThisFunction) \ | 142 V(ThisFunction) \ |
| 144 V(TransitionElementsKind) \ | 143 V(TransitionElementsKind) \ |
| 145 V(TrapAllocationMemento) \ | 144 V(TrapAllocationMemento) \ |
| 146 V(Typeof) \ | 145 V(Typeof) \ |
| (...skipping 6355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6502 class IsDehoistedField : public BitField<bool, 0, 1> {}; | 6501 class IsDehoistedField : public BitField<bool, 0, 1> {}; |
| 6503 class IsUninitializedField : public BitField<bool, 1, 1> {}; | 6502 class IsUninitializedField : public BitField<bool, 1, 1> {}; |
| 6504 class StoreModeField : public BitField<StoreFieldOrKeyedMode, 2, 1> {}; | 6503 class StoreModeField : public BitField<StoreFieldOrKeyedMode, 2, 1> {}; |
| 6505 class ElementsKindField : public BitField<ElementsKind, 3, 5> {}; | 6504 class ElementsKindField : public BitField<ElementsKind, 3, 5> {}; |
| 6506 | 6505 |
| 6507 uint32_t base_offset_; | 6506 uint32_t base_offset_; |
| 6508 uint32_t bit_field_; | 6507 uint32_t bit_field_; |
| 6509 HValue* dominator_; | 6508 HValue* dominator_; |
| 6510 }; | 6509 }; |
| 6511 | 6510 |
| 6512 class HStoreKeyedGeneric final : public HTemplateInstruction<4> { | |
| 6513 public: | |
| 6514 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P6(HStoreKeyedGeneric, HValue*, | |
| 6515 HValue*, HValue*, LanguageMode, | |
| 6516 Handle<TypeFeedbackVector>, | |
| 6517 FeedbackVectorSlot); | |
| 6518 | |
| 6519 HValue* object() const { return OperandAt(0); } | |
| 6520 HValue* key() const { return OperandAt(1); } | |
| 6521 HValue* value() const { return OperandAt(2); } | |
| 6522 HValue* context() const { return OperandAt(3); } | |
| 6523 LanguageMode language_mode() const { return language_mode_; } | |
| 6524 | |
| 6525 Representation RequiredInputRepresentation(int index) override { | |
| 6526 // tagged[tagged] = tagged | |
| 6527 return Representation::Tagged(); | |
| 6528 } | |
| 6529 | |
| 6530 FeedbackVectorSlot slot() const { return slot_; } | |
| 6531 Handle<TypeFeedbackVector> feedback_vector() const { | |
| 6532 return feedback_vector_; | |
| 6533 } | |
| 6534 | |
| 6535 std::ostream& PrintDataTo(std::ostream& os) const override; // NOLINT | |
| 6536 | |
| 6537 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric) | |
| 6538 | |
| 6539 private: | |
| 6540 HStoreKeyedGeneric(HValue* context, HValue* object, HValue* key, | |
| 6541 HValue* value, LanguageMode language_mode, | |
| 6542 Handle<TypeFeedbackVector> vector, FeedbackVectorSlot slot) | |
| 6543 : feedback_vector_(vector), slot_(slot), language_mode_(language_mode) { | |
| 6544 SetOperandAt(0, object); | |
| 6545 SetOperandAt(1, key); | |
| 6546 SetOperandAt(2, value); | |
| 6547 SetOperandAt(3, context); | |
| 6548 SetAllSideEffects(); | |
| 6549 } | |
| 6550 | |
| 6551 Handle<TypeFeedbackVector> feedback_vector_; | |
| 6552 FeedbackVectorSlot slot_; | |
| 6553 LanguageMode language_mode_; | |
| 6554 }; | |
| 6555 | |
| 6556 class HTransitionElementsKind final : public HTemplateInstruction<2> { | 6511 class HTransitionElementsKind final : public HTemplateInstruction<2> { |
| 6557 public: | 6512 public: |
| 6558 inline static HTransitionElementsKind* New(Isolate* isolate, Zone* zone, | 6513 inline static HTransitionElementsKind* New(Isolate* isolate, Zone* zone, |
| 6559 HValue* context, HValue* object, | 6514 HValue* context, HValue* object, |
| 6560 Handle<Map> original_map, | 6515 Handle<Map> original_map, |
| 6561 Handle<Map> transitioned_map) { | 6516 Handle<Map> transitioned_map) { |
| 6562 return new(zone) HTransitionElementsKind(context, object, | 6517 return new(zone) HTransitionElementsKind(context, object, |
| 6563 original_map, transitioned_map); | 6518 original_map, transitioned_map); |
| 6564 } | 6519 } |
| 6565 | 6520 |
| (...skipping 516 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7082 bool IsDeletable() const override { return true; } | 7037 bool IsDeletable() const override { return true; } |
| 7083 }; | 7038 }; |
| 7084 | 7039 |
| 7085 #undef DECLARE_INSTRUCTION | 7040 #undef DECLARE_INSTRUCTION |
| 7086 #undef DECLARE_CONCRETE_INSTRUCTION | 7041 #undef DECLARE_CONCRETE_INSTRUCTION |
| 7087 | 7042 |
| 7088 } // namespace internal | 7043 } // namespace internal |
| 7089 } // namespace v8 | 7044 } // namespace v8 |
| 7090 | 7045 |
| 7091 #endif // V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ | 7046 #endif // V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ |
| OLD | NEW |