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

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

Issue 1524673002: [fullcodegen] Add support for %_GetSuperConstructor. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years 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/full-codegen/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 #if V8_TARGET_ARCH_ARM 5 #if V8_TARGET_ARCH_ARM
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 3724 matching lines...) Expand 10 before | Expand all | Expand 10 after
3735 3735
3736 __ AssertString(r0); 3736 __ AssertString(r0);
3737 3737
3738 __ ldr(r0, FieldMemOperand(r0, String::kHashFieldOffset)); 3738 __ ldr(r0, FieldMemOperand(r0, String::kHashFieldOffset));
3739 __ IndexFromHash(r0, r0); 3739 __ IndexFromHash(r0, r0);
3740 3740
3741 context()->Plug(r0); 3741 context()->Plug(r0);
3742 } 3742 }
3743 3743
3744 3744
3745 void FullCodeGenerator::EmitGetSuperConstructor(CallRuntime* expr) {
3746 ZoneList<Expression*>* args = expr->arguments();
3747 DCHECK_EQ(1, args->length());
3748 VisitForAccumulatorValue(args->at(0));
3749 __ AssertFunction(r0);
3750 __ ldr(r0, FieldMemOperand(r0, HeapObject::kMapOffset));
3751 __ ldr(r0, FieldMemOperand(r0, Map::kPrototypeOffset));
3752 context()->Plug(r0);
3753 }
3754
3755
3745 void FullCodeGenerator::EmitFastOneByteArrayJoin(CallRuntime* expr) { 3756 void FullCodeGenerator::EmitFastOneByteArrayJoin(CallRuntime* expr) {
3746 Label bailout, done, one_char_separator, long_separator, non_trivial_array, 3757 Label bailout, done, one_char_separator, long_separator, non_trivial_array,
3747 not_size_one_array, loop, empty_separator_loop, one_char_separator_loop, 3758 not_size_one_array, loop, empty_separator_loop, one_char_separator_loop,
3748 one_char_separator_loop_entry, long_separator_loop; 3759 one_char_separator_loop_entry, long_separator_loop;
3749 ZoneList<Expression*>* args = expr->arguments(); 3760 ZoneList<Expression*>* args = expr->arguments();
3750 DCHECK(args->length() == 2); 3761 DCHECK(args->length() == 2);
3751 VisitForStackValue(args->at(1)); 3762 VisitForStackValue(args->at(1));
3752 VisitForAccumulatorValue(args->at(0)); 3763 VisitForAccumulatorValue(args->at(0));
3753 3764
3754 // All aliases of the same register have disjoint lifetimes. 3765 // All aliases of the same register have disjoint lifetimes.
(...skipping 1133 matching lines...) Expand 10 before | Expand all | Expand 10 after
4888 DCHECK(interrupt_address == 4899 DCHECK(interrupt_address ==
4889 isolate->builtins()->OsrAfterStackCheck()->entry()); 4900 isolate->builtins()->OsrAfterStackCheck()->entry());
4890 return OSR_AFTER_STACK_CHECK; 4901 return OSR_AFTER_STACK_CHECK;
4891 } 4902 }
4892 4903
4893 4904
4894 } // namespace internal 4905 } // namespace internal
4895 } // namespace v8 4906 } // namespace v8
4896 4907
4897 #endif // V8_TARGET_ARCH_ARM 4908 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « no previous file | src/full-codegen/arm64/full-codegen-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698