| 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 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 V(Sar) \ | 158 V(Sar) \ |
| 159 V(SeqStringGetChar) \ | 159 V(SeqStringGetChar) \ |
| 160 V(SeqStringSetChar) \ | 160 V(SeqStringSetChar) \ |
| 161 V(Shl) \ | 161 V(Shl) \ |
| 162 V(Shr) \ | 162 V(Shr) \ |
| 163 V(Simulate) \ | 163 V(Simulate) \ |
| 164 V(StackCheck) \ | 164 V(StackCheck) \ |
| 165 V(StoreCodeEntry) \ | 165 V(StoreCodeEntry) \ |
| 166 V(StoreContextSlot) \ | 166 V(StoreContextSlot) \ |
| 167 V(StoreGlobalCell) \ | 167 V(StoreGlobalCell) \ |
| 168 V(StoreGlobalGeneric) \ | |
| 169 V(StoreKeyed) \ | 168 V(StoreKeyed) \ |
| 170 V(StoreKeyedGeneric) \ | 169 V(StoreKeyedGeneric) \ |
| 171 V(StoreNamedField) \ | 170 V(StoreNamedField) \ |
| 172 V(StoreNamedGeneric) \ | 171 V(StoreNamedGeneric) \ |
| 173 V(StringAdd) \ | 172 V(StringAdd) \ |
| 174 V(StringCharCodeAt) \ | 173 V(StringCharCodeAt) \ |
| 175 V(StringCharFromCode) \ | 174 V(StringCharFromCode) \ |
| 176 V(StringCompareAndBranch) \ | 175 V(StringCompareAndBranch) \ |
| 177 V(Sub) \ | 176 V(Sub) \ |
| 178 V(ThisFunction) \ | 177 V(ThisFunction) \ |
| (...skipping 5556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5735 cell_(Unique<PropertyCell>::CreateUninitialized(cell)), | 5734 cell_(Unique<PropertyCell>::CreateUninitialized(cell)), |
| 5736 details_(details) { | 5735 details_(details) { |
| 5737 SetGVNFlag(kChangesGlobalVars); | 5736 SetGVNFlag(kChangesGlobalVars); |
| 5738 } | 5737 } |
| 5739 | 5738 |
| 5740 Unique<PropertyCell> cell_; | 5739 Unique<PropertyCell> cell_; |
| 5741 PropertyDetails details_; | 5740 PropertyDetails details_; |
| 5742 }; | 5741 }; |
| 5743 | 5742 |
| 5744 | 5743 |
| 5745 class HStoreGlobalGeneric : public HTemplateInstruction<3> { | |
| 5746 public: | |
| 5747 inline static HStoreGlobalGeneric* New(Zone* zone, | |
| 5748 HValue* context, | |
| 5749 HValue* global_object, | |
| 5750 Handle<Object> name, | |
| 5751 HValue* value, | |
| 5752 StrictModeFlag strict_mode_flag) { | |
| 5753 return new(zone) HStoreGlobalGeneric(context, global_object, | |
| 5754 name, value, strict_mode_flag); | |
| 5755 } | |
| 5756 | |
| 5757 HValue* context() { return OperandAt(0); } | |
| 5758 HValue* global_object() { return OperandAt(1); } | |
| 5759 Handle<Object> name() const { return name_; } | |
| 5760 HValue* value() { return OperandAt(2); } | |
| 5761 StrictModeFlag strict_mode_flag() { return strict_mode_flag_; } | |
| 5762 | |
| 5763 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | |
| 5764 | |
| 5765 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | |
| 5766 return Representation::Tagged(); | |
| 5767 } | |
| 5768 | |
| 5769 DECLARE_CONCRETE_INSTRUCTION(StoreGlobalGeneric) | |
| 5770 | |
| 5771 private: | |
| 5772 HStoreGlobalGeneric(HValue* context, | |
| 5773 HValue* global_object, | |
| 5774 Handle<Object> name, | |
| 5775 HValue* value, | |
| 5776 StrictModeFlag strict_mode_flag) | |
| 5777 : name_(name), | |
| 5778 strict_mode_flag_(strict_mode_flag) { | |
| 5779 SetOperandAt(0, context); | |
| 5780 SetOperandAt(1, global_object); | |
| 5781 SetOperandAt(2, value); | |
| 5782 set_representation(Representation::Tagged()); | |
| 5783 SetAllSideEffects(); | |
| 5784 } | |
| 5785 | |
| 5786 Handle<Object> name_; | |
| 5787 StrictModeFlag strict_mode_flag_; | |
| 5788 }; | |
| 5789 | |
| 5790 | |
| 5791 class HLoadContextSlot V8_FINAL : public HUnaryOperation { | 5744 class HLoadContextSlot V8_FINAL : public HUnaryOperation { |
| 5792 public: | 5745 public: |
| 5793 enum Mode { | 5746 enum Mode { |
| 5794 // Perform a normal load of the context slot without checking its value. | 5747 // Perform a normal load of the context slot without checking its value. |
| 5795 kNoCheck, | 5748 kNoCheck, |
| 5796 // Load and check the value of the context slot. Deoptimize if it's the | 5749 // Load and check the value of the context slot. Deoptimize if it's the |
| 5797 // hole value. This is used for checking for loading of uninitialized | 5750 // hole value. This is used for checking for loading of uninitialized |
| 5798 // harmony bindings where we deoptimize into full-codegen generated code | 5751 // harmony bindings where we deoptimize into full-codegen generated code |
| 5799 // which will subsequently throw a reference error. | 5752 // which will subsequently throw a reference error. |
| 5800 kCheckDeoptimize, | 5753 kCheckDeoptimize, |
| (...skipping 1806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7607 virtual bool IsDeletable() const V8_OVERRIDE { return true; } | 7560 virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
| 7608 }; | 7561 }; |
| 7609 | 7562 |
| 7610 | 7563 |
| 7611 #undef DECLARE_INSTRUCTION | 7564 #undef DECLARE_INSTRUCTION |
| 7612 #undef DECLARE_CONCRETE_INSTRUCTION | 7565 #undef DECLARE_CONCRETE_INSTRUCTION |
| 7613 | 7566 |
| 7614 } } // namespace v8::internal | 7567 } } // namespace v8::internal |
| 7615 | 7568 |
| 7616 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ | 7569 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ |
| OLD | NEW |