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

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

Issue 1964993002: [cleanup] Global variable declarations are never hole initialized (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 7 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 | « src/full-codegen/mips/full-codegen-mips.cc ('k') | src/full-codegen/ppc/full-codegen-ppc.cc » ('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_MIPS64 5 #if V8_TARGET_ARCH_MIPS64
6 6
7 // Note on Mips implementation: 7 // Note on Mips implementation:
8 // 8 //
9 // The result_register() for mips is the 'v0' register, which is defined 9 // The result_register() for mips is the 'v0' register, which is defined
10 // by the ABI to contain function return values. However, the first 10 // by the ABI to contain function return values. However, the first
(...skipping 746 matching lines...) Expand 10 before | Expand all | Expand 10 after
757 // If it was not possible to allocate the variable at compile time, we 757 // If it was not possible to allocate the variable at compile time, we
758 // need to "declare" it at runtime to make sure it actually exists in the 758 // need to "declare" it at runtime to make sure it actually exists in the
759 // local context. 759 // local context.
760 VariableProxy* proxy = declaration->proxy(); 760 VariableProxy* proxy = declaration->proxy();
761 VariableMode mode = declaration->mode(); 761 VariableMode mode = declaration->mode();
762 Variable* variable = proxy->var(); 762 Variable* variable = proxy->var();
763 bool hole_init = mode == LET || mode == CONST; 763 bool hole_init = mode == LET || mode == CONST;
764 switch (variable->location()) { 764 switch (variable->location()) {
765 case VariableLocation::GLOBAL: 765 case VariableLocation::GLOBAL:
766 case VariableLocation::UNALLOCATED: 766 case VariableLocation::UNALLOCATED:
767 DCHECK(!variable->binding_needs_init());
767 globals_->Add(variable->name(), zone()); 768 globals_->Add(variable->name(), zone());
768 globals_->Add(variable->binding_needs_init() 769 globals_->Add(isolate()->factory()->undefined_value(), zone());
769 ? isolate()->factory()->the_hole_value()
770 : isolate()->factory()->undefined_value(),
771 zone());
772 break; 770 break;
773 771
774 case VariableLocation::PARAMETER: 772 case VariableLocation::PARAMETER:
775 case VariableLocation::LOCAL: 773 case VariableLocation::LOCAL:
776 if (hole_init) { 774 if (hole_init) {
777 Comment cmnt(masm_, "[ VariableDeclaration"); 775 Comment cmnt(masm_, "[ VariableDeclaration");
778 __ LoadRoot(a4, Heap::kTheHoleValueRootIndex); 776 __ LoadRoot(a4, Heap::kTheHoleValueRootIndex);
779 __ sd(a4, StackOperand(variable)); 777 __ sd(a4, StackOperand(variable));
780 } 778 }
781 break; 779 break;
(...skipping 3170 matching lines...) Expand 10 before | Expand all | Expand 10 after
3952 reinterpret_cast<uint64_t>( 3950 reinterpret_cast<uint64_t>(
3953 isolate->builtins()->OnStackReplacement()->entry())); 3951 isolate->builtins()->OnStackReplacement()->entry()));
3954 return ON_STACK_REPLACEMENT; 3952 return ON_STACK_REPLACEMENT;
3955 } 3953 }
3956 3954
3957 3955
3958 } // namespace internal 3956 } // namespace internal
3959 } // namespace v8 3957 } // namespace v8
3960 3958
3961 #endif // V8_TARGET_ARCH_MIPS64 3959 #endif // V8_TARGET_ARCH_MIPS64
OLDNEW
« no previous file with comments | « src/full-codegen/mips/full-codegen-mips.cc ('k') | src/full-codegen/ppc/full-codegen-ppc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698