| 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 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 V(StoreKeyed) \ | 137 V(StoreKeyed) \ |
| 138 V(StoreKeyedGeneric) \ | 138 V(StoreKeyedGeneric) \ |
| 139 V(StoreNamedField) \ | 139 V(StoreNamedField) \ |
| 140 V(StoreNamedGeneric) \ | 140 V(StoreNamedGeneric) \ |
| 141 V(StringAdd) \ | 141 V(StringAdd) \ |
| 142 V(StringCharCodeAt) \ | 142 V(StringCharCodeAt) \ |
| 143 V(StringCharFromCode) \ | 143 V(StringCharFromCode) \ |
| 144 V(StringCompareAndBranch) \ | 144 V(StringCompareAndBranch) \ |
| 145 V(Sub) \ | 145 V(Sub) \ |
| 146 V(ThisFunction) \ | 146 V(ThisFunction) \ |
| 147 V(ToFastProperties) \ | |
| 148 V(TransitionElementsKind) \ | 147 V(TransitionElementsKind) \ |
| 149 V(TrapAllocationMemento) \ | 148 V(TrapAllocationMemento) \ |
| 150 V(Typeof) \ | 149 V(Typeof) \ |
| 151 V(TypeofIsAndBranch) \ | 150 V(TypeofIsAndBranch) \ |
| 152 V(UnaryMathOperation) \ | 151 V(UnaryMathOperation) \ |
| 153 V(UnknownOSRValue) \ | 152 V(UnknownOSRValue) \ |
| 154 V(UseConst) \ | 153 V(UseConst) \ |
| 155 V(WrapReceiver) | 154 V(WrapReceiver) |
| 156 | 155 |
| 157 #define GVN_TRACKED_FLAG_LIST(V) \ | 156 #define GVN_TRACKED_FLAG_LIST(V) \ |
| (...skipping 7153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7311 SetChangesFlag(kElementsPointer); | 7310 SetChangesFlag(kElementsPointer); |
| 7312 SetChangesFlag(kNewSpacePromotion); | 7311 SetChangesFlag(kNewSpacePromotion); |
| 7313 set_representation(Representation::Tagged()); | 7312 set_representation(Representation::Tagged()); |
| 7314 } | 7313 } |
| 7315 | 7314 |
| 7316 bool is_js_array_; | 7315 bool is_js_array_; |
| 7317 ElementsKind kind_; | 7316 ElementsKind kind_; |
| 7318 }; | 7317 }; |
| 7319 | 7318 |
| 7320 | 7319 |
| 7321 class HToFastProperties final : public HUnaryOperation { | |
| 7322 public: | |
| 7323 DECLARE_INSTRUCTION_FACTORY_P1(HToFastProperties, HValue*); | |
| 7324 | |
| 7325 Representation RequiredInputRepresentation(int index) override { | |
| 7326 return Representation::Tagged(); | |
| 7327 } | |
| 7328 | |
| 7329 DECLARE_CONCRETE_INSTRUCTION(ToFastProperties) | |
| 7330 | |
| 7331 private: | |
| 7332 explicit HToFastProperties(HValue* value) : HUnaryOperation(value) { | |
| 7333 set_representation(Representation::Tagged()); | |
| 7334 SetChangesFlag(kNewSpacePromotion); | |
| 7335 | |
| 7336 // This instruction is not marked as kChangesMaps, but does | |
| 7337 // change the map of the input operand. Use it only when creating | |
| 7338 // object literals via a runtime call. | |
| 7339 DCHECK(value->IsCallRuntime()); | |
| 7340 #ifdef DEBUG | |
| 7341 const Runtime::Function* function = HCallRuntime::cast(value)->function(); | |
| 7342 DCHECK(function->function_id == Runtime::kCreateObjectLiteral); | |
| 7343 #endif | |
| 7344 } | |
| 7345 | |
| 7346 bool IsDeletable() const override { return true; } | |
| 7347 }; | |
| 7348 | |
| 7349 | |
| 7350 class HSeqStringGetChar final : public HTemplateInstruction<2> { | 7320 class HSeqStringGetChar final : public HTemplateInstruction<2> { |
| 7351 public: | 7321 public: |
| 7352 static HInstruction* New(Isolate* isolate, Zone* zone, HValue* context, | 7322 static HInstruction* New(Isolate* isolate, Zone* zone, HValue* context, |
| 7353 String::Encoding encoding, HValue* string, | 7323 String::Encoding encoding, HValue* string, |
| 7354 HValue* index); | 7324 HValue* index); |
| 7355 | 7325 |
| 7356 Representation RequiredInputRepresentation(int index) override { | 7326 Representation RequiredInputRepresentation(int index) override { |
| 7357 return (index == 0) ? Representation::Tagged() | 7327 return (index == 0) ? Representation::Tagged() |
| 7358 : Representation::Integer32(); | 7328 : Representation::Integer32(); |
| 7359 } | 7329 } |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7595 | 7565 |
| 7596 | 7566 |
| 7597 | 7567 |
| 7598 #undef DECLARE_INSTRUCTION | 7568 #undef DECLARE_INSTRUCTION |
| 7599 #undef DECLARE_CONCRETE_INSTRUCTION | 7569 #undef DECLARE_CONCRETE_INSTRUCTION |
| 7600 | 7570 |
| 7601 } // namespace internal | 7571 } // namespace internal |
| 7602 } // namespace v8 | 7572 } // namespace v8 |
| 7603 | 7573 |
| 7604 #endif // V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ | 7574 #endif // V8_CRANKSHAFT_HYDROGEN_INSTRUCTIONS_H_ |
| OLD | NEW |