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

Side by Side Diff: src/x64/code-stubs-x64.cc

Issue 984963002: Intrinsics in the INLINE_FUNCTION_LIST are now avaliable without '_', too. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Platform ports. 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
« no previous file with comments | « src/runtime/runtime-strings.cc ('k') | src/x87/code-stubs-x87.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 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_X64 7 #if V8_TARGET_ARCH_X64
8 8
9 #include "src/bootstrapper.h" 9 #include "src/bootstrapper.h"
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 3217 matching lines...) Expand 10 before | Expand all | Expand 10 after
3228 // rcx: result length 3228 // rcx: result length
3229 // rdi: first character of result 3229 // rdi: first character of result
3230 // r14: character of sub string start 3230 // r14: character of sub string start
3231 StringHelper::GenerateCopyCharacters( 3231 StringHelper::GenerateCopyCharacters(
3232 masm, rdi, r14, rcx, String::TWO_BYTE_ENCODING); 3232 masm, rdi, r14, rcx, String::TWO_BYTE_ENCODING);
3233 __ IncrementCounter(counters->sub_string_native(), 1); 3233 __ IncrementCounter(counters->sub_string_native(), 1);
3234 __ ret(SUB_STRING_ARGUMENT_COUNT * kPointerSize); 3234 __ ret(SUB_STRING_ARGUMENT_COUNT * kPointerSize);
3235 3235
3236 // Just jump to runtime to create the sub string. 3236 // Just jump to runtime to create the sub string.
3237 __ bind(&runtime); 3237 __ bind(&runtime);
3238 __ TailCallRuntime(Runtime::kSubString, 3, 1); 3238 __ TailCallRuntime(Runtime::kSubStringRT, 3, 1);
3239 3239
3240 __ bind(&single_char); 3240 __ bind(&single_char);
3241 // rax: string 3241 // rax: string
3242 // rbx: instance type 3242 // rbx: instance type
3243 // rcx: sub string length (smi) 3243 // rcx: sub string length (smi)
3244 // rdx: from index (smi) 3244 // rdx: from index (smi)
3245 StringCharAtGenerator generator(rax, rdx, rcx, rax, &runtime, &runtime, 3245 StringCharAtGenerator generator(rax, rdx, rcx, rax, &runtime, &runtime,
3246 &runtime, STRING_INDEX_IS_NUMBER, 3246 &runtime, STRING_INDEX_IS_NUMBER,
3247 RECEIVER_IS_STRING); 3247 RECEIVER_IS_STRING);
3248 generator.GenerateFast(masm); 3248 generator.GenerateFast(masm);
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
3465 // Drop arguments from the stack 3465 // Drop arguments from the stack
3466 __ PopReturnAddressTo(rcx); 3466 __ PopReturnAddressTo(rcx);
3467 __ addp(rsp, Immediate(2 * kPointerSize)); 3467 __ addp(rsp, Immediate(2 * kPointerSize));
3468 __ PushReturnAddressFrom(rcx); 3468 __ PushReturnAddressFrom(rcx);
3469 StringHelper::GenerateCompareFlatOneByteStrings(masm, rdx, rax, rcx, rbx, rdi, 3469 StringHelper::GenerateCompareFlatOneByteStrings(masm, rdx, rax, rcx, rbx, rdi,
3470 r8); 3470 r8);
3471 3471
3472 // Call the runtime; it returns -1 (less), 0 (equal), or 1 (greater) 3472 // Call the runtime; it returns -1 (less), 0 (equal), or 1 (greater)
3473 // tagged as a small integer. 3473 // tagged as a small integer.
3474 __ bind(&runtime); 3474 __ bind(&runtime);
3475 __ TailCallRuntime(Runtime::kStringCompare, 2, 1); 3475 __ TailCallRuntime(Runtime::kStringCompareRT, 2, 1);
3476 } 3476 }
3477 3477
3478 3478
3479 void BinaryOpICWithAllocationSiteStub::Generate(MacroAssembler* masm) { 3479 void BinaryOpICWithAllocationSiteStub::Generate(MacroAssembler* masm) {
3480 // ----------- S t a t e ------------- 3480 // ----------- S t a t e -------------
3481 // -- rdx : left 3481 // -- rdx : left
3482 // -- rax : right 3482 // -- rax : right
3483 // -- rsp[0] : return address 3483 // -- rsp[0] : return address
3484 // ----------------------------------- 3484 // -----------------------------------
3485 3485
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
3763 3763
3764 // Handle more complex cases in runtime. 3764 // Handle more complex cases in runtime.
3765 __ bind(&runtime); 3765 __ bind(&runtime);
3766 __ PopReturnAddressTo(tmp1); 3766 __ PopReturnAddressTo(tmp1);
3767 __ Push(left); 3767 __ Push(left);
3768 __ Push(right); 3768 __ Push(right);
3769 __ PushReturnAddressFrom(tmp1); 3769 __ PushReturnAddressFrom(tmp1);
3770 if (equality) { 3770 if (equality) {
3771 __ TailCallRuntime(Runtime::kStringEquals, 2, 1); 3771 __ TailCallRuntime(Runtime::kStringEquals, 2, 1);
3772 } else { 3772 } else {
3773 __ TailCallRuntime(Runtime::kStringCompare, 2, 1); 3773 __ TailCallRuntime(Runtime::kStringCompareRT, 2, 1);
3774 } 3774 }
3775 3775
3776 __ bind(&miss); 3776 __ bind(&miss);
3777 GenerateMiss(masm); 3777 GenerateMiss(masm);
3778 } 3778 }
3779 3779
3780 3780
3781 void CompareICStub::GenerateObjects(MacroAssembler* masm) { 3781 void CompareICStub::GenerateObjects(MacroAssembler* masm) {
3782 DCHECK(state() == CompareICState::OBJECT); 3782 DCHECK(state() == CompareICState::OBJECT);
3783 Label miss; 3783 Label miss;
(...skipping 1361 matching lines...) Expand 10 before | Expand all | Expand 10 after
5145 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, getter_arg, 5145 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, getter_arg,
5146 kStackSpace, nullptr, return_value_operand, NULL); 5146 kStackSpace, nullptr, return_value_operand, NULL);
5147 } 5147 }
5148 5148
5149 5149
5150 #undef __ 5150 #undef __
5151 5151
5152 } } // namespace v8::internal 5152 } } // namespace v8::internal
5153 5153
5154 #endif // V8_TARGET_ARCH_X64 5154 #endif // V8_TARGET_ARCH_X64
OLDNEW
« no previous file with comments | « src/runtime/runtime-strings.cc ('k') | src/x87/code-stubs-x87.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698