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

Side by Side Diff: src/ia32/code-stubs-ia32.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/hydrogen.cc ('k') | src/mips/code-stubs-mips.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_IA32 7 #if V8_TARGET_ARCH_IA32
8 8
9 #include "src/base/bits.h" 9 #include "src/base/bits.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 3266 matching lines...) Expand 10 before | Expand all | Expand 10 after
3277 masm, edi, edx, ecx, ebx, String::TWO_BYTE_ENCODING); 3277 masm, edi, edx, ecx, ebx, String::TWO_BYTE_ENCODING);
3278 __ IncrementCounter(counters->sub_string_native(), 1); 3278 __ IncrementCounter(counters->sub_string_native(), 1);
3279 __ ret(3 * kPointerSize); 3279 __ ret(3 * kPointerSize);
3280 3280
3281 // Drop pushed values on the stack before tail call. 3281 // Drop pushed values on the stack before tail call.
3282 __ bind(&runtime_drop_two); 3282 __ bind(&runtime_drop_two);
3283 __ Drop(2); 3283 __ Drop(2);
3284 3284
3285 // Just jump to runtime to create the sub string. 3285 // Just jump to runtime to create the sub string.
3286 __ bind(&runtime); 3286 __ bind(&runtime);
3287 __ TailCallRuntime(Runtime::kSubString, 3, 1); 3287 __ TailCallRuntime(Runtime::kSubStringRT, 3, 1);
3288 3288
3289 __ bind(&single_char); 3289 __ bind(&single_char);
3290 // eax: string 3290 // eax: string
3291 // ebx: instance type 3291 // ebx: instance type
3292 // ecx: sub string length (smi) 3292 // ecx: sub string length (smi)
3293 // edx: from index (smi) 3293 // edx: from index (smi)
3294 StringCharAtGenerator generator(eax, edx, ecx, eax, &runtime, &runtime, 3294 StringCharAtGenerator generator(eax, edx, ecx, eax, &runtime, &runtime,
3295 &runtime, STRING_INDEX_IS_NUMBER, 3295 &runtime, STRING_INDEX_IS_NUMBER,
3296 RECEIVER_IS_STRING); 3296 RECEIVER_IS_STRING);
3297 generator.GenerateFast(masm); 3297 generator.GenerateFast(masm);
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
3500 // Drop arguments from the stack. 3500 // Drop arguments from the stack.
3501 __ pop(ecx); 3501 __ pop(ecx);
3502 __ add(esp, Immediate(2 * kPointerSize)); 3502 __ add(esp, Immediate(2 * kPointerSize));
3503 __ push(ecx); 3503 __ push(ecx);
3504 StringHelper::GenerateCompareFlatOneByteStrings(masm, edx, eax, ecx, ebx, 3504 StringHelper::GenerateCompareFlatOneByteStrings(masm, edx, eax, ecx, ebx,
3505 edi); 3505 edi);
3506 3506
3507 // Call the runtime; it returns -1 (less), 0 (equal), or 1 (greater) 3507 // Call the runtime; it returns -1 (less), 0 (equal), or 1 (greater)
3508 // tagged as a small integer. 3508 // tagged as a small integer.
3509 __ bind(&runtime); 3509 __ bind(&runtime);
3510 __ TailCallRuntime(Runtime::kStringCompare, 2, 1); 3510 __ TailCallRuntime(Runtime::kStringCompareRT, 2, 1);
3511 } 3511 }
3512 3512
3513 3513
3514 void BinaryOpICWithAllocationSiteStub::Generate(MacroAssembler* masm) { 3514 void BinaryOpICWithAllocationSiteStub::Generate(MacroAssembler* masm) {
3515 // ----------- S t a t e ------------- 3515 // ----------- S t a t e -------------
3516 // -- edx : left 3516 // -- edx : left
3517 // -- eax : right 3517 // -- eax : right
3518 // -- esp[0] : return address 3518 // -- esp[0] : return address
3519 // ----------------------------------- 3519 // -----------------------------------
3520 3520
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
3812 3812
3813 // Handle more complex cases in runtime. 3813 // Handle more complex cases in runtime.
3814 __ bind(&runtime); 3814 __ bind(&runtime);
3815 __ pop(tmp1); // Return address. 3815 __ pop(tmp1); // Return address.
3816 __ push(left); 3816 __ push(left);
3817 __ push(right); 3817 __ push(right);
3818 __ push(tmp1); 3818 __ push(tmp1);
3819 if (equality) { 3819 if (equality) {
3820 __ TailCallRuntime(Runtime::kStringEquals, 2, 1); 3820 __ TailCallRuntime(Runtime::kStringEquals, 2, 1);
3821 } else { 3821 } else {
3822 __ TailCallRuntime(Runtime::kStringCompare, 2, 1); 3822 __ TailCallRuntime(Runtime::kStringCompareRT, 2, 1);
3823 } 3823 }
3824 3824
3825 __ bind(&miss); 3825 __ bind(&miss);
3826 GenerateMiss(masm); 3826 GenerateMiss(masm);
3827 } 3827 }
3828 3828
3829 3829
3830 void CompareICStub::GenerateObjects(MacroAssembler* masm) { 3830 void CompareICStub::GenerateObjects(MacroAssembler* masm) {
3831 DCHECK(state() == CompareICState::OBJECT); 3831 DCHECK(state() == CompareICState::OBJECT);
3832 Label miss; 3832 Label miss;
(...skipping 1351 matching lines...) Expand 10 before | Expand all | Expand 10 after
5184 ApiParameterOperand(2), kStackSpace, nullptr, 5184 ApiParameterOperand(2), kStackSpace, nullptr,
5185 Operand(ebp, 7 * kPointerSize), NULL); 5185 Operand(ebp, 7 * kPointerSize), NULL);
5186 } 5186 }
5187 5187
5188 5188
5189 #undef __ 5189 #undef __
5190 5190
5191 } } // namespace v8::internal 5191 } } // namespace v8::internal
5192 5192
5193 #endif // V8_TARGET_ARCH_IA32 5193 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « src/hydrogen.cc ('k') | src/mips/code-stubs-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698