Index: src/x64/full-codegen-x64.cc |
diff --git a/src/x64/full-codegen-x64.cc b/src/x64/full-codegen-x64.cc |
index 780f4b027fa6a9507ce28429f321cbd5ddf74881..d7db7fdd796f992af23046f25edd4664b9dcc78e 100644 |
--- a/src/x64/full-codegen-x64.cc |
+++ b/src/x64/full-codegen-x64.cc |
@@ -200,11 +200,14 @@ void FullCodeGenerator::Generate(CompilationInfo* info) { |
// stack frame was an arguments adapter frame. |
ArgumentsAccessStub stub(ArgumentsAccessStub::NEW_OBJECT); |
__ CallStub(&stub); |
- // Store new arguments object in both "arguments" and ".arguments" slots. |
- __ movq(rcx, rax); |
+ |
+ Variable* arguments_shadow = scope()->arguments_shadow(); |
+ if (arguments_shadow != NULL) { |
+ // Store new arguments object in both "arguments" and ".arguments" slots. |
+ __ movq(rcx, rax); |
+ Move(arguments_shadow->AsSlot(), rcx, rbx, rdx); |
+ } |
Move(arguments->AsSlot(), rax, rbx, rdx); |
- Slot* dot_arguments_slot = scope()->arguments_shadow()->AsSlot(); |
- Move(dot_arguments_slot, rcx, rbx, rdx); |
} |
if (FLAG_trace) { |