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

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

Issue 2601243003: PPC/s390: [stubs] Port FastNewObjectStub to TF (Closed)
Patch Set: Created 3 years, 11 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/ppc/builtins-ppc.cc ('k') | src/ppc/code-stubs-ppc.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_S390 5 #if V8_TARGET_ARCH_S390
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 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 __ bne(&new_object); 327 __ bne(&new_object);
328 328
329 // 5. Allocate a JSValue wrapper for the number. 329 // 5. Allocate a JSValue wrapper for the number.
330 __ AllocateJSValue(r2, r3, r4, r6, r7, &new_object); 330 __ AllocateJSValue(r2, r3, r4, r6, r7, &new_object);
331 __ b(&drop_frame_and_ret); 331 __ b(&drop_frame_and_ret);
332 332
333 // 6. Fallback to the runtime to create new object. 333 // 6. Fallback to the runtime to create new object.
334 __ bind(&new_object); 334 __ bind(&new_object);
335 { 335 {
336 FrameScope scope(masm, StackFrame::MANUAL); 336 FrameScope scope(masm, StackFrame::MANUAL);
337 FastNewObjectStub stub(masm->isolate());
338 __ SmiTag(r8); 337 __ SmiTag(r8);
339 __ EnterBuiltinFrame(cp, r3, r8); 338 __ EnterBuiltinFrame(cp, r3, r8);
340 __ Push(r4); // first argument 339 __ Push(r4); // first argument
341 __ CallStub(&stub); 340 __ Call(CodeFactory::FastNewObject(masm->isolate()).code(),
341 RelocInfo::CODE_TARGET);
342 __ Pop(r4); 342 __ Pop(r4);
343 __ LeaveBuiltinFrame(cp, r3, r8); 343 __ LeaveBuiltinFrame(cp, r3, r8);
344 __ SmiUntag(r8); 344 __ SmiUntag(r8);
345 } 345 }
346 __ StoreP(r4, FieldMemOperand(r2, JSValue::kValueOffset), r0); 346 __ StoreP(r4, FieldMemOperand(r2, JSValue::kValueOffset), r0);
347 347
348 __ bind(&drop_frame_and_ret); 348 __ bind(&drop_frame_and_ret);
349 { 349 {
350 __ Drop(r8); 350 __ Drop(r8);
351 __ Ret(1); 351 __ Ret(1);
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 __ bne(&new_object); 477 __ bne(&new_object);
478 478
479 // 5. Allocate a JSValue wrapper for the string. 479 // 5. Allocate a JSValue wrapper for the string.
480 __ AllocateJSValue(r2, r3, r4, r6, r7, &new_object); 480 __ AllocateJSValue(r2, r3, r4, r6, r7, &new_object);
481 __ b(&drop_frame_and_ret); 481 __ b(&drop_frame_and_ret);
482 482
483 // 6. Fallback to the runtime to create new object. 483 // 6. Fallback to the runtime to create new object.
484 __ bind(&new_object); 484 __ bind(&new_object);
485 { 485 {
486 FrameScope scope(masm, StackFrame::MANUAL); 486 FrameScope scope(masm, StackFrame::MANUAL);
487 FastNewObjectStub stub(masm->isolate());
488 __ SmiTag(r8); 487 __ SmiTag(r8);
489 __ EnterBuiltinFrame(cp, r3, r8); 488 __ EnterBuiltinFrame(cp, r3, r8);
490 __ Push(r4); // first argument 489 __ Push(r4); // first argument
491 __ CallStub(&stub); 490 __ Call(CodeFactory::FastNewObject(masm->isolate()).code(),
491 RelocInfo::CODE_TARGET);
492 __ Pop(r4); 492 __ Pop(r4);
493 __ LeaveBuiltinFrame(cp, r3, r8); 493 __ LeaveBuiltinFrame(cp, r3, r8);
494 __ SmiUntag(r8); 494 __ SmiUntag(r8);
495 } 495 }
496 __ StoreP(r4, FieldMemOperand(r2, JSValue::kValueOffset), r0); 496 __ StoreP(r4, FieldMemOperand(r2, JSValue::kValueOffset), r0);
497 497
498 __ bind(&drop_frame_and_ret); 498 __ bind(&drop_frame_and_ret);
499 { 499 {
500 __ Drop(r8); 500 __ Drop(r8);
501 __ Ret(1); 501 __ Ret(1);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
577 __ SmiTag(r6, r2); 577 __ SmiTag(r6, r2);
578 __ LoadAndTestP(r6, r6); 578 __ LoadAndTestP(r6, r6);
579 __ Push(cp, r6); 579 __ Push(cp, r6);
580 __ PushRoot(Heap::kTheHoleValueRootIndex); 580 __ PushRoot(Heap::kTheHoleValueRootIndex);
581 } else { 581 } else {
582 __ SmiTag(r2); 582 __ SmiTag(r2);
583 __ Push(cp, r2); 583 __ Push(cp, r2);
584 584
585 // Allocate the new receiver object. 585 // Allocate the new receiver object.
586 __ Push(r3, r5); 586 __ Push(r3, r5);
587 FastNewObjectStub stub(masm->isolate()); 587 __ Call(CodeFactory::FastNewObject(masm->isolate()).code(),
588 __ CallStub(&stub); 588 RelocInfo::CODE_TARGET);
589 __ LoadRR(r6, r2); 589 __ LoadRR(r6, r2);
590 __ Pop(r3, r5); 590 __ Pop(r3, r5);
591 591
592 // ----------- S t a t e ------------- 592 // ----------- S t a t e -------------
593 // -- r3: constructor function 593 // -- r3: constructor function
594 // -- r5: new target 594 // -- r5: new target
595 // -- r6: newly allocated object 595 // -- r6: newly allocated object
596 // ----------------------------------- 596 // -----------------------------------
597 597
598 // Retrieve smi-tagged arguments count from the stack. 598 // Retrieve smi-tagged arguments count from the stack.
(...skipping 2385 matching lines...) Expand 10 before | Expand all | Expand 10 after
2984 __ bkpt(0); 2984 __ bkpt(0);
2985 } 2985 }
2986 } 2986 }
2987 2987
2988 #undef __ 2988 #undef __
2989 2989
2990 } // namespace internal 2990 } // namespace internal
2991 } // namespace v8 2991 } // namespace v8
2992 2992
2993 #endif // V8_TARGET_ARCH_S390 2993 #endif // V8_TARGET_ARCH_S390
OLDNEW
« no previous file with comments | « src/builtins/ppc/builtins-ppc.cc ('k') | src/ppc/code-stubs-ppc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698