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

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

Issue 1962663002: [fullcodegen] Factor out VisitProperty from architectures. (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
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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_S390 5 #if V8_TARGET_ARCH_S390
6 6
7 #include "src/ast/scopes.h" 7 #include "src/ast/scopes.h"
8 #include "src/code-factory.h" 8 #include "src/code-factory.h"
9 #include "src/code-stubs.h" 9 #include "src/code-stubs.h"
10 #include "src/codegen.h" 10 #include "src/codegen.h"
(...skipping 2254 matching lines...) Expand 10 before | Expand all | Expand 10 after
2265 2265
2266 Handle<Code> ic = 2266 Handle<Code> ic =
2267 CodeFactory::KeyedStoreIC(isolate(), language_mode()).code(); 2267 CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
2268 EmitLoadStoreICSlot(expr->AssignmentSlot()); 2268 EmitLoadStoreICSlot(expr->AssignmentSlot());
2269 CallIC(ic); 2269 CallIC(ic);
2270 2270
2271 PrepareForBailoutForId(expr->AssignmentId(), TOS_REG); 2271 PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
2272 context()->Plug(r2); 2272 context()->Plug(r2);
2273 } 2273 }
2274 2274
2275 void FullCodeGenerator::VisitProperty(Property* expr) {
2276 Comment cmnt(masm_, "[ Property");
2277 SetExpressionPosition(expr);
2278
2279 Expression* key = expr->key();
2280
2281 if (key->IsPropertyName()) {
2282 if (!expr->IsSuperAccess()) {
2283 VisitForAccumulatorValue(expr->obj());
2284 __ Move(LoadDescriptor::ReceiverRegister(), r2);
2285 EmitNamedPropertyLoad(expr);
2286 } else {
2287 VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
2288 VisitForStackValue(
2289 expr->obj()->AsSuperPropertyReference()->home_object());
2290 EmitNamedSuperPropertyLoad(expr);
2291 }
2292 } else {
2293 if (!expr->IsSuperAccess()) {
2294 VisitForStackValue(expr->obj());
2295 VisitForAccumulatorValue(expr->key());
2296 __ Move(LoadDescriptor::NameRegister(), r2);
2297 PopOperand(LoadDescriptor::ReceiverRegister());
2298 EmitKeyedPropertyLoad(expr);
2299 } else {
2300 VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
2301 VisitForStackValue(
2302 expr->obj()->AsSuperPropertyReference()->home_object());
2303 VisitForStackValue(expr->key());
2304 EmitKeyedSuperPropertyLoad(expr);
2305 }
2306 }
2307 PrepareForBailoutForId(expr->LoadId(), TOS_REG);
2308 context()->Plug(r2);
2309 }
2310
2311 void FullCodeGenerator::CallIC(Handle<Code> code, TypeFeedbackId ast_id) { 2275 void FullCodeGenerator::CallIC(Handle<Code> code, TypeFeedbackId ast_id) {
2312 ic_total_count_++; 2276 ic_total_count_++;
2313 __ Call(code, RelocInfo::CODE_TARGET, ast_id); 2277 __ Call(code, RelocInfo::CODE_TARGET, ast_id);
2314 } 2278 }
2315 2279
2316 // Code common for calls using the IC. 2280 // Code common for calls using the IC.
2317 void FullCodeGenerator::EmitCallWithLoadIC(Call* expr) { 2281 void FullCodeGenerator::EmitCallWithLoadIC(Call* expr) {
2318 Expression* callee = expr->expression(); 2282 Expression* callee = expr->expression();
2319 2283
2320 // Get the target function. 2284 // Get the target function.
(...skipping 1523 matching lines...) Expand 10 before | Expand all | Expand 10 after
3844 DCHECK(kOSRBranchInstruction == br_instr); 3808 DCHECK(kOSRBranchInstruction == br_instr);
3845 3809
3846 DCHECK(interrupt_address == 3810 DCHECK(interrupt_address ==
3847 isolate->builtins()->OnStackReplacement()->entry()); 3811 isolate->builtins()->OnStackReplacement()->entry());
3848 return ON_STACK_REPLACEMENT; 3812 return ON_STACK_REPLACEMENT;
3849 } 3813 }
3850 3814
3851 } // namespace internal 3815 } // namespace internal
3852 } // namespace v8 3816 } // namespace v8
3853 #endif // V8_TARGET_ARCH_S390 3817 #endif // V8_TARGET_ARCH_S390
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698