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

Unified Diff: src/hydrogen-instructions.h

Issue 10836133: Inline simple setter calls. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Made VisitReturnStatement and TryInline more similar. Simplified AddLeaveInlined. Created 8 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: src/hydrogen-instructions.h
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
index 1e92cc4a3fe53e61fa0dde85b4b5b0caf5308f84..28408f20bfe84fef5d8bd2403b350567a07175bd 100644
--- a/src/hydrogen-instructions.h
+++ b/src/hydrogen-instructions.h
@@ -1403,20 +1403,30 @@ class HStackCheck: public HTemplateInstruction<1> {
};
+// Indicate whether we have to perform special handling on return from inlined
+// functions.
+enum ReturnHandlingFlag {
+ NORMAL_RETURN, // Normal function/method return.
+ DROP_EXTRA_ON_RETURN, // Drop an extra value from the environment.
+ CONSTRUCT_CALL_RETURN, // Either use allocated receiver or return value.
+ SETTER_CALL_RETURN // Use the RHS of the assignment as the return value.
+};
+
+
class HEnterInlined: public HTemplateInstruction<0> {
public:
HEnterInlined(Handle<JSFunction> closure,
int arguments_count,
FunctionLiteral* function,
CallKind call_kind,
- bool is_construct,
+ ReturnHandlingFlag return_handling,
Variable* arguments_var,
ZoneList<HValue*>* arguments_values)
: closure_(closure),
arguments_count_(arguments_count),
function_(function),
call_kind_(call_kind),
- is_construct_(is_construct),
+ return_handling_(return_handling),
arguments_var_(arguments_var),
arguments_values_(arguments_values) {
}
@@ -1427,7 +1437,7 @@ class HEnterInlined: public HTemplateInstruction<0> {
int arguments_count() const { return arguments_count_; }
FunctionLiteral* function() const { return function_; }
CallKind call_kind() const { return call_kind_; }
- bool is_construct() const { return is_construct_; }
+ ReturnHandlingFlag return_handling() const { return return_handling_; }
virtual Representation RequiredInputRepresentation(int index) {
return Representation::None();
@@ -1443,7 +1453,7 @@ class HEnterInlined: public HTemplateInstruction<0> {
int arguments_count_;
FunctionLiteral* function_;
CallKind call_kind_;
- bool is_construct_;
+ ReturnHandlingFlag return_handling_;
Variable* arguments_var_;
ZoneList<HValue*>* arguments_values_;
};

Powered by Google App Engine
This is Rietveld 408576698