Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Side by Side Diff: src/hydrogen-instructions.h

Issue 283923003: Merged bleeding edge r20949 into 3.25 branch. (Closed) Base URL: https://v8.googlecode.com/svn/branches/3.25
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/hydrogen.cc ('k') | src/hydrogen-instructions.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 2051 matching lines...) Expand 10 before | Expand all | Expand 10 after
2062 }; 2062 };
2063 2063
2064 2064
2065 class HArgumentsObject; 2065 class HArgumentsObject;
2066 2066
2067 2067
2068 class HEnterInlined V8_FINAL : public HTemplateInstruction<0> { 2068 class HEnterInlined V8_FINAL : public HTemplateInstruction<0> {
2069 public: 2069 public:
2070 static HEnterInlined* New(Zone* zone, 2070 static HEnterInlined* New(Zone* zone,
2071 HValue* context, 2071 HValue* context,
2072 BailoutId return_id,
2072 Handle<JSFunction> closure, 2073 Handle<JSFunction> closure,
2073 int arguments_count, 2074 int arguments_count,
2074 FunctionLiteral* function, 2075 FunctionLiteral* function,
2075 InliningKind inlining_kind, 2076 InliningKind inlining_kind,
2076 Variable* arguments_var, 2077 Variable* arguments_var,
2077 HArgumentsObject* arguments_object) { 2078 HArgumentsObject* arguments_object) {
2078 return new(zone) HEnterInlined(closure, arguments_count, function, 2079 return new(zone) HEnterInlined(return_id, closure, arguments_count,
2079 inlining_kind, arguments_var, 2080 function, inlining_kind, arguments_var,
2080 arguments_object, zone); 2081 arguments_object, zone);
2081 } 2082 }
2082 2083
2083 void RegisterReturnTarget(HBasicBlock* return_target, Zone* zone); 2084 void RegisterReturnTarget(HBasicBlock* return_target, Zone* zone);
2084 ZoneList<HBasicBlock*>* return_targets() { return &return_targets_; } 2085 ZoneList<HBasicBlock*>* return_targets() { return &return_targets_; }
2085 2086
2086 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; 2087 virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
2087 2088
2088 Handle<JSFunction> closure() const { return closure_; } 2089 Handle<JSFunction> closure() const { return closure_; }
2089 int arguments_count() const { return arguments_count_; } 2090 int arguments_count() const { return arguments_count_; }
2090 bool arguments_pushed() const { return arguments_pushed_; } 2091 bool arguments_pushed() const { return arguments_pushed_; }
2091 void set_arguments_pushed() { arguments_pushed_ = true; } 2092 void set_arguments_pushed() { arguments_pushed_ = true; }
2092 FunctionLiteral* function() const { return function_; } 2093 FunctionLiteral* function() const { return function_; }
2093 InliningKind inlining_kind() const { return inlining_kind_; } 2094 InliningKind inlining_kind() const { return inlining_kind_; }
2095 BailoutId ReturnId() const { return return_id_; }
2094 2096
2095 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { 2097 virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
2096 return Representation::None(); 2098 return Representation::None();
2097 } 2099 }
2098 2100
2099 Variable* arguments_var() { return arguments_var_; } 2101 Variable* arguments_var() { return arguments_var_; }
2100 HArgumentsObject* arguments_object() { return arguments_object_; } 2102 HArgumentsObject* arguments_object() { return arguments_object_; }
2101 2103
2102 DECLARE_CONCRETE_INSTRUCTION(EnterInlined) 2104 DECLARE_CONCRETE_INSTRUCTION(EnterInlined)
2103 2105
2104 private: 2106 private:
2105 HEnterInlined(Handle<JSFunction> closure, 2107 HEnterInlined(BailoutId return_id,
2108 Handle<JSFunction> closure,
2106 int arguments_count, 2109 int arguments_count,
2107 FunctionLiteral* function, 2110 FunctionLiteral* function,
2108 InliningKind inlining_kind, 2111 InliningKind inlining_kind,
2109 Variable* arguments_var, 2112 Variable* arguments_var,
2110 HArgumentsObject* arguments_object, 2113 HArgumentsObject* arguments_object,
2111 Zone* zone) 2114 Zone* zone)
2112 : closure_(closure), 2115 : return_id_(return_id),
2116 closure_(closure),
2113 arguments_count_(arguments_count), 2117 arguments_count_(arguments_count),
2114 arguments_pushed_(false), 2118 arguments_pushed_(false),
2115 function_(function), 2119 function_(function),
2116 inlining_kind_(inlining_kind), 2120 inlining_kind_(inlining_kind),
2117 arguments_var_(arguments_var), 2121 arguments_var_(arguments_var),
2118 arguments_object_(arguments_object), 2122 arguments_object_(arguments_object),
2119 return_targets_(2, zone) { 2123 return_targets_(2, zone) {
2120 } 2124 }
2121 2125
2126 BailoutId return_id_;
2122 Handle<JSFunction> closure_; 2127 Handle<JSFunction> closure_;
2123 int arguments_count_; 2128 int arguments_count_;
2124 bool arguments_pushed_; 2129 bool arguments_pushed_;
2125 FunctionLiteral* function_; 2130 FunctionLiteral* function_;
2126 InliningKind inlining_kind_; 2131 InliningKind inlining_kind_;
2127 Variable* arguments_var_; 2132 Variable* arguments_var_;
2128 HArgumentsObject* arguments_object_; 2133 HArgumentsObject* arguments_object_;
2129 ZoneList<HBasicBlock*> return_targets_; 2134 ZoneList<HBasicBlock*> return_targets_;
2130 }; 2135 };
2131 2136
(...skipping 5389 matching lines...) Expand 10 before | Expand all | Expand 10 after
7521 virtual bool IsDeletable() const V8_OVERRIDE { return true; } 7526 virtual bool IsDeletable() const V8_OVERRIDE { return true; }
7522 }; 7527 };
7523 7528
7524 7529
7525 #undef DECLARE_INSTRUCTION 7530 #undef DECLARE_INSTRUCTION
7526 #undef DECLARE_CONCRETE_INSTRUCTION 7531 #undef DECLARE_CONCRETE_INSTRUCTION
7527 7532
7528 } } // namespace v8::internal 7533 } } // namespace v8::internal
7529 7534
7530 #endif // V8_HYDROGEN_INSTRUCTIONS_H_ 7535 #endif // V8_HYDROGEN_INSTRUCTIONS_H_
OLDNEW
« no previous file with comments | « src/hydrogen.cc ('k') | src/hydrogen-instructions.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698