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

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

Issue 1210863002: [turbofan] Use proper eager deopts for %_ThrowNotDateError(). (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: ports Created 5 years, 5 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/compiler/operator-properties.cc ('k') | src/mips/full-codegen-mips.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 #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 4655 matching lines...) Expand 10 before | Expand all | Expand 10 after
4666 4666
4667 // Push the target function under the receiver. 4667 // Push the target function under the receiver.
4668 __ push(Operand(esp, 0)); 4668 __ push(Operand(esp, 0));
4669 __ mov(Operand(esp, kPointerSize), eax); 4669 __ mov(Operand(esp, kPointerSize), eax);
4670 4670
4671 // Push the arguments ("left-to-right"). 4671 // Push the arguments ("left-to-right").
4672 for (int i = 0; i < arg_count; i++) { 4672 for (int i = 0; i < arg_count; i++) {
4673 VisitForStackValue(args->at(i)); 4673 VisitForStackValue(args->at(i));
4674 } 4674 }
4675 4675
4676 PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
4676 EmitCallJSRuntimeFunction(expr); 4677 EmitCallJSRuntimeFunction(expr);
4677 4678
4678 // Restore context register. 4679 // Restore context register.
4679 __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset)); 4680 __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
4680 context()->DropAndPlug(1, eax); 4681 context()->DropAndPlug(1, eax);
4681 4682
4682 } else { 4683 } else {
4683 const Runtime::Function* function = expr->function(); 4684 const Runtime::Function* function = expr->function();
4684 switch (function->function_id) { 4685 switch (function->function_id) {
4685 #define CALL_INTRINSIC_GENERATOR(Name) \ 4686 #define CALL_INTRINSIC_GENERATOR(Name) \
4686 case Runtime::kInline##Name: { \ 4687 case Runtime::kInline##Name: { \
4687 Comment cmnt(masm_, "[ Inline" #Name); \ 4688 Comment cmnt(masm_, "[ Inline" #Name); \
4688 return Emit##Name(expr); \ 4689 return Emit##Name(expr); \
4689 } 4690 }
4690 FOR_EACH_FULL_CODE_INTRINSIC(CALL_INTRINSIC_GENERATOR) 4691 FOR_EACH_FULL_CODE_INTRINSIC(CALL_INTRINSIC_GENERATOR)
4691 #undef CALL_INTRINSIC_GENERATOR 4692 #undef CALL_INTRINSIC_GENERATOR
4692 default: { 4693 default: {
4693 Comment cmnt(masm_, "[ CallRuntime for unhandled intrinsic"); 4694 Comment cmnt(masm_, "[ CallRuntime for unhandled intrinsic");
4694 // Push the arguments ("left-to-right"). 4695 // Push the arguments ("left-to-right").
4695 for (int i = 0; i < arg_count; i++) { 4696 for (int i = 0; i < arg_count; i++) {
4696 VisitForStackValue(args->at(i)); 4697 VisitForStackValue(args->at(i));
4697 } 4698 }
4698 4699
4699 // Call the C runtime function. 4700 // Call the C runtime function.
4701 PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
4700 __ CallRuntime(expr->function(), arg_count); 4702 __ CallRuntime(expr->function(), arg_count);
4701 context()->Plug(eax); 4703 context()->Plug(eax);
4702 } 4704 }
4703 } 4705 }
4704 } 4706 }
4705 } 4707 }
4706 4708
4707 4709
4708 void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) { 4710 void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) {
4709 switch (expr->op()) { 4711 switch (expr->op()) {
(...skipping 773 matching lines...) Expand 10 before | Expand all | Expand 10 after
5483 Assembler::target_address_at(call_target_address, 5485 Assembler::target_address_at(call_target_address,
5484 unoptimized_code)); 5486 unoptimized_code));
5485 return OSR_AFTER_STACK_CHECK; 5487 return OSR_AFTER_STACK_CHECK;
5486 } 5488 }
5487 5489
5488 5490
5489 } // namespace internal 5491 } // namespace internal
5490 } // namespace v8 5492 } // namespace v8
5491 5493
5492 #endif // V8_TARGET_ARCH_IA32 5494 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « src/compiler/operator-properties.cc ('k') | src/mips/full-codegen-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698