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

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

Issue 1270393002: [strong] Refactor out separate strong runtime call for class objects (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: cl feedback 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
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 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_IA32 7 #if V8_TARGET_ARCH_IA32
8 8
9 #include "src/code-factory.h" 9 #include "src/code-factory.h"
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 2468 matching lines...) Expand 10 before | Expand all | Expand 10 after
2479 2479
2480 case ObjectLiteral::Property::SETTER: 2480 case ObjectLiteral::Property::SETTER:
2481 __ push(Immediate(Smi::FromInt(DONT_ENUM))); 2481 __ push(Immediate(Smi::FromInt(DONT_ENUM)));
2482 __ CallRuntime(Runtime::kDefineSetterPropertyUnchecked, 4); 2482 __ CallRuntime(Runtime::kDefineSetterPropertyUnchecked, 4);
2483 break; 2483 break;
2484 } 2484 }
2485 } 2485 }
2486 2486
2487 // Set both the prototype and constructor to have fast properties, and also 2487 // Set both the prototype and constructor to have fast properties, and also
2488 // freeze them in strong mode. 2488 // freeze them in strong mode.
2489 __ CallRuntime(is_strong(language_mode()) 2489 __ CallRuntime(Runtime::kFinalizeClassDefinition, 2);
2490 ? Runtime::kFinalizeClassDefinitionStrong
2491 : Runtime::kFinalizeClassDefinition,
2492 2);
2493 } 2490 }
2494 2491
2495 2492
2496 void FullCodeGenerator::EmitBinaryOp(BinaryOperation* expr, Token::Value op) { 2493 void FullCodeGenerator::EmitBinaryOp(BinaryOperation* expr, Token::Value op) {
2497 __ pop(edx); 2494 __ pop(edx);
2498 Handle<Code> code = 2495 Handle<Code> code =
2499 CodeFactory::BinaryOpIC(isolate(), op, strength(language_mode())).code(); 2496 CodeFactory::BinaryOpIC(isolate(), op, strength(language_mode())).code();
2500 JumpPatchSite patch_site(masm_); // unbound, signals no inlined smi code. 2497 JumpPatchSite patch_site(masm_); // unbound, signals no inlined smi code.
2501 CallIC(code, expr->BinaryOperationFeedbackId()); 2498 CallIC(code, expr->BinaryOperationFeedbackId());
2502 patch_site.EmitPatchInfo(); 2499 patch_site.EmitPatchInfo();
(...skipping 2841 matching lines...) Expand 10 before | Expand all | Expand 10 after
5344 Assembler::target_address_at(call_target_address, 5341 Assembler::target_address_at(call_target_address,
5345 unoptimized_code)); 5342 unoptimized_code));
5346 return OSR_AFTER_STACK_CHECK; 5343 return OSR_AFTER_STACK_CHECK;
5347 } 5344 }
5348 5345
5349 5346
5350 } // namespace internal 5347 } // namespace internal
5351 } // namespace v8 5348 } // namespace v8
5352 5349
5353 #endif // V8_TARGET_ARCH_IA32 5350 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « src/full-codegen/arm64/full-codegen-arm64.cc ('k') | src/full-codegen/mips/full-codegen-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698