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_HYDROGEN_INSTRUCTIONS_H_ | 5 #ifndef V8_HYDROGEN_INSTRUCTIONS_H_ |
6 #define V8_HYDROGEN_INSTRUCTIONS_H_ | 6 #define V8_HYDROGEN_INSTRUCTIONS_H_ |
7 | 7 |
8 #include <cstring> | 8 #include <cstring> |
9 #include <iosfwd> | 9 #include <iosfwd> |
10 | 10 |
(...skipping 1943 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1954 std::ostream& PrintDataTo(std::ostream& os) const OVERRIDE; // NOLINT | 1954 std::ostream& PrintDataTo(std::ostream& os) const OVERRIDE; // NOLINT |
1955 | 1955 |
1956 Handle<JSFunction> closure() const { return closure_; } | 1956 Handle<JSFunction> closure() const { return closure_; } |
1957 HConstant* closure_context() const { return closure_context_; } | 1957 HConstant* closure_context() const { return closure_context_; } |
1958 int arguments_count() const { return arguments_count_; } | 1958 int arguments_count() const { return arguments_count_; } |
1959 bool arguments_pushed() const { return arguments_pushed_; } | 1959 bool arguments_pushed() const { return arguments_pushed_; } |
1960 void set_arguments_pushed() { arguments_pushed_ = true; } | 1960 void set_arguments_pushed() { arguments_pushed_ = true; } |
1961 FunctionLiteral* function() const { return function_; } | 1961 FunctionLiteral* function() const { return function_; } |
1962 InliningKind inlining_kind() const { return inlining_kind_; } | 1962 InliningKind inlining_kind() const { return inlining_kind_; } |
1963 BailoutId ReturnId() const { return return_id_; } | 1963 BailoutId ReturnId() const { return return_id_; } |
| 1964 int inlining_id() const { return inlining_id_; } |
| 1965 void set_inlining_id(int inlining_id) { inlining_id_ = inlining_id; } |
1964 | 1966 |
1965 Representation RequiredInputRepresentation(int index) OVERRIDE { | 1967 Representation RequiredInputRepresentation(int index) OVERRIDE { |
1966 return Representation::None(); | 1968 return Representation::None(); |
1967 } | 1969 } |
1968 | 1970 |
1969 Variable* arguments_var() { return arguments_var_; } | 1971 Variable* arguments_var() { return arguments_var_; } |
1970 HArgumentsObject* arguments_object() { return arguments_object_; } | 1972 HArgumentsObject* arguments_object() { return arguments_object_; } |
1971 | 1973 |
1972 DECLARE_CONCRETE_INSTRUCTION(EnterInlined) | 1974 DECLARE_CONCRETE_INSTRUCTION(EnterInlined) |
1973 | 1975 |
1974 private: | 1976 private: |
1975 HEnterInlined(BailoutId return_id, Handle<JSFunction> closure, | 1977 HEnterInlined(BailoutId return_id, Handle<JSFunction> closure, |
1976 HConstant* closure_context, int arguments_count, | 1978 HConstant* closure_context, int arguments_count, |
1977 FunctionLiteral* function, InliningKind inlining_kind, | 1979 FunctionLiteral* function, InliningKind inlining_kind, |
1978 Variable* arguments_var, HArgumentsObject* arguments_object, | 1980 Variable* arguments_var, HArgumentsObject* arguments_object, |
1979 Zone* zone) | 1981 Zone* zone) |
1980 : return_id_(return_id), | 1982 : return_id_(return_id), |
1981 closure_(closure), | 1983 closure_(closure), |
1982 closure_context_(closure_context), | 1984 closure_context_(closure_context), |
1983 arguments_count_(arguments_count), | 1985 arguments_count_(arguments_count), |
1984 arguments_pushed_(false), | 1986 arguments_pushed_(false), |
1985 function_(function), | 1987 function_(function), |
1986 inlining_kind_(inlining_kind), | 1988 inlining_kind_(inlining_kind), |
| 1989 inlining_id_(0), |
1987 arguments_var_(arguments_var), | 1990 arguments_var_(arguments_var), |
1988 arguments_object_(arguments_object), | 1991 arguments_object_(arguments_object), |
1989 return_targets_(2, zone) {} | 1992 return_targets_(2, zone) {} |
1990 | 1993 |
1991 BailoutId return_id_; | 1994 BailoutId return_id_; |
1992 Handle<JSFunction> closure_; | 1995 Handle<JSFunction> closure_; |
1993 HConstant* closure_context_; | 1996 HConstant* closure_context_; |
1994 int arguments_count_; | 1997 int arguments_count_; |
1995 bool arguments_pushed_; | 1998 bool arguments_pushed_; |
1996 FunctionLiteral* function_; | 1999 FunctionLiteral* function_; |
1997 InliningKind inlining_kind_; | 2000 InliningKind inlining_kind_; |
| 2001 int inlining_id_; |
1998 Variable* arguments_var_; | 2002 Variable* arguments_var_; |
1999 HArgumentsObject* arguments_object_; | 2003 HArgumentsObject* arguments_object_; |
2000 ZoneList<HBasicBlock*> return_targets_; | 2004 ZoneList<HBasicBlock*> return_targets_; |
2001 }; | 2005 }; |
2002 | 2006 |
2003 | 2007 |
2004 class HLeaveInlined FINAL : public HTemplateInstruction<0> { | 2008 class HLeaveInlined FINAL : public HTemplateInstruction<0> { |
2005 public: | 2009 public: |
2006 HLeaveInlined(HEnterInlined* entry, | 2010 HLeaveInlined(HEnterInlined* entry, |
2007 int drop_count) | 2011 int drop_count) |
(...skipping 5965 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7973 }; | 7977 }; |
7974 | 7978 |
7975 | 7979 |
7976 | 7980 |
7977 #undef DECLARE_INSTRUCTION | 7981 #undef DECLARE_INSTRUCTION |
7978 #undef DECLARE_CONCRETE_INSTRUCTION | 7982 #undef DECLARE_CONCRETE_INSTRUCTION |
7979 | 7983 |
7980 } } // namespace v8::internal | 7984 } } // namespace v8::internal |
7981 | 7985 |
7982 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ | 7986 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ |
OLD | NEW |