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

Side by Side Diff: src/arm/full-codegen-arm.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 | « no previous file | src/arm64/full-codegen-arm64.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_ARM 7 #if V8_TARGET_ARCH_ARM
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 4721 matching lines...) Expand 10 before | Expand all | Expand 10 after
4732 // Push the target function under the receiver. 4732 // Push the target function under the receiver.
4733 __ ldr(ip, MemOperand(sp, 0)); 4733 __ ldr(ip, MemOperand(sp, 0));
4734 __ push(ip); 4734 __ push(ip);
4735 __ str(r0, MemOperand(sp, kPointerSize)); 4735 __ str(r0, MemOperand(sp, kPointerSize));
4736 4736
4737 // Push the arguments ("left-to-right"). 4737 // Push the arguments ("left-to-right").
4738 for (int i = 0; i < arg_count; i++) { 4738 for (int i = 0; i < arg_count; i++) {
4739 VisitForStackValue(args->at(i)); 4739 VisitForStackValue(args->at(i));
4740 } 4740 }
4741 4741
4742 PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
4742 EmitCallJSRuntimeFunction(expr); 4743 EmitCallJSRuntimeFunction(expr);
4743 4744
4744 // Restore context register. 4745 // Restore context register.
4745 __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); 4746 __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
4746 4747
4747 context()->DropAndPlug(1, r0); 4748 context()->DropAndPlug(1, r0);
4748 4749
4749 } else { 4750 } else {
4750 const Runtime::Function* function = expr->function(); 4751 const Runtime::Function* function = expr->function();
4751 switch (function->function_id) { 4752 switch (function->function_id) {
4752 #define CALL_INTRINSIC_GENERATOR(Name) \ 4753 #define CALL_INTRINSIC_GENERATOR(Name) \
4753 case Runtime::kInline##Name: { \ 4754 case Runtime::kInline##Name: { \
4754 Comment cmnt(masm_, "[ Inline" #Name); \ 4755 Comment cmnt(masm_, "[ Inline" #Name); \
4755 return Emit##Name(expr); \ 4756 return Emit##Name(expr); \
4756 } 4757 }
4757 FOR_EACH_FULL_CODE_INTRINSIC(CALL_INTRINSIC_GENERATOR) 4758 FOR_EACH_FULL_CODE_INTRINSIC(CALL_INTRINSIC_GENERATOR)
4758 #undef CALL_INTRINSIC_GENERATOR 4759 #undef CALL_INTRINSIC_GENERATOR
4759 default: { 4760 default: {
4760 Comment cmnt(masm_, "[ CallRuntime for unhandled intrinsic"); 4761 Comment cmnt(masm_, "[ CallRuntime for unhandled intrinsic");
4761 // Push the arguments ("left-to-right"). 4762 // Push the arguments ("left-to-right").
4762 for (int i = 0; i < arg_count; i++) { 4763 for (int i = 0; i < arg_count; i++) {
4763 VisitForStackValue(args->at(i)); 4764 VisitForStackValue(args->at(i));
4764 } 4765 }
4765 4766
4766 // Call the C runtime function. 4767 // Call the C runtime function.
4768 PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
4767 __ CallRuntime(expr->function(), arg_count); 4769 __ CallRuntime(expr->function(), arg_count);
4768 context()->Plug(r0); 4770 context()->Plug(r0);
4769 } 4771 }
4770 } 4772 }
4771 } 4773 }
4772 } 4774 }
4773 4775
4774 4776
4775 void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) { 4777 void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) {
4776 switch (expr->op()) { 4778 switch (expr->op()) {
(...skipping 831 matching lines...) Expand 10 before | Expand all | Expand 10 after
5608 DCHECK(interrupt_address == 5610 DCHECK(interrupt_address ==
5609 isolate->builtins()->OsrAfterStackCheck()->entry()); 5611 isolate->builtins()->OsrAfterStackCheck()->entry());
5610 return OSR_AFTER_STACK_CHECK; 5612 return OSR_AFTER_STACK_CHECK;
5611 } 5613 }
5612 5614
5613 5615
5614 } // namespace internal 5616 } // namespace internal
5615 } // namespace v8 5617 } // namespace v8
5616 5618
5617 #endif // V8_TARGET_ARCH_ARM 5619 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « no previous file | src/arm64/full-codegen-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698