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

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

Issue 2625873009: [ast] Remove heap accesses from AST numbering (Closed)
Patch Set: Address nits Created 3 years, 11 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
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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_PPC 5 #if V8_TARGET_ARCH_PPC
6 6
7 #include "src/ast/compile-time-value.h" 7 #include "src/ast/compile-time-value.h"
8 #include "src/ast/scopes.h" 8 #include "src/ast/scopes.h"
9 #include "src/builtins/builtins-constructor.h" 9 #include "src/builtins/builtins-constructor.h"
10 #include "src/code-factory.h" 10 #include "src/code-factory.h"
(...skipping 1131 matching lines...) Expand 10 before | Expand all | Expand 10 after
1142 int offset = property->kind() == ObjectLiteral::Property::GETTER ? 2 : 3; 1142 int offset = property->kind() == ObjectLiteral::Property::GETTER ? 2 : 3;
1143 EmitSetHomeObject(expression, offset, property->GetSlot()); 1143 EmitSetHomeObject(expression, offset, property->GetSlot());
1144 } 1144 }
1145 } 1145 }
1146 } 1146 }
1147 1147
1148 1148
1149 void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) { 1149 void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
1150 Comment cmnt(masm_, "[ ObjectLiteral"); 1150 Comment cmnt(masm_, "[ ObjectLiteral");
1151 1151
1152 Handle<FixedArray> constant_properties = expr->constant_properties(); 1152 Handle<FixedArray> constant_properties =
1153 expr->GetOrBuildConstantProperties(isolate());
1153 __ LoadP(r6, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); 1154 __ LoadP(r6, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
1154 __ LoadSmiLiteral(r5, Smi::FromInt(expr->literal_index())); 1155 __ LoadSmiLiteral(r5, Smi::FromInt(expr->literal_index()));
1155 __ mov(r4, Operand(constant_properties)); 1156 __ mov(r4, Operand(constant_properties));
1156 int flags = expr->ComputeFlags(); 1157 int flags = expr->ComputeFlags();
1157 __ LoadSmiLiteral(r3, Smi::FromInt(flags)); 1158 __ LoadSmiLiteral(r3, Smi::FromInt(flags));
1158 if (MustCreateObjectLiteralWithRuntime(expr)) { 1159 if (MustCreateObjectLiteralWithRuntime(expr)) {
1159 __ Push(r6, r5, r4, r3); 1160 __ Push(r6, r5, r4, r3);
1160 __ CallRuntime(Runtime::kCreateObjectLiteral); 1161 __ CallRuntime(Runtime::kCreateObjectLiteral);
1161 } else { 1162 } else {
1162 Callable callable = CodeFactory::FastCloneShallowObject( 1163 Callable callable = CodeFactory::FastCloneShallowObject(
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
1271 context()->PlugTOS(); 1272 context()->PlugTOS();
1272 } else { 1273 } else {
1273 context()->Plug(r3); 1274 context()->Plug(r3);
1274 } 1275 }
1275 } 1276 }
1276 1277
1277 1278
1278 void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { 1279 void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) {
1279 Comment cmnt(masm_, "[ ArrayLiteral"); 1280 Comment cmnt(masm_, "[ ArrayLiteral");
1280 1281
1281 Handle<ConstantElementsPair> constant_elements = expr->constant_elements(); 1282 Handle<ConstantElementsPair> constant_elements =
1283 expr->GetOrBuildConstantElements(isolate());
1282 bool has_fast_elements = 1284 bool has_fast_elements =
1283 IsFastObjectElementsKind(expr->constant_elements_kind()); 1285 IsFastObjectElementsKind(expr->constant_elements_kind());
1284 1286
1285 AllocationSiteMode allocation_site_mode = TRACK_ALLOCATION_SITE; 1287 AllocationSiteMode allocation_site_mode = TRACK_ALLOCATION_SITE;
1286 if (has_fast_elements && !FLAG_allocation_site_pretenuring) { 1288 if (has_fast_elements && !FLAG_allocation_site_pretenuring) {
1287 // If the only customer of allocation sites is transitioning, then 1289 // If the only customer of allocation sites is transitioning, then
1288 // we can turn it off if we don't have anywhere else to transition to. 1290 // we can turn it off if we don't have anywhere else to transition to.
1289 allocation_site_mode = DONT_TRACK_ALLOCATION_SITE; 1291 allocation_site_mode = DONT_TRACK_ALLOCATION_SITE;
1290 } 1292 }
1291 1293
(...skipping 1478 matching lines...) Expand 10 before | Expand all | Expand 10 after
2770 2772
2771 DCHECK(Assembler::IsCrSet(Assembler::instr_at(cmp_address))); 2773 DCHECK(Assembler::IsCrSet(Assembler::instr_at(cmp_address)));
2772 2774
2773 DCHECK(interrupt_address == 2775 DCHECK(interrupt_address ==
2774 isolate->builtins()->OnStackReplacement()->entry()); 2776 isolate->builtins()->OnStackReplacement()->entry());
2775 return ON_STACK_REPLACEMENT; 2777 return ON_STACK_REPLACEMENT;
2776 } 2778 }
2777 } // namespace internal 2779 } // namespace internal
2778 } // namespace v8 2780 } // namespace v8
2779 #endif // V8_TARGET_ARCH_PPC 2781 #endif // V8_TARGET_ARCH_PPC
OLDNEW
« no previous file with comments | « src/full-codegen/mips64/full-codegen-mips64.cc ('k') | src/full-codegen/s390/full-codegen-s390.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698