Revision: 17083
Author:   [email protected]
Date:     Wed Oct  2 16:13:49 2013 UTC
Log:      Fix failure in unit tests

[email protected]

Review URL: https://codereview.chromium.org/25665006
http://code.google.com/p/v8/source/detail?r=17083

Modified:
 /branches/bleeding_edge/src/hydrogen-instructions.h
 /branches/bleeding_edge/src/hydrogen.cc

=======================================
--- /branches/bleeding_edge/src/hydrogen-instructions.h Wed Oct 2 15:27:51 2013 UTC +++ /branches/bleeding_edge/src/hydrogen-instructions.h Wed Oct 2 16:13:49 2013 UTC
@@ -1932,17 +1932,23 @@

 class HLeaveInlined V8_FINAL : public HTemplateInstruction<0> {
  public:
-  explicit HLeaveInlined(int drop_count) : drop_count_(drop_count) { }
+  HLeaveInlined(HEnterInlined* entry,
+                int drop_count)
+      : entry_(entry),
+        drop_count_(drop_count) { }

virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
     return Representation::None();
   }

-  virtual int argument_delta() const V8_OVERRIDE { return -drop_count_; }
+  virtual int argument_delta() const V8_OVERRIDE {
+    return entry_->arguments_pushed() ? -drop_count_ : 0;
+  }

   DECLARE_CONCRETE_INSTRUCTION(LeaveInlined)

  private:
+  HEnterInlined* entry_;
   int drop_count_;
 };

=======================================
--- /branches/bleeding_edge/src/hydrogen.cc     Wed Oct  2 15:27:51 2013 UTC
+++ /branches/bleeding_edge/src/hydrogen.cc     Wed Oct  2 16:13:49 2013 UTC
@@ -217,9 +217,8 @@

   if (block->IsInlineReturnTarget()) {
     HEnvironment* env = last_environment();
-    int argument_count = state->entry()->arguments_pushed()
-        ? env->arguments_environment()->parameter_count() : 0;
-    AddInstruction(new(zone()) HLeaveInlined(argument_count));
+    int argument_count = env->arguments_environment()->parameter_count();
+ AddInstruction(new(zone()) HLeaveInlined(state->entry(), argument_count));
     UpdateEnvironment(last_environment()->DiscardInlined(drop_extra));
   }

@@ -237,9 +236,8 @@
   ASSERT(target->IsInlineReturnTarget());
   ASSERT(return_value != NULL);
   HEnvironment* env = last_environment();
-  int argument_count = state->entry()->arguments_pushed()
-      ? env->arguments_environment()->parameter_count() : 0;
-  AddInstruction(new(zone()) HLeaveInlined(argument_count));
+  int argument_count = env->arguments_environment()->parameter_count();
+ AddInstruction(new(zone()) HLeaveInlined(state->entry(), argument_count));
   UpdateEnvironment(last_environment()->DiscardInlined(drop_extra));
   last_environment()->Push(return_value);
   AddNewSimulate(BailoutId::None());

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to