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

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

Issue 1114563003: Optimize the typeof operator. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: REBASE. Created 5 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
« no previous file with comments | « src/arm/code-stubs-arm.cc ('k') | src/arm/interface-descriptors-arm.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 4781 matching lines...) Expand 10 before | Expand all | Expand 10 after
4792 PrepareForBailoutForId(expr->MaterializeFalseId(), NO_REGISTERS); 4792 PrepareForBailoutForId(expr->MaterializeFalseId(), NO_REGISTERS);
4793 __ LoadRoot(r0, Heap::kFalseValueRootIndex); 4793 __ LoadRoot(r0, Heap::kFalseValueRootIndex);
4794 if (context()->IsStackValue()) __ push(r0); 4794 if (context()->IsStackValue()) __ push(r0);
4795 __ bind(&done); 4795 __ bind(&done);
4796 } 4796 }
4797 break; 4797 break;
4798 } 4798 }
4799 4799
4800 case Token::TYPEOF: { 4800 case Token::TYPEOF: {
4801 Comment cmnt(masm_, "[ UnaryOperation (TYPEOF)"); 4801 Comment cmnt(masm_, "[ UnaryOperation (TYPEOF)");
4802 { StackValueContext context(this); 4802 {
4803 AccumulatorValueContext context(this);
4803 VisitForTypeofValue(expr->expression()); 4804 VisitForTypeofValue(expr->expression());
4804 } 4805 }
4805 __ CallRuntime(Runtime::kTypeof, 1); 4806 __ mov(r3, r0);
4807 TypeofStub typeof_stub(isolate());
4808 __ CallStub(&typeof_stub);
4806 context()->Plug(r0); 4809 context()->Plug(r0);
4807 break; 4810 break;
4808 } 4811 }
4809 4812
4810 default: 4813 default:
4811 UNREACHABLE(); 4814 UNREACHABLE();
4812 } 4815 }
4813 } 4816 }
4814 4817
4815 4818
(...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after
5505 5508
5506 DCHECK(interrupt_address == 5509 DCHECK(interrupt_address ==
5507 isolate->builtins()->OsrAfterStackCheck()->entry()); 5510 isolate->builtins()->OsrAfterStackCheck()->entry());
5508 return OSR_AFTER_STACK_CHECK; 5511 return OSR_AFTER_STACK_CHECK;
5509 } 5512 }
5510 5513
5511 5514
5512 } } // namespace v8::internal 5515 } } // namespace v8::internal
5513 5516
5514 #endif // V8_TARGET_ARCH_ARM 5517 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/arm/code-stubs-arm.cc ('k') | src/arm/interface-descriptors-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698