Revision: 15179
Author: [email protected]
Date: Mon Jun 17 04:11:41 2013
Log: Fix bogus replay of arguments object binding in LChunkBuilder.
[email protected]
BUG=chromium:249894
TEST=webkit:fast/js/regress/inline-arguments-access.html
Review URL: https://codereview.chromium.org/16938009
http://code.google.com/p/v8/source/detail?r=15179
Modified:
/branches/bleeding_edge/src/arm/lithium-arm.cc
/branches/bleeding_edge/src/ia32/lithium-ia32.cc
/branches/bleeding_edge/src/mips/lithium-mips.cc
/branches/bleeding_edge/src/x64/lithium-x64.cc
=======================================
--- /branches/bleeding_edge/src/arm/lithium-arm.cc Fri Jun 14 07:33:15 2013
+++ /branches/bleeding_edge/src/arm/lithium-arm.cc Mon Jun 17 04:11:41 2013
@@ -2592,8 +2592,9 @@
undefined,
instr->inlining_kind(),
instr->undefined_receiver());
- if (instr->arguments_var() != NULL) {
- inner->Bind(instr->arguments_var(), graph()->GetArgumentsObject());
+ // Only replay binding of arguments object if it wasn't removed from
graph.
+ if (instr->arguments_var() != NULL &&
instr->arguments_object()->IsLinked()) {
+ inner->Bind(instr->arguments_var(), instr->arguments_object());
}
inner->set_entry(instr);
current_block_->UpdateEnvironment(inner);
=======================================
--- /branches/bleeding_edge/src/ia32/lithium-ia32.cc Fri Jun 14 07:33:15
2013
+++ /branches/bleeding_edge/src/ia32/lithium-ia32.cc Mon Jun 17 04:11:41
2013
@@ -2734,8 +2734,9 @@
undefined,
instr->inlining_kind(),
instr->undefined_receiver());
- if (instr->arguments_var() != NULL) {
- inner->Bind(instr->arguments_var(), graph()->GetArgumentsObject());
+ // Only replay binding of arguments object if it wasn't removed from
graph.
+ if (instr->arguments_var() != NULL &&
instr->arguments_object()->IsLinked()) {
+ inner->Bind(instr->arguments_var(), instr->arguments_object());
}
inner->set_entry(instr);
current_block_->UpdateEnvironment(inner);
=======================================
--- /branches/bleeding_edge/src/mips/lithium-mips.cc Fri Jun 14 02:02:11
2013
+++ /branches/bleeding_edge/src/mips/lithium-mips.cc Mon Jun 17 04:11:41
2013
@@ -2463,8 +2463,9 @@
undefined,
instr->inlining_kind(),
instr->undefined_receiver());
- if (instr->arguments_var() != NULL) {
- inner->Bind(instr->arguments_var(), graph()->GetArgumentsObject());
+ // Only replay binding of arguments object if it wasn't removed from
graph.
+ if (instr->arguments_var() != NULL &&
instr->arguments_object()->IsLinked()) {
+ inner->Bind(instr->arguments_var(), instr->arguments_object());
}
inner->set_entry(instr);
current_block_->UpdateEnvironment(inner);
=======================================
--- /branches/bleeding_edge/src/x64/lithium-x64.cc Fri Jun 14 07:33:15 2013
+++ /branches/bleeding_edge/src/x64/lithium-x64.cc Mon Jun 17 04:11:41 2013
@@ -2529,8 +2529,9 @@
undefined,
instr->inlining_kind(),
instr->undefined_receiver());
- if (instr->arguments_var() != NULL) {
- inner->Bind(instr->arguments_var(), graph()->GetArgumentsObject());
+ // Only replay binding of arguments object if it wasn't removed from
graph.
+ if (instr->arguments_var() != NULL &&
instr->arguments_object()->IsLinked()) {
+ inner->Bind(instr->arguments_var(), instr->arguments_object());
}
inner->set_entry(instr);
current_block_->UpdateEnvironment(inner);
--
--
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.