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

Side by Side Diff: src/ppc/code-stubs-ppc.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/mips64/code-stubs-mips64.cc ('k') | src/runtime/runtime.h » ('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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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_PPC 7 #if V8_TARGET_ARCH_PPC
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 3373 matching lines...) Expand 10 before | Expand all | Expand 10 after
3384 String::TWO_BYTE_ENCODING); 3384 String::TWO_BYTE_ENCODING);
3385 3385
3386 __ bind(&return_r3); 3386 __ bind(&return_r3);
3387 Counters* counters = isolate()->counters(); 3387 Counters* counters = isolate()->counters();
3388 __ IncrementCounter(counters->sub_string_native(), 1, r6, r7); 3388 __ IncrementCounter(counters->sub_string_native(), 1, r6, r7);
3389 __ Drop(3); 3389 __ Drop(3);
3390 __ Ret(); 3390 __ Ret();
3391 3391
3392 // Just jump to runtime to create the sub string. 3392 // Just jump to runtime to create the sub string.
3393 __ bind(&runtime); 3393 __ bind(&runtime);
3394 __ TailCallRuntime(Runtime::kSubString, 3, 1); 3394 __ TailCallRuntime(Runtime::kSubStringRT, 3, 1);
3395 3395
3396 __ bind(&single_char); 3396 __ bind(&single_char);
3397 // r3: original string 3397 // r3: original string
3398 // r4: instance type 3398 // r4: instance type
3399 // r5: length 3399 // r5: length
3400 // r6: from index (untagged) 3400 // r6: from index (untagged)
3401 __ SmiTag(r6, r6); 3401 __ SmiTag(r6, r6);
3402 StringCharAtGenerator generator(r3, r6, r5, r3, &runtime, &runtime, &runtime, 3402 StringCharAtGenerator generator(r3, r6, r5, r3, &runtime, &runtime, &runtime,
3403 STRING_INDEX_IS_NUMBER, RECEIVER_IS_STRING); 3403 STRING_INDEX_IS_NUMBER, RECEIVER_IS_STRING);
3404 generator.GenerateFast(masm); 3404 generator.GenerateFast(masm);
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
3597 __ JumpIfNotBothSequentialOneByteStrings(r4, r3, r5, r6, &runtime); 3597 __ JumpIfNotBothSequentialOneByteStrings(r4, r3, r5, r6, &runtime);
3598 3598
3599 // Compare flat one-byte strings natively. Remove arguments from stack first. 3599 // Compare flat one-byte strings natively. Remove arguments from stack first.
3600 __ IncrementCounter(counters->string_compare_native(), 1, r5, r6); 3600 __ IncrementCounter(counters->string_compare_native(), 1, r5, r6);
3601 __ addi(sp, sp, Operand(2 * kPointerSize)); 3601 __ addi(sp, sp, Operand(2 * kPointerSize));
3602 StringHelper::GenerateCompareFlatOneByteStrings(masm, r4, r3, r5, r6, r7); 3602 StringHelper::GenerateCompareFlatOneByteStrings(masm, r4, r3, r5, r6, r7);
3603 3603
3604 // Call the runtime; it returns -1 (less), 0 (equal), or 1 (greater) 3604 // Call the runtime; it returns -1 (less), 0 (equal), or 1 (greater)
3605 // tagged as a small integer. 3605 // tagged as a small integer.
3606 __ bind(&runtime); 3606 __ bind(&runtime);
3607 __ TailCallRuntime(Runtime::kStringCompare, 2, 1); 3607 __ TailCallRuntime(Runtime::kStringCompareRT, 2, 1);
3608 } 3608 }
3609 3609
3610 3610
3611 void BinaryOpICWithAllocationSiteStub::Generate(MacroAssembler* masm) { 3611 void BinaryOpICWithAllocationSiteStub::Generate(MacroAssembler* masm) {
3612 // ----------- S t a t e ------------- 3612 // ----------- S t a t e -------------
3613 // -- r4 : left 3613 // -- r4 : left
3614 // -- r3 : right 3614 // -- r3 : right
3615 // -- lr : return address 3615 // -- lr : return address
3616 // ----------------------------------- 3616 // -----------------------------------
3617 3617
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
3903 StringHelper::GenerateCompareFlatOneByteStrings(masm, left, right, tmp1, 3903 StringHelper::GenerateCompareFlatOneByteStrings(masm, left, right, tmp1,
3904 tmp2, tmp3); 3904 tmp2, tmp3);
3905 } 3905 }
3906 3906
3907 // Handle more complex cases in runtime. 3907 // Handle more complex cases in runtime.
3908 __ bind(&runtime); 3908 __ bind(&runtime);
3909 __ Push(left, right); 3909 __ Push(left, right);
3910 if (equality) { 3910 if (equality) {
3911 __ TailCallRuntime(Runtime::kStringEquals, 2, 1); 3911 __ TailCallRuntime(Runtime::kStringEquals, 2, 1);
3912 } else { 3912 } else {
3913 __ TailCallRuntime(Runtime::kStringCompare, 2, 1); 3913 __ TailCallRuntime(Runtime::kStringCompareRT, 2, 1);
3914 } 3914 }
3915 3915
3916 __ bind(&miss); 3916 __ bind(&miss);
3917 GenerateMiss(masm); 3917 GenerateMiss(masm);
3918 } 3918 }
3919 3919
3920 3920
3921 void CompareICStub::GenerateObjects(MacroAssembler* masm) { 3921 void CompareICStub::GenerateObjects(MacroAssembler* masm) {
3922 DCHECK(state() == CompareICState::OBJECT); 3922 DCHECK(state() == CompareICState::OBJECT);
3923 Label miss; 3923 Label miss;
(...skipping 1368 matching lines...) Expand 10 before | Expand all | Expand 10 after
5292 kStackUnwindSpace, NULL, 5292 kStackUnwindSpace, NULL,
5293 MemOperand(fp, 6 * kPointerSize), NULL); 5293 MemOperand(fp, 6 * kPointerSize), NULL);
5294 } 5294 }
5295 5295
5296 5296
5297 #undef __ 5297 #undef __
5298 } 5298 }
5299 } // namespace v8::internal 5299 } // namespace v8::internal
5300 5300
5301 #endif // V8_TARGET_ARCH_PPC 5301 #endif // V8_TARGET_ARCH_PPC
OLDNEW
« no previous file with comments | « src/mips64/code-stubs-mips64.cc ('k') | src/runtime/runtime.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698