Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(439)

Side by Side Diff: src/full-codegen/arm/full-codegen-arm.cc

Issue 1040703003: Fix variable decl register collision on ARM. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | test/mjsunit/regress/regress-455207.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #if V8_TARGET_ARCH_ARM 5 #if V8_TARGET_ARCH_ARM
6 6
7 #include "src/code-factory.h" 7 #include "src/code-factory.h"
8 #include "src/code-stubs.h" 8 #include "src/code-stubs.h"
9 #include "src/codegen.h" 9 #include "src/codegen.h"
10 #include "src/compiler.h" 10 #include "src/compiler.h"
(...skipping 824 matching lines...) Expand 10 before | Expand all | Expand 10 after
835 globals_->Add(variable->binding_needs_init() 835 globals_->Add(variable->binding_needs_init()
836 ? isolate()->factory()->the_hole_value() 836 ? isolate()->factory()->the_hole_value()
837 : isolate()->factory()->undefined_value(), 837 : isolate()->factory()->undefined_value(),
838 zone()); 838 zone());
839 break; 839 break;
840 840
841 case VariableLocation::PARAMETER: 841 case VariableLocation::PARAMETER:
842 case VariableLocation::LOCAL: 842 case VariableLocation::LOCAL:
843 if (hole_init) { 843 if (hole_init) {
844 Comment cmnt(masm_, "[ VariableDeclaration"); 844 Comment cmnt(masm_, "[ VariableDeclaration");
845 __ LoadRoot(ip, Heap::kTheHoleValueRootIndex); 845 __ LoadRoot(r0, Heap::kTheHoleValueRootIndex);
846 __ str(ip, StackOperand(variable)); 846 __ str(r0, StackOperand(variable));
847 } 847 }
848 break; 848 break;
849 849
850 case VariableLocation::CONTEXT: 850 case VariableLocation::CONTEXT:
851 if (hole_init) { 851 if (hole_init) {
852 Comment cmnt(masm_, "[ VariableDeclaration"); 852 Comment cmnt(masm_, "[ VariableDeclaration");
853 EmitDebugCheckDeclarationContext(variable); 853 EmitDebugCheckDeclarationContext(variable);
854 __ LoadRoot(ip, Heap::kTheHoleValueRootIndex); 854 __ LoadRoot(r0, Heap::kTheHoleValueRootIndex);
855 __ str(ip, ContextOperand(cp, variable->index())); 855 __ str(r0, ContextOperand(cp, variable->index()));
856 // No write barrier since the_hole_value is in old space. 856 // No write barrier since the_hole_value is in old space.
857 PrepareForBailoutForId(proxy->id(), NO_REGISTERS); 857 PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
858 } 858 }
859 break; 859 break;
860 860
861 case VariableLocation::LOOKUP: { 861 case VariableLocation::LOOKUP: {
862 Comment cmnt(masm_, "[ VariableDeclaration"); 862 Comment cmnt(masm_, "[ VariableDeclaration");
863 __ mov(r2, Operand(variable->name())); 863 __ mov(r2, Operand(variable->name()));
864 // Declaration nodes are always introduced in one of four modes. 864 // Declaration nodes are always introduced in one of four modes.
865 DCHECK(IsDeclaredVariableMode(mode)); 865 DCHECK(IsDeclaredVariableMode(mode));
(...skipping 4548 matching lines...) Expand 10 before | Expand all | Expand 10 after
5414 DCHECK(interrupt_address == 5414 DCHECK(interrupt_address ==
5415 isolate->builtins()->OsrAfterStackCheck()->entry()); 5415 isolate->builtins()->OsrAfterStackCheck()->entry());
5416 return OSR_AFTER_STACK_CHECK; 5416 return OSR_AFTER_STACK_CHECK;
5417 } 5417 }
5418 5418
5419 5419
5420 } // namespace internal 5420 } // namespace internal
5421 } // namespace v8 5421 } // namespace v8
5422 5422
5423 #endif // V8_TARGET_ARCH_ARM 5423 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « no previous file | test/mjsunit/regress/regress-455207.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698