| 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 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 V(InstanceOfKnownGlobal) \ | 128 V(InstanceOfKnownGlobal) \ |
| 129 V(InstanceSize) \ | 129 V(InstanceSize) \ |
| 130 V(InvokeFunction) \ | 130 V(InvokeFunction) \ |
| 131 V(IsConstructCallAndBranch) \ | 131 V(IsConstructCallAndBranch) \ |
| 132 V(IsObjectAndBranch) \ | 132 V(IsObjectAndBranch) \ |
| 133 V(IsNumberAndBranch) \ | 133 V(IsNumberAndBranch) \ |
| 134 V(IsStringAndBranch) \ | 134 V(IsStringAndBranch) \ |
| 135 V(IsSmiAndBranch) \ | 135 V(IsSmiAndBranch) \ |
| 136 V(IsUndetectableAndBranch) \ | 136 V(IsUndetectableAndBranch) \ |
| 137 V(LeaveInlined) \ | 137 V(LeaveInlined) \ |
| 138 V(LinkObjectInList) \ | |
| 139 V(LoadContextSlot) \ | 138 V(LoadContextSlot) \ |
| 140 V(LoadExternalArrayPointer) \ | 139 V(LoadExternalArrayPointer) \ |
| 141 V(LoadFieldByIndex) \ | 140 V(LoadFieldByIndex) \ |
| 142 V(LoadFunctionPrototype) \ | 141 V(LoadFunctionPrototype) \ |
| 143 V(LoadGlobalCell) \ | 142 V(LoadGlobalCell) \ |
| 144 V(LoadGlobalGeneric) \ | 143 V(LoadGlobalGeneric) \ |
| 145 V(LoadKeyed) \ | 144 V(LoadKeyed) \ |
| 146 V(LoadKeyedGeneric) \ | 145 V(LoadKeyedGeneric) \ |
| 147 V(LoadNamedField) \ | 146 V(LoadNamedField) \ |
| 148 V(LoadNamedFieldPolymorphic) \ | 147 V(LoadNamedFieldPolymorphic) \ |
| (...skipping 5471 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5620 } | 5619 } |
| 5621 | 5620 |
| 5622 static HObjectAccess ForAllocationSiteTransitionInfo() { | 5621 static HObjectAccess ForAllocationSiteTransitionInfo() { |
| 5623 return HObjectAccess(kInobject, AllocationSite::kTransitionInfoOffset); | 5622 return HObjectAccess(kInobject, AllocationSite::kTransitionInfoOffset); |
| 5624 } | 5623 } |
| 5625 | 5624 |
| 5626 static HObjectAccess ForAllocationSiteWeakNext() { | 5625 static HObjectAccess ForAllocationSiteWeakNext() { |
| 5627 return HObjectAccess(kInobject, AllocationSite::kWeakNextOffset); | 5626 return HObjectAccess(kInobject, AllocationSite::kWeakNextOffset); |
| 5628 } | 5627 } |
| 5629 | 5628 |
| 5629 static HObjectAccess ForAllocationSiteList() { |
| 5630 return HObjectAccess(kExternalMemory, 0, Representation::Tagged()); |
| 5631 } |
| 5632 |
| 5630 static HObjectAccess ForFixedArrayLength() { | 5633 static HObjectAccess ForFixedArrayLength() { |
| 5631 return HObjectAccess( | 5634 return HObjectAccess( |
| 5632 kArrayLengths, | 5635 kArrayLengths, |
| 5633 FixedArray::kLengthOffset, | 5636 FixedArray::kLengthOffset, |
| 5634 FLAG_track_fields ? Representation::Smi() : Representation::Tagged()); | 5637 FLAG_track_fields ? Representation::Smi() : Representation::Tagged()); |
| 5635 } | 5638 } |
| 5636 | 5639 |
| 5637 static HObjectAccess ForPropertiesPointer() { | 5640 static HObjectAccess ForPropertiesPointer() { |
| 5638 return HObjectAccess(kInobject, JSObject::kPropertiesOffset); | 5641 return HObjectAccess(kInobject, JSObject::kPropertiesOffset); |
| 5639 } | 5642 } |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5726 | 5729 |
| 5727 friend class HLoadNamedField; | 5730 friend class HLoadNamedField; |
| 5728 friend class HStoreNamedField; | 5731 friend class HStoreNamedField; |
| 5729 | 5732 |
| 5730 inline Portion portion() const { | 5733 inline Portion portion() const { |
| 5731 return PortionField::decode(value_); | 5734 return PortionField::decode(value_); |
| 5732 } | 5735 } |
| 5733 }; | 5736 }; |
| 5734 | 5737 |
| 5735 | 5738 |
| 5736 class HLinkObjectInList: public HUnaryOperation { | |
| 5737 public: | |
| 5738 // There needs to be a mapping from every KnownList to an external reference | |
| 5739 enum KnownList { | |
| 5740 ALLOCATION_SITE_LIST | |
| 5741 }; | |
| 5742 | |
| 5743 HLinkObjectInList(HValue* object, HObjectAccess store_field, | |
| 5744 KnownList known_list) | |
| 5745 : HUnaryOperation(object), | |
| 5746 store_field_(store_field), | |
| 5747 known_list_(known_list) { | |
| 5748 set_representation(Representation::Tagged()); | |
| 5749 } | |
| 5750 | |
| 5751 HObjectAccess store_field() const { return store_field_; } | |
| 5752 KnownList known_list() const { return known_list_; } | |
| 5753 | |
| 5754 virtual Representation RequiredInputRepresentation(int index) { | |
| 5755 return Representation::Tagged(); | |
| 5756 } | |
| 5757 | |
| 5758 virtual void PrintDataTo(StringStream* stream); | |
| 5759 | |
| 5760 DECLARE_CONCRETE_INSTRUCTION(LinkObjectInList) | |
| 5761 | |
| 5762 private: | |
| 5763 HObjectAccess store_field_; | |
| 5764 KnownList known_list_; | |
| 5765 }; | |
| 5766 | |
| 5767 | |
| 5768 class HLoadNamedField: public HTemplateInstruction<2> { | 5739 class HLoadNamedField: public HTemplateInstruction<2> { |
| 5769 public: | 5740 public: |
| 5770 HLoadNamedField(HValue* object, | 5741 HLoadNamedField(HValue* object, |
| 5771 HObjectAccess access, | 5742 HObjectAccess access, |
| 5772 HValue* typecheck = NULL) | 5743 HValue* typecheck = NULL) |
| 5773 : access_(access) { | 5744 : access_(access) { |
| 5774 ASSERT(object != NULL); | 5745 ASSERT(object != NULL); |
| 5775 SetOperandAt(0, object); | 5746 SetOperandAt(0, object); |
| 5776 SetOperandAt(1, typecheck != NULL ? typecheck : object); | 5747 SetOperandAt(1, typecheck != NULL ? typecheck : object); |
| 5777 | 5748 |
| (...skipping 1212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6990 virtual bool IsDeletable() const { return true; } | 6961 virtual bool IsDeletable() const { return true; } |
| 6991 }; | 6962 }; |
| 6992 | 6963 |
| 6993 | 6964 |
| 6994 #undef DECLARE_INSTRUCTION | 6965 #undef DECLARE_INSTRUCTION |
| 6995 #undef DECLARE_CONCRETE_INSTRUCTION | 6966 #undef DECLARE_CONCRETE_INSTRUCTION |
| 6996 | 6967 |
| 6997 } } // namespace v8::internal | 6968 } } // namespace v8::internal |
| 6998 | 6969 |
| 6999 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ | 6970 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ |
| OLD | NEW |