| Index: src/hydrogen-instructions.h
|
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
|
| index d0dd5680c0485555b013113e97cf0ea9e8d59701..31e4e2d3a5147c4dae70cbaa73f217ac1bd1b9ef 100644
|
| --- a/src/hydrogen-instructions.h
|
| +++ b/src/hydrogen-instructions.h
|
| @@ -1354,13 +1354,15 @@ class HEnterInlined: public HTemplateInstruction<0> {
|
| FunctionLiteral* function,
|
| CallKind call_kind,
|
| bool is_construct,
|
| - Variable* arguments)
|
| + Variable* arguments_var,
|
| + ZoneList<HValue*>* arguments_values)
|
| : closure_(closure),
|
| arguments_count_(arguments_count),
|
| function_(function),
|
| call_kind_(call_kind),
|
| is_construct_(is_construct),
|
| - arguments_(arguments) {
|
| + arguments_var_(arguments_var),
|
| + arguments_values_(arguments_values) {
|
| }
|
|
|
| virtual void PrintDataTo(StringStream* stream);
|
| @@ -1375,7 +1377,8 @@ class HEnterInlined: public HTemplateInstruction<0> {
|
| return Representation::None();
|
| }
|
|
|
| - Variable* arguments() { return arguments_; }
|
| + Variable* arguments_var() { return arguments_var_; }
|
| + ZoneList<HValue*>* arguments_values() { return arguments_values_; }
|
|
|
| DECLARE_CONCRETE_INSTRUCTION(EnterInlined)
|
|
|
| @@ -1385,19 +1388,28 @@ class HEnterInlined: public HTemplateInstruction<0> {
|
| FunctionLiteral* function_;
|
| CallKind call_kind_;
|
| bool is_construct_;
|
| - Variable* arguments_;
|
| + Variable* arguments_var_;
|
| + ZoneList<HValue*>* arguments_values_;
|
| };
|
|
|
|
|
| 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_;
|
| };
|
|
|
|
|
| @@ -2577,7 +2589,7 @@ class HApplyArguments: public HTemplateInstruction<4> {
|
|
|
| class HArgumentsElements: public HTemplateInstruction<0> {
|
| public:
|
| - HArgumentsElements() {
|
| + explicit HArgumentsElements(bool from_inlined) : from_inlined_(from_inlined) {
|
| // The value produced by this instruction is a pointer into the stack
|
| // that looks as if it was a smi because of alignment.
|
| set_representation(Representation::Tagged());
|
| @@ -2590,8 +2602,12 @@ class HArgumentsElements: public HTemplateInstruction<0> {
|
| return Representation::None();
|
| }
|
|
|
| + bool from_inlined() const { return from_inlined_; }
|
| +
|
| protected:
|
| virtual bool DataEquals(HValue* other) { return true; }
|
| +
|
| + bool from_inlined_;
|
| };
|
|
|
|
|
|
|