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

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

Issue 1028093002: VectorICs: keyed element loads were kicking out non-smi keys unnecessarily (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Turn off --vector-ics flag. Created 5 years, 9 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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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_ARM64 7 #if V8_TARGET_ARCH_ARM64
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 3797 matching lines...) Expand 10 before | Expand all | Expand 10 after
3808 __ LoadRoot(result, Heap::kNanValueRootIndex); 3808 __ LoadRoot(result, Heap::kNanValueRootIndex);
3809 __ B(&done); 3809 __ B(&done);
3810 3810
3811 __ Bind(&need_conversion); 3811 __ Bind(&need_conversion);
3812 // Load the undefined value into the result register, which will 3812 // Load the undefined value into the result register, which will
3813 // trigger conversion. 3813 // trigger conversion.
3814 __ LoadRoot(result, Heap::kUndefinedValueRootIndex); 3814 __ LoadRoot(result, Heap::kUndefinedValueRootIndex);
3815 __ B(&done); 3815 __ B(&done);
3816 3816
3817 NopRuntimeCallHelper call_helper; 3817 NopRuntimeCallHelper call_helper;
3818 generator.GenerateSlow(masm_, call_helper); 3818 generator.GenerateSlow(masm_, NOT_PART_OF_IC_HANDLER, call_helper);
3819 3819
3820 __ Bind(&done); 3820 __ Bind(&done);
3821 context()->Plug(result); 3821 context()->Plug(result);
3822 } 3822 }
3823 3823
3824 3824
3825 void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) { 3825 void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) {
3826 ZoneList<Expression*>* args = expr->arguments(); 3826 ZoneList<Expression*>* args = expr->arguments();
3827 DCHECK(args->length() == 2); 3827 DCHECK(args->length() == 2);
3828 3828
(...skipping 25 matching lines...) Expand all
3854 // the empty string. 3854 // the empty string.
3855 __ LoadRoot(result, Heap::kempty_stringRootIndex); 3855 __ LoadRoot(result, Heap::kempty_stringRootIndex);
3856 __ B(&done); 3856 __ B(&done);
3857 3857
3858 __ Bind(&need_conversion); 3858 __ Bind(&need_conversion);
3859 // Move smi zero into the result register, which will trigger conversion. 3859 // Move smi zero into the result register, which will trigger conversion.
3860 __ Mov(result, Smi::FromInt(0)); 3860 __ Mov(result, Smi::FromInt(0));
3861 __ B(&done); 3861 __ B(&done);
3862 3862
3863 NopRuntimeCallHelper call_helper; 3863 NopRuntimeCallHelper call_helper;
3864 generator.GenerateSlow(masm_, call_helper); 3864 generator.GenerateSlow(masm_, NOT_PART_OF_IC_HANDLER, call_helper);
3865 3865
3866 __ Bind(&done); 3866 __ Bind(&done);
3867 context()->Plug(result); 3867 context()->Plug(result);
3868 } 3868 }
3869 3869
3870 3870
3871 void FullCodeGenerator::EmitStringAdd(CallRuntime* expr) { 3871 void FullCodeGenerator::EmitStringAdd(CallRuntime* expr) {
3872 ASM_LOCATION("FullCodeGenerator::EmitStringAdd"); 3872 ASM_LOCATION("FullCodeGenerator::EmitStringAdd");
3873 ZoneList<Expression*>* args = expr->arguments(); 3873 ZoneList<Expression*>* args = expr->arguments();
3874 DCHECK_EQ(2, args->length()); 3874 DCHECK_EQ(2, args->length());
(...skipping 1620 matching lines...) Expand 10 before | Expand all | Expand 10 after
5495 return previous_; 5495 return previous_;
5496 } 5496 }
5497 5497
5498 5498
5499 #undef __ 5499 #undef __
5500 5500
5501 5501
5502 } } // namespace v8::internal 5502 } } // namespace v8::internal
5503 5503
5504 #endif // V8_TARGET_ARCH_ARM64 5504 #endif // V8_TARGET_ARCH_ARM64
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698