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

Side by Side Diff: src/builtins/ppc/builtins-ppc.cc

Issue 2380973002: [stubs] replaced ToString MacroAssembler Stub with CodeStubAssembler builtin (Closed)
Patch Set: Merge branch 'master' of https://chromium.googlesource.com/v8/v8 into ToStringTFStub Created 4 years, 2 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/builtins/mips64/builtins-mips64.cc ('k') | src/builtins/s390/builtins-s390.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 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 #if V8_TARGET_ARCH_PPC 5 #if V8_TARGET_ARCH_PPC
6 6
7 #include "src/codegen.h" 7 #include "src/codegen.h"
8 #include "src/debug/debug.h" 8 #include "src/debug/debug.h"
9 #include "src/deoptimizer.h" 9 #include "src/deoptimizer.h"
10 #include "src/full-codegen/full-codegen.h" 10 #include "src/full-codegen/full-codegen.h"
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 __ bind(&no_arguments); 391 __ bind(&no_arguments);
392 { 392 {
393 __ LoadRoot(r3, Heap::kempty_stringRootIndex); 393 __ LoadRoot(r3, Heap::kempty_stringRootIndex);
394 __ Ret(1); 394 __ Ret(1);
395 } 395 }
396 396
397 // 3a. Convert r3 to a string. 397 // 3a. Convert r3 to a string.
398 __ bind(&to_string); 398 __ bind(&to_string);
399 { 399 {
400 FrameScope scope(masm, StackFrame::MANUAL); 400 FrameScope scope(masm, StackFrame::MANUAL);
401 ToStringStub stub(masm->isolate());
402 __ SmiTag(r5); 401 __ SmiTag(r5);
403 __ EnterBuiltinFrame(cp, r4, r5); 402 __ EnterBuiltinFrame(cp, r4, r5);
404 __ CallStub(&stub); 403 __ Call(masm->isolate()->builtins()->ToString(), RelocInfo::CODE_TARGET);
405 __ LeaveBuiltinFrame(cp, r4, r5); 404 __ LeaveBuiltinFrame(cp, r4, r5);
406 __ SmiUntag(r5); 405 __ SmiUntag(r5);
407 } 406 }
408 __ b(&drop_frame_and_ret); 407 __ b(&drop_frame_and_ret);
409 408
410 // 3b. Convert symbol in r3 to a string. 409 // 3b. Convert symbol in r3 to a string.
411 __ bind(&symbol_descriptive_string); 410 __ bind(&symbol_descriptive_string);
412 { 411 {
413 __ Drop(r5); 412 __ Drop(r5);
414 __ Drop(1); 413 __ Drop(1);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 454
456 // 3. Make sure r5 is a string. 455 // 3. Make sure r5 is a string.
457 { 456 {
458 Label convert, done_convert; 457 Label convert, done_convert;
459 __ JumpIfSmi(r5, &convert); 458 __ JumpIfSmi(r5, &convert);
460 __ CompareObjectType(r5, r7, r7, FIRST_NONSTRING_TYPE); 459 __ CompareObjectType(r5, r7, r7, FIRST_NONSTRING_TYPE);
461 __ blt(&done_convert); 460 __ blt(&done_convert);
462 __ bind(&convert); 461 __ bind(&convert);
463 { 462 {
464 FrameScope scope(masm, StackFrame::MANUAL); 463 FrameScope scope(masm, StackFrame::MANUAL);
465 ToStringStub stub(masm->isolate());
466 __ SmiTag(r9); 464 __ SmiTag(r9);
467 __ EnterBuiltinFrame(cp, r4, r9); 465 __ EnterBuiltinFrame(cp, r4, r9);
468 __ Push(r6); 466 __ Push(r6);
469 __ mr(r3, r5); 467 __ mr(r3, r5);
470 __ CallStub(&stub); 468 __ Call(masm->isolate()->builtins()->ToString(), RelocInfo::CODE_TARGET);
471 __ mr(r5, r3); 469 __ mr(r5, r3);
472 __ Pop(r6); 470 __ Pop(r6);
473 __ LeaveBuiltinFrame(cp, r4, r9); 471 __ LeaveBuiltinFrame(cp, r4, r9);
474 __ SmiUntag(r9); 472 __ SmiUntag(r9);
475 } 473 }
476 __ bind(&done_convert); 474 __ bind(&done_convert);
477 } 475 }
478 476
479 // 4. Check if new target and constructor differ. 477 // 4. Check if new target and constructor differ.
480 Label drop_frame_and_ret, new_object; 478 Label drop_frame_and_ret, new_object;
(...skipping 2531 matching lines...) Expand 10 before | Expand all | Expand 10 after
3012 __ CallRuntime(Runtime::kThrowStackOverflow); 3010 __ CallRuntime(Runtime::kThrowStackOverflow);
3013 __ bkpt(0); 3011 __ bkpt(0);
3014 } 3012 }
3015 } 3013 }
3016 3014
3017 #undef __ 3015 #undef __
3018 } // namespace internal 3016 } // namespace internal
3019 } // namespace v8 3017 } // namespace v8
3020 3018
3021 #endif // V8_TARGET_ARCH_PPC 3019 #endif // V8_TARGET_ARCH_PPC
OLDNEW
« no previous file with comments | « src/builtins/mips64/builtins-mips64.cc ('k') | src/builtins/s390/builtins-s390.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698