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

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

Issue 923443003: new classes: no longer experimental. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: One more rebase? Created 5 years, 10 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/arm/full-codegen-arm.cc ('k') | src/arm64/full-codegen-arm64.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_ARM64 7 #if V8_TARGET_ARCH_ARM64
8 8
9 #include "src/codegen.h" 9 #include "src/codegen.h"
10 #include "src/debug.h" 10 #include "src/debug.h"
(...skipping 740 matching lines...) Expand 10 before | Expand all | Expand 10 after
751 __ Push(x11, x10); 751 __ Push(x11, x10);
752 __ Bind(&entry); 752 __ Bind(&entry);
753 __ Cmp(x4, x2); 753 __ Cmp(x4, x2);
754 __ B(gt, &loop); 754 __ B(gt, &loop);
755 // Because we copied values 2 by 2 we may have copied one extra value. 755 // Because we copied values 2 by 2 we may have copied one extra value.
756 // Drop it if that is the case. 756 // Drop it if that is the case.
757 __ B(eq, &done_copying_arguments); 757 __ B(eq, &done_copying_arguments);
758 __ Drop(1); 758 __ Drop(1);
759 __ Bind(&done_copying_arguments); 759 __ Bind(&done_copying_arguments);
760 760
761 __ Add(x0, x0, Operand(1)); // new.target
762
763 // Handle step in.
764 Label skip_step_in;
765 ExternalReference debug_step_in_fp =
766 ExternalReference::debug_step_in_fp_address(masm->isolate());
767 __ Mov(x2, Operand(debug_step_in_fp));
768 __ Ldr(x2, MemOperand(x2));
769 __ Cbz(x2, &skip_step_in);
770
771 __ Push(x0, x1, x1);
772 __ CallRuntime(Runtime::kHandleStepInForDerivedConstructors, 1);
773 __ Pop(x1, x0);
774
775 __ bind(&skip_step_in);
776
761 // Call the function. 777 // Call the function.
762 // x0: number of arguments 778 // x0: number of arguments
763 // x1: constructor function 779 // x1: constructor function
764 __ Add(x0, x0, Operand(1)); // new.target
765 ParameterCount actual(x0); 780 ParameterCount actual(x0);
766 __ InvokeFunction(x1, actual, CALL_FUNCTION, NullCallWrapper()); 781 __ InvokeFunction(x1, actual, CALL_FUNCTION, NullCallWrapper());
767 782
768 783
769 // Restore the context from the frame. 784 // Restore the context from the frame.
770 // x0: result 785 // x0: result
771 // jssp[0]: number of arguments (smi-tagged) 786 // jssp[0]: number of arguments (smi-tagged)
772 __ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); 787 __ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
773 788
774 // Load number of arguments (smi). 789 // Load number of arguments (smi).
(...skipping 878 matching lines...) Expand 10 before | Expand all | Expand 10 after
1653 __ Unreachable(); 1668 __ Unreachable();
1654 } 1669 }
1655 } 1670 }
1656 1671
1657 1672
1658 #undef __ 1673 #undef __
1659 1674
1660 } } // namespace v8::internal 1675 } } // namespace v8::internal
1661 1676
1662 #endif // V8_TARGET_ARCH_ARM 1677 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/arm/full-codegen-arm.cc ('k') | src/arm64/full-codegen-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698