Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index fb5879fd90c15cedcbe0ed45dee448ec5d420af7..93e14bead99cc91a3c219df132350f2e459181a5 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -1353,12 +1353,15 @@ class HEnterInlined: public HTemplateInstruction<0> { |
int arguments_count, |
FunctionLiteral* function, |
CallKind call_kind, |
- bool is_construct) |
+ bool is_construct, |
+ Variable* arguments) |
: closure_(closure), |
arguments_count_(arguments_count), |
function_(function), |
call_kind_(call_kind), |
- is_construct_(is_construct) { |
+ is_construct_(is_construct), |
+ arguments_(arguments), |
+ materializes_arguments_(false) { |
} |
virtual void PrintDataTo(StringStream* stream); |
@@ -1373,6 +1376,13 @@ class HEnterInlined: public HTemplateInstruction<0> { |
return Representation::None(); |
} |
+ bool materializes_arguments() { return materializes_arguments_; } |
+ void set_materializes_arguments(bool materializes_arguments) { |
+ materializes_arguments_ = materializes_arguments; |
+ } |
+ |
+ Variable* arguments() { return arguments_; } |
+ |
DECLARE_CONCRETE_INSTRUCTION(EnterInlined) |
private: |
@@ -1381,18 +1391,28 @@ class HEnterInlined: public HTemplateInstruction<0> { |
FunctionLiteral* function_; |
CallKind call_kind_; |
bool is_construct_; |
+ Variable* arguments_; |
+ bool materializes_arguments_; |
}; |
class HLeaveInlined: public HTemplateInstruction<0> { |
public: |
- HLeaveInlined() {} |
+ explicit HLeaveInlined(bool arguments_pushed) |
+ : arguments_pushed_(arguments_pushed) { } |
virtual Representation RequiredInputRepresentation(int index) { |
return Representation::None(); |
} |
+ bool arguments_pushed() { |
+ return arguments_pushed_; |
+ } |
+ |
DECLARE_CONCRETE_INSTRUCTION(LeaveInlined) |
+ |
+ private: |
+ bool arguments_pushed_; |
}; |