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.