| 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 1476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1487 HReturn(HValue* context, HValue* value, HValue* parameter_count = 0) { | 1487 HReturn(HValue* context, HValue* value, HValue* parameter_count = 0) { |
| 1488 SetOperandAt(0, value); | 1488 SetOperandAt(0, value); |
| 1489 SetOperandAt(1, context); | 1489 SetOperandAt(1, context); |
| 1490 SetOperandAt(2, parameter_count); | 1490 SetOperandAt(2, parameter_count); |
| 1491 } | 1491 } |
| 1492 }; | 1492 }; |
| 1493 | 1493 |
| 1494 | 1494 |
| 1495 class HAbnormalExit V8_FINAL : public HTemplateControlInstruction<0, 0> { | 1495 class HAbnormalExit V8_FINAL : public HTemplateControlInstruction<0, 0> { |
| 1496 public: | 1496 public: |
| 1497 DECLARE_INSTRUCTION_FACTORY_P0(HAbnormalExit); |
| 1498 |
| 1497 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 1499 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 1498 return Representation::None(); | 1500 return Representation::None(); |
| 1499 } | 1501 } |
| 1500 | 1502 |
| 1501 DECLARE_CONCRETE_INSTRUCTION(AbnormalExit) | 1503 DECLARE_CONCRETE_INSTRUCTION(AbnormalExit) |
| 1504 private: |
| 1505 HAbnormalExit() {} |
| 1502 }; | 1506 }; |
| 1503 | 1507 |
| 1504 | 1508 |
| 1505 class HUnaryOperation : public HTemplateInstruction<1> { | 1509 class HUnaryOperation : public HTemplateInstruction<1> { |
| 1506 public: | 1510 public: |
| 1507 HUnaryOperation(HValue* value, HType type = HType::Tagged()) | 1511 HUnaryOperation(HValue* value, HType type = HType::Tagged()) |
| 1508 : HTemplateInstruction<1>(type) { | 1512 : HTemplateInstruction<1>(type) { |
| 1509 SetOperandAt(0, value); | 1513 SetOperandAt(0, value); |
| 1510 } | 1514 } |
| 1511 | 1515 |
| (...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1974 | 1978 |
| 1975 private: | 1979 private: |
| 1976 explicit HPushArgument(HValue* value) : HUnaryOperation(value) { | 1980 explicit HPushArgument(HValue* value) : HUnaryOperation(value) { |
| 1977 set_representation(Representation::Tagged()); | 1981 set_representation(Representation::Tagged()); |
| 1978 } | 1982 } |
| 1979 }; | 1983 }; |
| 1980 | 1984 |
| 1981 | 1985 |
| 1982 class HThisFunction V8_FINAL : public HTemplateInstruction<0> { | 1986 class HThisFunction V8_FINAL : public HTemplateInstruction<0> { |
| 1983 public: | 1987 public: |
| 1984 HThisFunction() { | 1988 DECLARE_INSTRUCTION_FACTORY_P0(HThisFunction); |
| 1985 set_representation(Representation::Tagged()); | |
| 1986 SetFlag(kUseGVN); | |
| 1987 } | |
| 1988 | 1989 |
| 1989 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 1990 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 1990 return Representation::None(); | 1991 return Representation::None(); |
| 1991 } | 1992 } |
| 1992 | 1993 |
| 1993 DECLARE_CONCRETE_INSTRUCTION(ThisFunction) | 1994 DECLARE_CONCRETE_INSTRUCTION(ThisFunction) |
| 1994 | 1995 |
| 1995 protected: | 1996 protected: |
| 1996 virtual bool DataEquals(HValue* other) V8_OVERRIDE { return true; } | 1997 virtual bool DataEquals(HValue* other) V8_OVERRIDE { return true; } |
| 1997 | 1998 |
| 1998 private: | 1999 private: |
| 2000 HThisFunction() { |
| 2001 set_representation(Representation::Tagged()); |
| 2002 SetFlag(kUseGVN); |
| 2003 } |
| 2004 |
| 1999 virtual bool IsDeletable() const V8_OVERRIDE { return true; } | 2005 virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
| 2000 }; | 2006 }; |
| 2001 | 2007 |
| 2002 | 2008 |
| 2003 class HOuterContext V8_FINAL : public HUnaryOperation { | 2009 class HOuterContext V8_FINAL : public HUnaryOperation { |
| 2004 public: | 2010 public: |
| 2005 DECLARE_INSTRUCTION_FACTORY_P1(HOuterContext, HValue*); | 2011 DECLARE_INSTRUCTION_FACTORY_P1(HOuterContext, HValue*); |
| 2006 | 2012 |
| 2007 DECLARE_CONCRETE_INSTRUCTION(OuterContext); | 2013 DECLARE_CONCRETE_INSTRUCTION(OuterContext); |
| 2008 | 2014 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2050 SetAllSideEffects(); | 2056 SetAllSideEffects(); |
| 2051 } | 2057 } |
| 2052 | 2058 |
| 2053 Handle<FixedArray> pairs_; | 2059 Handle<FixedArray> pairs_; |
| 2054 int flags_; | 2060 int flags_; |
| 2055 }; | 2061 }; |
| 2056 | 2062 |
| 2057 | 2063 |
| 2058 class HGlobalObject V8_FINAL : public HUnaryOperation { | 2064 class HGlobalObject V8_FINAL : public HUnaryOperation { |
| 2059 public: | 2065 public: |
| 2060 explicit HGlobalObject(HValue* context) : HUnaryOperation(context) { | 2066 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P0(HGlobalObject); |
| 2061 set_representation(Representation::Tagged()); | |
| 2062 SetFlag(kUseGVN); | |
| 2063 } | |
| 2064 | |
| 2065 static HGlobalObject* New(Zone* zone, HValue* context) { | |
| 2066 return new(zone) HGlobalObject(context); | |
| 2067 } | |
| 2068 | 2067 |
| 2069 DECLARE_CONCRETE_INSTRUCTION(GlobalObject) | 2068 DECLARE_CONCRETE_INSTRUCTION(GlobalObject) |
| 2070 | 2069 |
| 2071 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 2070 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 2072 return Representation::Tagged(); | 2071 return Representation::Tagged(); |
| 2073 } | 2072 } |
| 2074 | 2073 |
| 2075 protected: | 2074 protected: |
| 2076 virtual bool DataEquals(HValue* other) V8_OVERRIDE { return true; } | 2075 virtual bool DataEquals(HValue* other) V8_OVERRIDE { return true; } |
| 2077 | 2076 |
| 2078 private: | 2077 private: |
| 2078 explicit HGlobalObject(HValue* context) : HUnaryOperation(context) { |
| 2079 set_representation(Representation::Tagged()); |
| 2080 SetFlag(kUseGVN); |
| 2081 } |
| 2082 |
| 2079 virtual bool IsDeletable() const V8_OVERRIDE { return true; } | 2083 virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
| 2080 }; | 2084 }; |
| 2081 | 2085 |
| 2082 | 2086 |
| 2083 class HGlobalReceiver V8_FINAL : public HUnaryOperation { | 2087 class HGlobalReceiver V8_FINAL : public HUnaryOperation { |
| 2084 public: | 2088 public: |
| 2085 DECLARE_INSTRUCTION_FACTORY_P1(HGlobalReceiver, HValue*); | 2089 DECLARE_INSTRUCTION_FACTORY_P1(HGlobalReceiver, HValue*); |
| 2086 | 2090 |
| 2087 DECLARE_CONCRETE_INSTRUCTION(GlobalReceiver) | 2091 DECLARE_CONCRETE_INSTRUCTION(GlobalReceiver) |
| 2088 | 2092 |
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2310 HCallGlobal(HValue* context, Handle<String> name, int argument_count) | 2314 HCallGlobal(HValue* context, Handle<String> name, int argument_count) |
| 2311 : HUnaryCall(context, argument_count), name_(name) { | 2315 : HUnaryCall(context, argument_count), name_(name) { |
| 2312 } | 2316 } |
| 2313 | 2317 |
| 2314 Handle<String> name_; | 2318 Handle<String> name_; |
| 2315 }; | 2319 }; |
| 2316 | 2320 |
| 2317 | 2321 |
| 2318 class HCallKnownGlobal V8_FINAL : public HCall<0> { | 2322 class HCallKnownGlobal V8_FINAL : public HCall<0> { |
| 2319 public: | 2323 public: |
| 2320 HCallKnownGlobal(Handle<JSFunction> target, int argument_count) | 2324 DECLARE_INSTRUCTION_FACTORY_P2(HCallKnownGlobal, Handle<JSFunction>, int); |
| 2321 : HCall<0>(argument_count), | |
| 2322 target_(target), | |
| 2323 formal_parameter_count_(target->shared()->formal_parameter_count()) { } | |
| 2324 | 2325 |
| 2325 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 2326 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 2326 | 2327 |
| 2327 Handle<JSFunction> target() const { return target_; } | 2328 Handle<JSFunction> target() const { return target_; } |
| 2328 int formal_parameter_count() const { return formal_parameter_count_; } | 2329 int formal_parameter_count() const { return formal_parameter_count_; } |
| 2329 | 2330 |
| 2330 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 2331 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 2331 return Representation::None(); | 2332 return Representation::None(); |
| 2332 } | 2333 } |
| 2333 | 2334 |
| 2334 DECLARE_CONCRETE_INSTRUCTION(CallKnownGlobal) | 2335 DECLARE_CONCRETE_INSTRUCTION(CallKnownGlobal) |
| 2335 | 2336 |
| 2336 private: | 2337 private: |
| 2338 HCallKnownGlobal(Handle<JSFunction> target, int argument_count) |
| 2339 : HCall<0>(argument_count), |
| 2340 target_(target), |
| 2341 formal_parameter_count_(target->shared()->formal_parameter_count()) { } |
| 2342 |
| 2337 Handle<JSFunction> target_; | 2343 Handle<JSFunction> target_; |
| 2338 int formal_parameter_count_; | 2344 int formal_parameter_count_; |
| 2339 }; | 2345 }; |
| 2340 | 2346 |
| 2341 | 2347 |
| 2342 class HCallNew V8_FINAL : public HBinaryCall { | 2348 class HCallNew V8_FINAL : public HBinaryCall { |
| 2343 public: | 2349 public: |
| 2344 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P2(HCallNew, HValue*, int); | 2350 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P2(HCallNew, HValue*, int); |
| 2345 | 2351 |
| 2346 HValue* context() { return first(); } | 2352 HValue* context() { return first(); } |
| (...skipping 1368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3715 HWrapReceiver(HValue* receiver, HValue* function) { | 3721 HWrapReceiver(HValue* receiver, HValue* function) { |
| 3716 set_representation(Representation::Tagged()); | 3722 set_representation(Representation::Tagged()); |
| 3717 SetOperandAt(0, receiver); | 3723 SetOperandAt(0, receiver); |
| 3718 SetOperandAt(1, function); | 3724 SetOperandAt(1, function); |
| 3719 } | 3725 } |
| 3720 }; | 3726 }; |
| 3721 | 3727 |
| 3722 | 3728 |
| 3723 class HApplyArguments V8_FINAL : public HTemplateInstruction<4> { | 3729 class HApplyArguments V8_FINAL : public HTemplateInstruction<4> { |
| 3724 public: | 3730 public: |
| 3725 HApplyArguments(HValue* function, | 3731 DECLARE_INSTRUCTION_FACTORY_P4(HApplyArguments, HValue*, HValue*, HValue*, |
| 3726 HValue* receiver, | 3732 HValue*); |
| 3727 HValue* length, | |
| 3728 HValue* elements) { | |
| 3729 set_representation(Representation::Tagged()); | |
| 3730 SetOperandAt(0, function); | |
| 3731 SetOperandAt(1, receiver); | |
| 3732 SetOperandAt(2, length); | |
| 3733 SetOperandAt(3, elements); | |
| 3734 SetAllSideEffects(); | |
| 3735 } | |
| 3736 | 3733 |
| 3737 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 3734 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 3738 // The length is untagged, all other inputs are tagged. | 3735 // The length is untagged, all other inputs are tagged. |
| 3739 return (index == 2) | 3736 return (index == 2) |
| 3740 ? Representation::Integer32() | 3737 ? Representation::Integer32() |
| 3741 : Representation::Tagged(); | 3738 : Representation::Tagged(); |
| 3742 } | 3739 } |
| 3743 | 3740 |
| 3744 HValue* function() { return OperandAt(0); } | 3741 HValue* function() { return OperandAt(0); } |
| 3745 HValue* receiver() { return OperandAt(1); } | 3742 HValue* receiver() { return OperandAt(1); } |
| 3746 HValue* length() { return OperandAt(2); } | 3743 HValue* length() { return OperandAt(2); } |
| 3747 HValue* elements() { return OperandAt(3); } | 3744 HValue* elements() { return OperandAt(3); } |
| 3748 | 3745 |
| 3749 DECLARE_CONCRETE_INSTRUCTION(ApplyArguments) | 3746 DECLARE_CONCRETE_INSTRUCTION(ApplyArguments) |
| 3747 |
| 3748 private: |
| 3749 HApplyArguments(HValue* function, |
| 3750 HValue* receiver, |
| 3751 HValue* length, |
| 3752 HValue* elements) { |
| 3753 set_representation(Representation::Tagged()); |
| 3754 SetOperandAt(0, function); |
| 3755 SetOperandAt(1, receiver); |
| 3756 SetOperandAt(2, length); |
| 3757 SetOperandAt(3, elements); |
| 3758 SetAllSideEffects(); |
| 3759 } |
| 3750 }; | 3760 }; |
| 3751 | 3761 |
| 3752 | 3762 |
| 3753 class HArgumentsElements V8_FINAL : public HTemplateInstruction<0> { | 3763 class HArgumentsElements V8_FINAL : public HTemplateInstruction<0> { |
| 3754 public: | 3764 public: |
| 3755 DECLARE_INSTRUCTION_FACTORY_P1(HArgumentsElements, bool); | 3765 DECLARE_INSTRUCTION_FACTORY_P1(HArgumentsElements, bool); |
| 3756 | 3766 |
| 3757 DECLARE_CONCRETE_INSTRUCTION(ArgumentsElements) | 3767 DECLARE_CONCRETE_INSTRUCTION(ArgumentsElements) |
| 3758 | 3768 |
| 3759 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 3769 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3797 set_representation(Representation::Integer32()); | 3807 set_representation(Representation::Integer32()); |
| 3798 SetFlag(kUseGVN); | 3808 SetFlag(kUseGVN); |
| 3799 } | 3809 } |
| 3800 | 3810 |
| 3801 virtual bool IsDeletable() const V8_OVERRIDE { return true; } | 3811 virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
| 3802 }; | 3812 }; |
| 3803 | 3813 |
| 3804 | 3814 |
| 3805 class HAccessArgumentsAt V8_FINAL : public HTemplateInstruction<3> { | 3815 class HAccessArgumentsAt V8_FINAL : public HTemplateInstruction<3> { |
| 3806 public: | 3816 public: |
| 3807 HAccessArgumentsAt(HValue* arguments, HValue* length, HValue* index) { | 3817 DECLARE_INSTRUCTION_FACTORY_P3(HAccessArgumentsAt, HValue*, HValue*, HValue*); |
| 3808 set_representation(Representation::Tagged()); | |
| 3809 SetFlag(kUseGVN); | |
| 3810 SetOperandAt(0, arguments); | |
| 3811 SetOperandAt(1, length); | |
| 3812 SetOperandAt(2, index); | |
| 3813 } | |
| 3814 | 3818 |
| 3815 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 3819 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 3816 | 3820 |
| 3817 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 3821 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 3818 // The arguments elements is considered tagged. | 3822 // The arguments elements is considered tagged. |
| 3819 return index == 0 | 3823 return index == 0 |
| 3820 ? Representation::Tagged() | 3824 ? Representation::Tagged() |
| 3821 : Representation::Integer32(); | 3825 : Representation::Integer32(); |
| 3822 } | 3826 } |
| 3823 | 3827 |
| 3824 HValue* arguments() { return OperandAt(0); } | 3828 HValue* arguments() { return OperandAt(0); } |
| 3825 HValue* length() { return OperandAt(1); } | 3829 HValue* length() { return OperandAt(1); } |
| 3826 HValue* index() { return OperandAt(2); } | 3830 HValue* index() { return OperandAt(2); } |
| 3827 | 3831 |
| 3828 DECLARE_CONCRETE_INSTRUCTION(AccessArgumentsAt) | 3832 DECLARE_CONCRETE_INSTRUCTION(AccessArgumentsAt) |
| 3829 | 3833 |
| 3834 private: |
| 3835 HAccessArgumentsAt(HValue* arguments, HValue* length, HValue* index) { |
| 3836 set_representation(Representation::Tagged()); |
| 3837 SetFlag(kUseGVN); |
| 3838 SetOperandAt(0, arguments); |
| 3839 SetOperandAt(1, length); |
| 3840 SetOperandAt(2, index); |
| 3841 } |
| 3842 |
| 3830 virtual bool DataEquals(HValue* other) V8_OVERRIDE { return true; } | 3843 virtual bool DataEquals(HValue* other) V8_OVERRIDE { return true; } |
| 3831 }; | 3844 }; |
| 3832 | 3845 |
| 3833 | 3846 |
| 3834 class HBoundsCheckBaseIndexInformation; | 3847 class HBoundsCheckBaseIndexInformation; |
| 3835 | 3848 |
| 3836 | 3849 |
| 3837 class HBoundsCheck V8_FINAL : public HTemplateInstruction<2> { | 3850 class HBoundsCheck V8_FINAL : public HTemplateInstruction<2> { |
| 3838 public: | 3851 public: |
| 3839 DECLARE_INSTRUCTION_FACTORY_P2(HBoundsCheck, HValue*, HValue*); | 3852 DECLARE_INSTRUCTION_FACTORY_P2(HBoundsCheck, HValue*, HValue*); |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4044 } | 4057 } |
| 4045 | 4058 |
| 4046 DECLARE_ABSTRACT_INSTRUCTION(ArithmeticBinaryOperation) | 4059 DECLARE_ABSTRACT_INSTRUCTION(ArithmeticBinaryOperation) |
| 4047 private: | 4060 private: |
| 4048 virtual bool IsDeletable() const V8_OVERRIDE { return true; } | 4061 virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
| 4049 }; | 4062 }; |
| 4050 | 4063 |
| 4051 | 4064 |
| 4052 class HCompareGeneric V8_FINAL : public HBinaryOperation { | 4065 class HCompareGeneric V8_FINAL : public HBinaryOperation { |
| 4053 public: | 4066 public: |
| 4054 HCompareGeneric(HValue* context, | 4067 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HCompareGeneric, HValue*, |
| 4055 HValue* left, | 4068 HValue*, Token::Value); |
| 4056 HValue* right, | |
| 4057 Token::Value token) | |
| 4058 : HBinaryOperation(context, left, right, HType::Boolean()), | |
| 4059 token_(token) { | |
| 4060 ASSERT(Token::IsCompareOp(token)); | |
| 4061 set_representation(Representation::Tagged()); | |
| 4062 SetAllSideEffects(); | |
| 4063 } | |
| 4064 | 4069 |
| 4065 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 4070 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 4066 return index == 0 | 4071 return index == 0 |
| 4067 ? Representation::Tagged() | 4072 ? Representation::Tagged() |
| 4068 : representation(); | 4073 : representation(); |
| 4069 } | 4074 } |
| 4070 | 4075 |
| 4071 Token::Value token() const { return token_; } | 4076 Token::Value token() const { return token_; } |
| 4072 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 4077 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 4073 | 4078 |
| 4074 DECLARE_CONCRETE_INSTRUCTION(CompareGeneric) | 4079 DECLARE_CONCRETE_INSTRUCTION(CompareGeneric) |
| 4075 | 4080 |
| 4076 private: | 4081 private: |
| 4082 HCompareGeneric(HValue* context, |
| 4083 HValue* left, |
| 4084 HValue* right, |
| 4085 Token::Value token) |
| 4086 : HBinaryOperation(context, left, right, HType::Boolean()), |
| 4087 token_(token) { |
| 4088 ASSERT(Token::IsCompareOp(token)); |
| 4089 set_representation(Representation::Tagged()); |
| 4090 SetAllSideEffects(); |
| 4091 } |
| 4092 |
| 4077 Token::Value token_; | 4093 Token::Value token_; |
| 4078 }; | 4094 }; |
| 4079 | 4095 |
| 4080 | 4096 |
| 4081 class HCompareNumericAndBranch : public HTemplateControlInstruction<2, 2> { | 4097 class HCompareNumericAndBranch : public HTemplateControlInstruction<2, 2> { |
| 4082 public: | 4098 public: |
| 4083 DECLARE_INSTRUCTION_FACTORY_P3(HCompareNumericAndBranch, | 4099 DECLARE_INSTRUCTION_FACTORY_P3(HCompareNumericAndBranch, |
| 4084 HValue*, HValue*, Token::Value); | 4100 HValue*, HValue*, Token::Value); |
| 4085 DECLARE_INSTRUCTION_FACTORY_P5(HCompareNumericAndBranch, | 4101 DECLARE_INSTRUCTION_FACTORY_P5(HCompareNumericAndBranch, |
| 4086 HValue*, HValue*, Token::Value, | 4102 HValue*, HValue*, Token::Value, |
| (...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4318 set_representation(Representation::Tagged()); | 4334 set_representation(Representation::Tagged()); |
| 4319 SetGVNFlag(kChangesNewSpacePromotion); | 4335 SetGVNFlag(kChangesNewSpacePromotion); |
| 4320 } | 4336 } |
| 4321 | 4337 |
| 4322 Token::Value token_; | 4338 Token::Value token_; |
| 4323 }; | 4339 }; |
| 4324 | 4340 |
| 4325 | 4341 |
| 4326 class HIsConstructCallAndBranch : public HTemplateControlInstruction<2, 0> { | 4342 class HIsConstructCallAndBranch : public HTemplateControlInstruction<2, 0> { |
| 4327 public: | 4343 public: |
| 4344 DECLARE_INSTRUCTION_FACTORY_P0(HIsConstructCallAndBranch); |
| 4345 |
| 4328 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 4346 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 4329 return Representation::None(); | 4347 return Representation::None(); |
| 4330 } | 4348 } |
| 4331 | 4349 |
| 4332 DECLARE_CONCRETE_INSTRUCTION(IsConstructCallAndBranch) | 4350 DECLARE_CONCRETE_INSTRUCTION(IsConstructCallAndBranch) |
| 4351 private: |
| 4352 HIsConstructCallAndBranch() {} |
| 4333 }; | 4353 }; |
| 4334 | 4354 |
| 4335 | 4355 |
| 4336 class HHasInstanceTypeAndBranch V8_FINAL : public HUnaryControlInstruction { | 4356 class HHasInstanceTypeAndBranch V8_FINAL : public HUnaryControlInstruction { |
| 4337 public: | 4357 public: |
| 4338 DECLARE_INSTRUCTION_FACTORY_P2( | 4358 DECLARE_INSTRUCTION_FACTORY_P2( |
| 4339 HHasInstanceTypeAndBranch, HValue*, InstanceType); | 4359 HHasInstanceTypeAndBranch, HValue*, InstanceType); |
| 4340 DECLARE_INSTRUCTION_FACTORY_P3( | 4360 DECLARE_INSTRUCTION_FACTORY_P3( |
| 4341 HHasInstanceTypeAndBranch, HValue*, InstanceType, InstanceType); | 4361 HHasInstanceTypeAndBranch, HValue*, InstanceType, InstanceType); |
| 4342 | 4362 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 4359 ASSERT(to == LAST_TYPE); // Others not implemented yet in backend. | 4379 ASSERT(to == LAST_TYPE); // Others not implemented yet in backend. |
| 4360 } | 4380 } |
| 4361 | 4381 |
| 4362 InstanceType from_; | 4382 InstanceType from_; |
| 4363 InstanceType to_; // Inclusive range, not all combinations work. | 4383 InstanceType to_; // Inclusive range, not all combinations work. |
| 4364 }; | 4384 }; |
| 4365 | 4385 |
| 4366 | 4386 |
| 4367 class HHasCachedArrayIndexAndBranch V8_FINAL : public HUnaryControlInstruction { | 4387 class HHasCachedArrayIndexAndBranch V8_FINAL : public HUnaryControlInstruction { |
| 4368 public: | 4388 public: |
| 4369 explicit HHasCachedArrayIndexAndBranch(HValue* value) | 4389 DECLARE_INSTRUCTION_FACTORY_P1(HHasCachedArrayIndexAndBranch, HValue*); |
| 4370 : HUnaryControlInstruction(value, NULL, NULL) { } | |
| 4371 | 4390 |
| 4372 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 4391 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 4373 return Representation::Tagged(); | 4392 return Representation::Tagged(); |
| 4374 } | 4393 } |
| 4375 | 4394 |
| 4376 DECLARE_CONCRETE_INSTRUCTION(HasCachedArrayIndexAndBranch) | 4395 DECLARE_CONCRETE_INSTRUCTION(HasCachedArrayIndexAndBranch) |
| 4396 private: |
| 4397 explicit HHasCachedArrayIndexAndBranch(HValue* value) |
| 4398 : HUnaryControlInstruction(value, NULL, NULL) { } |
| 4377 }; | 4399 }; |
| 4378 | 4400 |
| 4379 | 4401 |
| 4380 class HGetCachedArrayIndex V8_FINAL : public HUnaryOperation { | 4402 class HGetCachedArrayIndex V8_FINAL : public HUnaryOperation { |
| 4381 public: | 4403 public: |
| 4382 explicit HGetCachedArrayIndex(HValue* value) : HUnaryOperation(value) { | 4404 DECLARE_INSTRUCTION_FACTORY_P1(HGetCachedArrayIndex, HValue*); |
| 4383 set_representation(Representation::Tagged()); | |
| 4384 SetFlag(kUseGVN); | |
| 4385 } | |
| 4386 | 4405 |
| 4387 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 4406 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 4388 return Representation::Tagged(); | 4407 return Representation::Tagged(); |
| 4389 } | 4408 } |
| 4390 | 4409 |
| 4391 DECLARE_CONCRETE_INSTRUCTION(GetCachedArrayIndex) | 4410 DECLARE_CONCRETE_INSTRUCTION(GetCachedArrayIndex) |
| 4392 | 4411 |
| 4393 protected: | 4412 protected: |
| 4394 virtual bool DataEquals(HValue* other) V8_OVERRIDE { return true; } | 4413 virtual bool DataEquals(HValue* other) V8_OVERRIDE { return true; } |
| 4395 | 4414 |
| 4396 private: | 4415 private: |
| 4416 explicit HGetCachedArrayIndex(HValue* value) : HUnaryOperation(value) { |
| 4417 set_representation(Representation::Tagged()); |
| 4418 SetFlag(kUseGVN); |
| 4419 } |
| 4420 |
| 4397 virtual bool IsDeletable() const V8_OVERRIDE { return true; } | 4421 virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
| 4398 }; | 4422 }; |
| 4399 | 4423 |
| 4400 | 4424 |
| 4401 class HClassOfTestAndBranch V8_FINAL : public HUnaryControlInstruction { | 4425 class HClassOfTestAndBranch V8_FINAL : public HUnaryControlInstruction { |
| 4402 public: | 4426 public: |
| 4403 HClassOfTestAndBranch(HValue* value, Handle<String> class_name) | 4427 DECLARE_INSTRUCTION_FACTORY_P2(HClassOfTestAndBranch, HValue*, |
| 4404 : HUnaryControlInstruction(value, NULL, NULL), | 4428 Handle<String>); |
| 4405 class_name_(class_name) { } | |
| 4406 | 4429 |
| 4407 DECLARE_CONCRETE_INSTRUCTION(ClassOfTestAndBranch) | 4430 DECLARE_CONCRETE_INSTRUCTION(ClassOfTestAndBranch) |
| 4408 | 4431 |
| 4409 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 4432 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 4410 return Representation::Tagged(); | 4433 return Representation::Tagged(); |
| 4411 } | 4434 } |
| 4412 | 4435 |
| 4413 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 4436 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 4414 | 4437 |
| 4415 Handle<String> class_name() const { return class_name_; } | 4438 Handle<String> class_name() const { return class_name_; } |
| 4416 | 4439 |
| 4417 private: | 4440 private: |
| 4441 HClassOfTestAndBranch(HValue* value, Handle<String> class_name) |
| 4442 : HUnaryControlInstruction(value, NULL, NULL), |
| 4443 class_name_(class_name) { } |
| 4444 |
| 4418 Handle<String> class_name_; | 4445 Handle<String> class_name_; |
| 4419 }; | 4446 }; |
| 4420 | 4447 |
| 4421 | 4448 |
| 4422 class HTypeofIsAndBranch V8_FINAL : public HUnaryControlInstruction { | 4449 class HTypeofIsAndBranch V8_FINAL : public HUnaryControlInstruction { |
| 4423 public: | 4450 public: |
| 4424 HTypeofIsAndBranch(HValue* value, Handle<String> type_literal) | 4451 DECLARE_INSTRUCTION_FACTORY_P2(HTypeofIsAndBranch, HValue*, Handle<String>); |
| 4425 : HUnaryControlInstruction(value, NULL, NULL), | |
| 4426 type_literal_(type_literal) { } | |
| 4427 | 4452 |
| 4428 Handle<String> type_literal() { return type_literal_; } | 4453 Handle<String> type_literal() { return type_literal_; } |
| 4429 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 4454 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 4430 | 4455 |
| 4431 DECLARE_CONCRETE_INSTRUCTION(TypeofIsAndBranch) | 4456 DECLARE_CONCRETE_INSTRUCTION(TypeofIsAndBranch) |
| 4432 | 4457 |
| 4433 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 4458 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 4434 return Representation::Tagged(); | 4459 return Representation::Tagged(); |
| 4435 } | 4460 } |
| 4436 | 4461 |
| 4437 private: | 4462 private: |
| 4463 HTypeofIsAndBranch(HValue* value, Handle<String> type_literal) |
| 4464 : HUnaryControlInstruction(value, NULL, NULL), |
| 4465 type_literal_(type_literal) { } |
| 4466 |
| 4438 Handle<String> type_literal_; | 4467 Handle<String> type_literal_; |
| 4439 }; | 4468 }; |
| 4440 | 4469 |
| 4441 | 4470 |
| 4442 class HInstanceOf V8_FINAL : public HBinaryOperation { | 4471 class HInstanceOf V8_FINAL : public HBinaryOperation { |
| 4443 public: | 4472 public: |
| 4444 HInstanceOf(HValue* context, HValue* left, HValue* right) | 4473 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P2(HInstanceOf, HValue*, HValue*); |
| 4445 : HBinaryOperation(context, left, right, HType::Boolean()) { | |
| 4446 set_representation(Representation::Tagged()); | |
| 4447 SetAllSideEffects(); | |
| 4448 } | |
| 4449 | 4474 |
| 4450 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 4475 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 4451 return Representation::Tagged(); | 4476 return Representation::Tagged(); |
| 4452 } | 4477 } |
| 4453 | 4478 |
| 4454 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 4479 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 4455 | 4480 |
| 4456 DECLARE_CONCRETE_INSTRUCTION(InstanceOf) | 4481 DECLARE_CONCRETE_INSTRUCTION(InstanceOf) |
| 4482 |
| 4483 private: |
| 4484 HInstanceOf(HValue* context, HValue* left, HValue* right) |
| 4485 : HBinaryOperation(context, left, right, HType::Boolean()) { |
| 4486 set_representation(Representation::Tagged()); |
| 4487 SetAllSideEffects(); |
| 4488 } |
| 4457 }; | 4489 }; |
| 4458 | 4490 |
| 4459 | 4491 |
| 4460 class HInstanceOfKnownGlobal V8_FINAL : public HTemplateInstruction<2> { | 4492 class HInstanceOfKnownGlobal V8_FINAL : public HTemplateInstruction<2> { |
| 4461 public: | 4493 public: |
| 4462 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P2(HInstanceOfKnownGlobal, | 4494 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P2(HInstanceOfKnownGlobal, |
| 4463 HValue*, | 4495 HValue*, |
| 4464 Handle<JSFunction>); | 4496 Handle<JSFunction>); |
| 4465 | 4497 |
| 4466 HValue* context() { return OperandAt(0); } | 4498 HValue* context() { return OperandAt(0); } |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4522 } | 4554 } |
| 4523 | 4555 |
| 4524 virtual bool IsDeletable() const V8_OVERRIDE { | 4556 virtual bool IsDeletable() const V8_OVERRIDE { |
| 4525 return !right()->representation().IsTagged(); | 4557 return !right()->representation().IsTagged(); |
| 4526 } | 4558 } |
| 4527 }; | 4559 }; |
| 4528 | 4560 |
| 4529 | 4561 |
| 4530 class HRandom V8_FINAL : public HTemplateInstruction<1> { | 4562 class HRandom V8_FINAL : public HTemplateInstruction<1> { |
| 4531 public: | 4563 public: |
| 4532 explicit HRandom(HValue* global_object) { | 4564 DECLARE_INSTRUCTION_FACTORY_P1(HRandom, HValue*); |
| 4533 SetOperandAt(0, global_object); | |
| 4534 set_representation(Representation::Double()); | |
| 4535 } | |
| 4536 | 4565 |
| 4537 HValue* global_object() { return OperandAt(0); } | 4566 HValue* global_object() { return OperandAt(0); } |
| 4538 | 4567 |
| 4539 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 4568 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 4540 return Representation::Tagged(); | 4569 return Representation::Tagged(); |
| 4541 } | 4570 } |
| 4542 | 4571 |
| 4543 DECLARE_CONCRETE_INSTRUCTION(Random) | 4572 DECLARE_CONCRETE_INSTRUCTION(Random) |
| 4544 | 4573 |
| 4545 private: | 4574 private: |
| 4575 explicit HRandom(HValue* global_object) { |
| 4576 SetOperandAt(0, global_object); |
| 4577 set_representation(Representation::Double()); |
| 4578 } |
| 4579 |
| 4546 virtual bool IsDeletable() const V8_OVERRIDE { return true; } | 4580 virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
| 4547 }; | 4581 }; |
| 4548 | 4582 |
| 4549 | 4583 |
| 4550 class HAdd V8_FINAL : public HArithmeticBinaryOperation { | 4584 class HAdd V8_FINAL : public HArithmeticBinaryOperation { |
| 4551 public: | 4585 public: |
| 4552 static HInstruction* New(Zone* zone, | 4586 static HInstruction* New(Zone* zone, |
| 4553 HValue* context, | 4587 HValue* context, |
| 4554 HValue* left, | 4588 HValue* left, |
| 4555 HValue* right); | 4589 HValue* right); |
| (...skipping 616 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5172 } | 5206 } |
| 5173 | 5207 |
| 5174 HEnvironment* environment_; | 5208 HEnvironment* environment_; |
| 5175 int index_; | 5209 int index_; |
| 5176 HPhi* incoming_value_; | 5210 HPhi* incoming_value_; |
| 5177 }; | 5211 }; |
| 5178 | 5212 |
| 5179 | 5213 |
| 5180 class HLoadGlobalCell V8_FINAL : public HTemplateInstruction<0> { | 5214 class HLoadGlobalCell V8_FINAL : public HTemplateInstruction<0> { |
| 5181 public: | 5215 public: |
| 5182 HLoadGlobalCell(Handle<Cell> cell, PropertyDetails details) | 5216 DECLARE_INSTRUCTION_FACTORY_P2(HLoadGlobalCell, Handle<Cell>, |
| 5183 : cell_(Unique<Cell>::CreateUninitialized(cell)), details_(details) { | 5217 PropertyDetails); |
| 5184 set_representation(Representation::Tagged()); | |
| 5185 SetFlag(kUseGVN); | |
| 5186 SetGVNFlag(kDependsOnGlobalVars); | |
| 5187 } | |
| 5188 | 5218 |
| 5189 Unique<Cell> cell() const { return cell_; } | 5219 Unique<Cell> cell() const { return cell_; } |
| 5190 bool RequiresHoleCheck() const; | 5220 bool RequiresHoleCheck() const; |
| 5191 | 5221 |
| 5192 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 5222 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 5193 | 5223 |
| 5194 virtual intptr_t Hashcode() V8_OVERRIDE { | 5224 virtual intptr_t Hashcode() V8_OVERRIDE { |
| 5195 return cell_.Hashcode(); | 5225 return cell_.Hashcode(); |
| 5196 } | 5226 } |
| 5197 | 5227 |
| 5198 virtual void FinalizeUniqueness() V8_OVERRIDE { | 5228 virtual void FinalizeUniqueness() V8_OVERRIDE { |
| 5199 cell_ = Unique<Cell>(cell_.handle()); | 5229 cell_ = Unique<Cell>(cell_.handle()); |
| 5200 } | 5230 } |
| 5201 | 5231 |
| 5202 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 5232 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 5203 return Representation::None(); | 5233 return Representation::None(); |
| 5204 } | 5234 } |
| 5205 | 5235 |
| 5206 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell) | 5236 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell) |
| 5207 | 5237 |
| 5208 protected: | 5238 protected: |
| 5209 virtual bool DataEquals(HValue* other) V8_OVERRIDE { | 5239 virtual bool DataEquals(HValue* other) V8_OVERRIDE { |
| 5210 return cell_ == HLoadGlobalCell::cast(other)->cell_; | 5240 return cell_ == HLoadGlobalCell::cast(other)->cell_; |
| 5211 } | 5241 } |
| 5212 | 5242 |
| 5213 private: | 5243 private: |
| 5244 HLoadGlobalCell(Handle<Cell> cell, PropertyDetails details) |
| 5245 : cell_(Unique<Cell>::CreateUninitialized(cell)), details_(details) { |
| 5246 set_representation(Representation::Tagged()); |
| 5247 SetFlag(kUseGVN); |
| 5248 SetGVNFlag(kDependsOnGlobalVars); |
| 5249 } |
| 5250 |
| 5214 virtual bool IsDeletable() const V8_OVERRIDE { return !RequiresHoleCheck(); } | 5251 virtual bool IsDeletable() const V8_OVERRIDE { return !RequiresHoleCheck(); } |
| 5215 | 5252 |
| 5216 Unique<Cell> cell_; | 5253 Unique<Cell> cell_; |
| 5217 PropertyDetails details_; | 5254 PropertyDetails details_; |
| 5218 }; | 5255 }; |
| 5219 | 5256 |
| 5220 | 5257 |
| 5221 class HLoadGlobalGeneric V8_FINAL : public HTemplateInstruction<2> { | 5258 class HLoadGlobalGeneric V8_FINAL : public HTemplateInstruction<2> { |
| 5222 public: | 5259 public: |
| 5223 HLoadGlobalGeneric(HValue* context, | 5260 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HLoadGlobalGeneric, HValue*, |
| 5224 HValue* global_object, | 5261 Handle<Object>, bool); |
| 5225 Handle<Object> name, | |
| 5226 bool for_typeof) | |
| 5227 : name_(name), | |
| 5228 for_typeof_(for_typeof) { | |
| 5229 SetOperandAt(0, context); | |
| 5230 SetOperandAt(1, global_object); | |
| 5231 set_representation(Representation::Tagged()); | |
| 5232 SetAllSideEffects(); | |
| 5233 } | |
| 5234 | 5262 |
| 5235 HValue* context() { return OperandAt(0); } | 5263 HValue* context() { return OperandAt(0); } |
| 5236 HValue* global_object() { return OperandAt(1); } | 5264 HValue* global_object() { return OperandAt(1); } |
| 5237 Handle<Object> name() const { return name_; } | 5265 Handle<Object> name() const { return name_; } |
| 5238 bool for_typeof() const { return for_typeof_; } | 5266 bool for_typeof() const { return for_typeof_; } |
| 5239 | 5267 |
| 5240 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 5268 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 5241 | 5269 |
| 5242 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 5270 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 5243 return Representation::Tagged(); | 5271 return Representation::Tagged(); |
| 5244 } | 5272 } |
| 5245 | 5273 |
| 5246 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric) | 5274 DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric) |
| 5247 | 5275 |
| 5248 private: | 5276 private: |
| 5277 HLoadGlobalGeneric(HValue* context, |
| 5278 HValue* global_object, |
| 5279 Handle<Object> name, |
| 5280 bool for_typeof) |
| 5281 : name_(name), |
| 5282 for_typeof_(for_typeof) { |
| 5283 SetOperandAt(0, context); |
| 5284 SetOperandAt(1, global_object); |
| 5285 set_representation(Representation::Tagged()); |
| 5286 SetAllSideEffects(); |
| 5287 } |
| 5288 |
| 5249 Handle<Object> name_; | 5289 Handle<Object> name_; |
| 5250 bool for_typeof_; | 5290 bool for_typeof_; |
| 5251 }; | 5291 }; |
| 5252 | 5292 |
| 5253 | 5293 |
| 5254 class HAllocate V8_FINAL : public HTemplateInstruction<2> { | 5294 class HAllocate V8_FINAL : public HTemplateInstruction<2> { |
| 5255 public: | 5295 public: |
| 5256 static HAllocate* New(Zone* zone, | 5296 static HAllocate* New(Zone* zone, |
| 5257 HValue* context, | 5297 HValue* context, |
| 5258 HValue* size, | 5298 HValue* size, |
| (...skipping 730 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5989 } | 6029 } |
| 5990 | 6030 |
| 5991 virtual bool IsDeletable() const V8_OVERRIDE { return true; } | 6031 virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
| 5992 | 6032 |
| 5993 HObjectAccess access_; | 6033 HObjectAccess access_; |
| 5994 }; | 6034 }; |
| 5995 | 6035 |
| 5996 | 6036 |
| 5997 class HLoadNamedGeneric V8_FINAL : public HTemplateInstruction<2> { | 6037 class HLoadNamedGeneric V8_FINAL : public HTemplateInstruction<2> { |
| 5998 public: | 6038 public: |
| 5999 HLoadNamedGeneric(HValue* context, HValue* object, Handle<Object> name) | 6039 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P2(HLoadNamedGeneric, HValue*, |
| 6000 : name_(name) { | 6040 Handle<Object>); |
| 6001 SetOperandAt(0, context); | |
| 6002 SetOperandAt(1, object); | |
| 6003 set_representation(Representation::Tagged()); | |
| 6004 SetAllSideEffects(); | |
| 6005 } | |
| 6006 | 6041 |
| 6007 HValue* context() { return OperandAt(0); } | 6042 HValue* context() { return OperandAt(0); } |
| 6008 HValue* object() { return OperandAt(1); } | 6043 HValue* object() { return OperandAt(1); } |
| 6009 Handle<Object> name() const { return name_; } | 6044 Handle<Object> name() const { return name_; } |
| 6010 | 6045 |
| 6011 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 6046 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 6012 return Representation::Tagged(); | 6047 return Representation::Tagged(); |
| 6013 } | 6048 } |
| 6014 | 6049 |
| 6015 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 6050 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 6016 | 6051 |
| 6017 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric) | 6052 DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric) |
| 6018 | 6053 |
| 6019 private: | 6054 private: |
| 6055 HLoadNamedGeneric(HValue* context, HValue* object, Handle<Object> name) |
| 6056 : name_(name) { |
| 6057 SetOperandAt(0, context); |
| 6058 SetOperandAt(1, object); |
| 6059 set_representation(Representation::Tagged()); |
| 6060 SetAllSideEffects(); |
| 6061 } |
| 6062 |
| 6020 Handle<Object> name_; | 6063 Handle<Object> name_; |
| 6021 }; | 6064 }; |
| 6022 | 6065 |
| 6023 | 6066 |
| 6024 class HLoadFunctionPrototype V8_FINAL : public HUnaryOperation { | 6067 class HLoadFunctionPrototype V8_FINAL : public HUnaryOperation { |
| 6025 public: | 6068 public: |
| 6026 explicit HLoadFunctionPrototype(HValue* function) | 6069 DECLARE_INSTRUCTION_FACTORY_P1(HLoadFunctionPrototype, HValue*); |
| 6027 : HUnaryOperation(function) { | |
| 6028 set_representation(Representation::Tagged()); | |
| 6029 SetFlag(kUseGVN); | |
| 6030 SetGVNFlag(kDependsOnCalls); | |
| 6031 } | |
| 6032 | 6070 |
| 6033 HValue* function() { return OperandAt(0); } | 6071 HValue* function() { return OperandAt(0); } |
| 6034 | 6072 |
| 6035 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 6073 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 6036 return Representation::Tagged(); | 6074 return Representation::Tagged(); |
| 6037 } | 6075 } |
| 6038 | 6076 |
| 6039 DECLARE_CONCRETE_INSTRUCTION(LoadFunctionPrototype) | 6077 DECLARE_CONCRETE_INSTRUCTION(LoadFunctionPrototype) |
| 6040 | 6078 |
| 6041 protected: | 6079 protected: |
| 6042 virtual bool DataEquals(HValue* other) V8_OVERRIDE { return true; } | 6080 virtual bool DataEquals(HValue* other) V8_OVERRIDE { return true; } |
| 6081 |
| 6082 private: |
| 6083 explicit HLoadFunctionPrototype(HValue* function) |
| 6084 : HUnaryOperation(function) { |
| 6085 set_representation(Representation::Tagged()); |
| 6086 SetFlag(kUseGVN); |
| 6087 SetGVNFlag(kDependsOnCalls); |
| 6088 } |
| 6043 }; | 6089 }; |
| 6044 | 6090 |
| 6045 class ArrayInstructionInterface { | 6091 class ArrayInstructionInterface { |
| 6046 public: | 6092 public: |
| 6047 virtual HValue* GetKey() = 0; | 6093 virtual HValue* GetKey() = 0; |
| 6048 virtual void SetKey(HValue* key) = 0; | 6094 virtual void SetKey(HValue* key) = 0; |
| 6049 virtual void SetIndexOffset(uint32_t index_offset) = 0; | 6095 virtual void SetIndexOffset(uint32_t index_offset) = 0; |
| 6050 virtual bool IsDehoisted() = 0; | 6096 virtual bool IsDehoisted() = 0; |
| 6051 virtual void SetDehoisted(bool is_dehoisted) = 0; | 6097 virtual void SetDehoisted(bool is_dehoisted) = 0; |
| 6052 virtual ~ArrayInstructionInterface() { }; | 6098 virtual ~ArrayInstructionInterface() { }; |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6220 {}; // NOLINT | 6266 {}; // NOLINT |
| 6221 class IsDehoistedField: | 6267 class IsDehoistedField: |
| 6222 public BitField<bool, kStartIsDehoisted, kBitsForIsDehoisted> | 6268 public BitField<bool, kStartIsDehoisted, kBitsForIsDehoisted> |
| 6223 {}; // NOLINT | 6269 {}; // NOLINT |
| 6224 uint32_t bit_field_; | 6270 uint32_t bit_field_; |
| 6225 }; | 6271 }; |
| 6226 | 6272 |
| 6227 | 6273 |
| 6228 class HLoadKeyedGeneric V8_FINAL : public HTemplateInstruction<3> { | 6274 class HLoadKeyedGeneric V8_FINAL : public HTemplateInstruction<3> { |
| 6229 public: | 6275 public: |
| 6230 HLoadKeyedGeneric(HValue* context, HValue* obj, HValue* key) { | 6276 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P2(HLoadKeyedGeneric, HValue*, |
| 6231 set_representation(Representation::Tagged()); | 6277 HValue*); |
| 6232 SetOperandAt(0, obj); | |
| 6233 SetOperandAt(1, key); | |
| 6234 SetOperandAt(2, context); | |
| 6235 SetAllSideEffects(); | |
| 6236 } | |
| 6237 | |
| 6238 HValue* object() { return OperandAt(0); } | 6278 HValue* object() { return OperandAt(0); } |
| 6239 HValue* key() { return OperandAt(1); } | 6279 HValue* key() { return OperandAt(1); } |
| 6240 HValue* context() { return OperandAt(2); } | 6280 HValue* context() { return OperandAt(2); } |
| 6241 | 6281 |
| 6242 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 6282 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 6243 | 6283 |
| 6244 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 6284 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 6245 // tagged[tagged] | 6285 // tagged[tagged] |
| 6246 return Representation::Tagged(); | 6286 return Representation::Tagged(); |
| 6247 } | 6287 } |
| 6248 | 6288 |
| 6249 virtual HValue* Canonicalize() V8_OVERRIDE; | 6289 virtual HValue* Canonicalize() V8_OVERRIDE; |
| 6250 | 6290 |
| 6251 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric) | 6291 DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric) |
| 6292 |
| 6293 private: |
| 6294 HLoadKeyedGeneric(HValue* context, HValue* obj, HValue* key) { |
| 6295 set_representation(Representation::Tagged()); |
| 6296 SetOperandAt(0, obj); |
| 6297 SetOperandAt(1, key); |
| 6298 SetOperandAt(2, context); |
| 6299 SetAllSideEffects(); |
| 6300 } |
| 6252 }; | 6301 }; |
| 6253 | 6302 |
| 6254 | 6303 |
| 6255 class HStoreNamedField V8_FINAL : public HTemplateInstruction<3> { | 6304 class HStoreNamedField V8_FINAL : public HTemplateInstruction<3> { |
| 6256 public: | 6305 public: |
| 6257 DECLARE_INSTRUCTION_FACTORY_P3(HStoreNamedField, HValue*, | 6306 DECLARE_INSTRUCTION_FACTORY_P3(HStoreNamedField, HValue*, |
| 6258 HObjectAccess, HValue*); | 6307 HObjectAccess, HValue*); |
| 6259 | 6308 |
| 6260 DECLARE_CONCRETE_INSTRUCTION(StoreNamedField) | 6309 DECLARE_CONCRETE_INSTRUCTION(StoreNamedField) |
| 6261 | 6310 |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6360 | 6409 |
| 6361 HObjectAccess access_; | 6410 HObjectAccess access_; |
| 6362 HValue* new_space_dominator_; | 6411 HValue* new_space_dominator_; |
| 6363 WriteBarrierMode write_barrier_mode_ : 1; | 6412 WriteBarrierMode write_barrier_mode_ : 1; |
| 6364 bool has_transition_ : 1; | 6413 bool has_transition_ : 1; |
| 6365 }; | 6414 }; |
| 6366 | 6415 |
| 6367 | 6416 |
| 6368 class HStoreNamedGeneric V8_FINAL : public HTemplateInstruction<3> { | 6417 class HStoreNamedGeneric V8_FINAL : public HTemplateInstruction<3> { |
| 6369 public: | 6418 public: |
| 6370 HStoreNamedGeneric(HValue* context, | 6419 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P4(HStoreNamedGeneric, HValue*, |
| 6371 HValue* object, | 6420 Handle<String>, HValue*, |
| 6372 Handle<String> name, | 6421 StrictModeFlag); |
| 6373 HValue* value, | |
| 6374 StrictModeFlag strict_mode_flag) | |
| 6375 : name_(name), | |
| 6376 strict_mode_flag_(strict_mode_flag) { | |
| 6377 SetOperandAt(0, object); | |
| 6378 SetOperandAt(1, value); | |
| 6379 SetOperandAt(2, context); | |
| 6380 SetAllSideEffects(); | |
| 6381 } | |
| 6382 | |
| 6383 HValue* object() { return OperandAt(0); } | 6422 HValue* object() { return OperandAt(0); } |
| 6384 HValue* value() { return OperandAt(1); } | 6423 HValue* value() { return OperandAt(1); } |
| 6385 HValue* context() { return OperandAt(2); } | 6424 HValue* context() { return OperandAt(2); } |
| 6386 Handle<String> name() { return name_; } | 6425 Handle<String> name() { return name_; } |
| 6387 StrictModeFlag strict_mode_flag() { return strict_mode_flag_; } | 6426 StrictModeFlag strict_mode_flag() { return strict_mode_flag_; } |
| 6388 | 6427 |
| 6389 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 6428 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 6390 | 6429 |
| 6391 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 6430 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 6392 return Representation::Tagged(); | 6431 return Representation::Tagged(); |
| 6393 } | 6432 } |
| 6394 | 6433 |
| 6395 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric) | 6434 DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric) |
| 6396 | 6435 |
| 6397 private: | 6436 private: |
| 6437 HStoreNamedGeneric(HValue* context, |
| 6438 HValue* object, |
| 6439 Handle<String> name, |
| 6440 HValue* value, |
| 6441 StrictModeFlag strict_mode_flag) |
| 6442 : name_(name), |
| 6443 strict_mode_flag_(strict_mode_flag) { |
| 6444 SetOperandAt(0, object); |
| 6445 SetOperandAt(1, value); |
| 6446 SetOperandAt(2, context); |
| 6447 SetAllSideEffects(); |
| 6448 } |
| 6449 |
| 6398 Handle<String> name_; | 6450 Handle<String> name_; |
| 6399 StrictModeFlag strict_mode_flag_; | 6451 StrictModeFlag strict_mode_flag_; |
| 6400 }; | 6452 }; |
| 6401 | 6453 |
| 6402 | 6454 |
| 6403 class HStoreKeyed V8_FINAL | 6455 class HStoreKeyed V8_FINAL |
| 6404 : public HTemplateInstruction<3>, public ArrayInstructionInterface { | 6456 : public HTemplateInstruction<3>, public ArrayInstructionInterface { |
| 6405 public: | 6457 public: |
| 6406 DECLARE_INSTRUCTION_FACTORY_P4(HStoreKeyed, HValue*, HValue*, HValue*, | 6458 DECLARE_INSTRUCTION_FACTORY_P4(HStoreKeyed, HValue*, HValue*, HValue*, |
| 6407 ElementsKind); | 6459 ElementsKind); |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6536 ElementsKind elements_kind_; | 6588 ElementsKind elements_kind_; |
| 6537 uint32_t index_offset_; | 6589 uint32_t index_offset_; |
| 6538 bool is_dehoisted_ : 1; | 6590 bool is_dehoisted_ : 1; |
| 6539 bool is_uninitialized_ : 1; | 6591 bool is_uninitialized_ : 1; |
| 6540 HValue* new_space_dominator_; | 6592 HValue* new_space_dominator_; |
| 6541 }; | 6593 }; |
| 6542 | 6594 |
| 6543 | 6595 |
| 6544 class HStoreKeyedGeneric V8_FINAL : public HTemplateInstruction<4> { | 6596 class HStoreKeyedGeneric V8_FINAL : public HTemplateInstruction<4> { |
| 6545 public: | 6597 public: |
| 6546 HStoreKeyedGeneric(HValue* context, | 6598 DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P4(HStoreKeyedGeneric, HValue*, |
| 6547 HValue* object, | 6599 HValue*, HValue*, StrictModeFlag); |
| 6548 HValue* key, | |
| 6549 HValue* value, | |
| 6550 StrictModeFlag strict_mode_flag) | |
| 6551 : strict_mode_flag_(strict_mode_flag) { | |
| 6552 SetOperandAt(0, object); | |
| 6553 SetOperandAt(1, key); | |
| 6554 SetOperandAt(2, value); | |
| 6555 SetOperandAt(3, context); | |
| 6556 SetAllSideEffects(); | |
| 6557 } | |
| 6558 | 6600 |
| 6559 HValue* object() { return OperandAt(0); } | 6601 HValue* object() { return OperandAt(0); } |
| 6560 HValue* key() { return OperandAt(1); } | 6602 HValue* key() { return OperandAt(1); } |
| 6561 HValue* value() { return OperandAt(2); } | 6603 HValue* value() { return OperandAt(2); } |
| 6562 HValue* context() { return OperandAt(3); } | 6604 HValue* context() { return OperandAt(3); } |
| 6563 StrictModeFlag strict_mode_flag() { return strict_mode_flag_; } | 6605 StrictModeFlag strict_mode_flag() { return strict_mode_flag_; } |
| 6564 | 6606 |
| 6565 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 6607 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 6566 // tagged[tagged] = tagged | 6608 // tagged[tagged] = tagged |
| 6567 return Representation::Tagged(); | 6609 return Representation::Tagged(); |
| 6568 } | 6610 } |
| 6569 | 6611 |
| 6570 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; | 6612 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
| 6571 | 6613 |
| 6572 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric) | 6614 DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric) |
| 6573 | 6615 |
| 6574 private: | 6616 private: |
| 6617 HStoreKeyedGeneric(HValue* context, |
| 6618 HValue* object, |
| 6619 HValue* key, |
| 6620 HValue* value, |
| 6621 StrictModeFlag strict_mode_flag) |
| 6622 : strict_mode_flag_(strict_mode_flag) { |
| 6623 SetOperandAt(0, object); |
| 6624 SetOperandAt(1, key); |
| 6625 SetOperandAt(2, value); |
| 6626 SetOperandAt(3, context); |
| 6627 SetAllSideEffects(); |
| 6628 } |
| 6629 |
| 6575 StrictModeFlag strict_mode_flag_; | 6630 StrictModeFlag strict_mode_flag_; |
| 6576 }; | 6631 }; |
| 6577 | 6632 |
| 6578 | 6633 |
| 6579 class HTransitionElementsKind V8_FINAL : public HTemplateInstruction<2> { | 6634 class HTransitionElementsKind V8_FINAL : public HTemplateInstruction<2> { |
| 6580 public: | 6635 public: |
| 6581 inline static HTransitionElementsKind* New(Zone* zone, | 6636 inline static HTransitionElementsKind* New(Zone* zone, |
| 6582 HValue* context, | 6637 HValue* context, |
| 6583 HValue* object, | 6638 HValue* object, |
| 6584 Handle<Map> original_map, | 6639 Handle<Map> original_map, |
| (...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6943 ASSERT(function->function_id == Runtime::kCreateObjectLiteral); | 6998 ASSERT(function->function_id == Runtime::kCreateObjectLiteral); |
| 6944 #endif | 6999 #endif |
| 6945 } | 7000 } |
| 6946 | 7001 |
| 6947 virtual bool IsDeletable() const V8_OVERRIDE { return true; } | 7002 virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
| 6948 }; | 7003 }; |
| 6949 | 7004 |
| 6950 | 7005 |
| 6951 class HValueOf V8_FINAL : public HUnaryOperation { | 7006 class HValueOf V8_FINAL : public HUnaryOperation { |
| 6952 public: | 7007 public: |
| 6953 explicit HValueOf(HValue* value) : HUnaryOperation(value) { | 7008 DECLARE_INSTRUCTION_FACTORY_P1(HValueOf, HValue*); |
| 6954 set_representation(Representation::Tagged()); | |
| 6955 } | |
| 6956 | 7009 |
| 6957 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 7010 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 6958 return Representation::Tagged(); | 7011 return Representation::Tagged(); |
| 6959 } | 7012 } |
| 6960 | 7013 |
| 6961 DECLARE_CONCRETE_INSTRUCTION(ValueOf) | 7014 DECLARE_CONCRETE_INSTRUCTION(ValueOf) |
| 6962 | 7015 |
| 6963 private: | 7016 private: |
| 7017 explicit HValueOf(HValue* value) : HUnaryOperation(value) { |
| 7018 set_representation(Representation::Tagged()); |
| 7019 } |
| 7020 |
| 6964 virtual bool IsDeletable() const V8_OVERRIDE { return true; } | 7021 virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
| 6965 }; | 7022 }; |
| 6966 | 7023 |
| 6967 | 7024 |
| 6968 class HDateField V8_FINAL : public HUnaryOperation { | 7025 class HDateField V8_FINAL : public HUnaryOperation { |
| 6969 public: | 7026 public: |
| 6970 HDateField(HValue* date, Smi* index) | 7027 DECLARE_INSTRUCTION_FACTORY_P2(HDateField, HValue*, Smi*); |
| 6971 : HUnaryOperation(date), index_(index) { | |
| 6972 set_representation(Representation::Tagged()); | |
| 6973 } | |
| 6974 | 7028 |
| 6975 Smi* index() const { return index_; } | 7029 Smi* index() const { return index_; } |
| 6976 | 7030 |
| 6977 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 7031 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 6978 return Representation::Tagged(); | 7032 return Representation::Tagged(); |
| 6979 } | 7033 } |
| 6980 | 7034 |
| 6981 DECLARE_CONCRETE_INSTRUCTION(DateField) | 7035 DECLARE_CONCRETE_INSTRUCTION(DateField) |
| 6982 | 7036 |
| 6983 private: | 7037 private: |
| 7038 HDateField(HValue* date, Smi* index) |
| 7039 : HUnaryOperation(date), index_(index) { |
| 7040 set_representation(Representation::Tagged()); |
| 7041 } |
| 7042 |
| 6984 Smi* index_; | 7043 Smi* index_; |
| 6985 }; | 7044 }; |
| 6986 | 7045 |
| 6987 | 7046 |
| 6988 class HSeqStringSetChar V8_FINAL : public HTemplateInstruction<3> { | 7047 class HSeqStringSetChar V8_FINAL : public HTemplateInstruction<3> { |
| 6989 public: | 7048 public: |
| 6990 HSeqStringSetChar(String::Encoding encoding, | 7049 DECLARE_INSTRUCTION_FACTORY_P4(HSeqStringSetChar, String::Encoding, |
| 6991 HValue* string, | 7050 HValue*, HValue*, HValue*); |
| 6992 HValue* index, | |
| 6993 HValue* value) : encoding_(encoding) { | |
| 6994 SetOperandAt(0, string); | |
| 6995 SetOperandAt(1, index); | |
| 6996 SetOperandAt(2, value); | |
| 6997 set_representation(Representation::Tagged()); | |
| 6998 } | |
| 6999 | 7051 |
| 7000 String::Encoding encoding() { return encoding_; } | 7052 String::Encoding encoding() { return encoding_; } |
| 7001 HValue* string() { return OperandAt(0); } | 7053 HValue* string() { return OperandAt(0); } |
| 7002 HValue* index() { return OperandAt(1); } | 7054 HValue* index() { return OperandAt(1); } |
| 7003 HValue* value() { return OperandAt(2); } | 7055 HValue* value() { return OperandAt(2); } |
| 7004 | 7056 |
| 7005 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 7057 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 7006 return (index == 0) ? Representation::Tagged() | 7058 return (index == 0) ? Representation::Tagged() |
| 7007 : Representation::Integer32(); | 7059 : Representation::Integer32(); |
| 7008 } | 7060 } |
| 7009 | 7061 |
| 7010 DECLARE_CONCRETE_INSTRUCTION(SeqStringSetChar) | 7062 DECLARE_CONCRETE_INSTRUCTION(SeqStringSetChar) |
| 7011 | 7063 |
| 7012 private: | 7064 private: |
| 7065 HSeqStringSetChar(String::Encoding encoding, |
| 7066 HValue* string, |
| 7067 HValue* index, |
| 7068 HValue* value) : encoding_(encoding) { |
| 7069 SetOperandAt(0, string); |
| 7070 SetOperandAt(1, index); |
| 7071 SetOperandAt(2, value); |
| 7072 set_representation(Representation::Tagged()); |
| 7073 } |
| 7074 |
| 7013 String::Encoding encoding_; | 7075 String::Encoding encoding_; |
| 7014 }; | 7076 }; |
| 7015 | 7077 |
| 7016 | 7078 |
| 7017 class HCheckMapValue V8_FINAL : public HTemplateInstruction<2> { | 7079 class HCheckMapValue V8_FINAL : public HTemplateInstruction<2> { |
| 7018 public: | 7080 public: |
| 7019 DECLARE_INSTRUCTION_FACTORY_P2(HCheckMapValue, HValue*, HValue*); | 7081 DECLARE_INSTRUCTION_FACTORY_P2(HCheckMapValue, HValue*, HValue*); |
| 7020 | 7082 |
| 7021 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { | 7083 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
| 7022 return Representation::Tagged(); | 7084 return Representation::Tagged(); |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7151 virtual bool IsDeletable() const V8_OVERRIDE { return true; } | 7213 virtual bool IsDeletable() const V8_OVERRIDE { return true; } |
| 7152 }; | 7214 }; |
| 7153 | 7215 |
| 7154 | 7216 |
| 7155 #undef DECLARE_INSTRUCTION | 7217 #undef DECLARE_INSTRUCTION |
| 7156 #undef DECLARE_CONCRETE_INSTRUCTION | 7218 #undef DECLARE_CONCRETE_INSTRUCTION |
| 7157 | 7219 |
| 7158 } } // namespace v8::internal | 7220 } } // namespace v8::internal |
| 7159 | 7221 |
| 7160 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ | 7222 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ |
| OLD | NEW |