| OLD | NEW |
| 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/codegen.h" | 9 #include "src/codegen.h" |
| 10 #include "src/debug.h" | 10 #include "src/debug.h" |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 | 118 |
| 119 if (FLAG_debug_code) { | 119 if (FLAG_debug_code) { |
| 120 // Initial map for the builtin Array functions should be maps. | 120 // Initial map for the builtin Array functions should be maps. |
| 121 __ LoadP(r5, FieldMemOperand(r4, JSFunction::kPrototypeOrInitialMapOffset)); | 121 __ LoadP(r5, FieldMemOperand(r4, JSFunction::kPrototypeOrInitialMapOffset)); |
| 122 __ TestIfSmi(r5, r0); | 122 __ TestIfSmi(r5, r0); |
| 123 __ Assert(ne, kUnexpectedInitialMapForArrayFunction, cr0); | 123 __ Assert(ne, kUnexpectedInitialMapForArrayFunction, cr0); |
| 124 __ CompareObjectType(r5, r6, r7, MAP_TYPE); | 124 __ CompareObjectType(r5, r6, r7, MAP_TYPE); |
| 125 __ Assert(eq, kUnexpectedInitialMapForArrayFunction); | 125 __ Assert(eq, kUnexpectedInitialMapForArrayFunction); |
| 126 } | 126 } |
| 127 | 127 |
| 128 __ mr(r6, r4); |
| 128 // Run the native code for the Array function called as a normal function. | 129 // Run the native code for the Array function called as a normal function. |
| 129 // tail call a stub | 130 // tail call a stub |
| 130 __ LoadRoot(r5, Heap::kUndefinedValueRootIndex); | 131 __ LoadRoot(r5, Heap::kUndefinedValueRootIndex); |
| 131 ArrayConstructorStub stub(masm->isolate()); | 132 ArrayConstructorStub stub(masm->isolate()); |
| 132 __ TailCallStub(&stub); | 133 __ TailCallStub(&stub); |
| 133 } | 134 } |
| 134 | 135 |
| 135 | 136 |
| 136 void Builtins::Generate_StringConstructCode(MacroAssembler* masm) { | 137 void Builtins::Generate_StringConstructCode(MacroAssembler* masm) { |
| 137 // ----------- S t a t e ------------- | 138 // ----------- S t a t e ------------- |
| (...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 914 GenerateTailCallToReturnedCode(masm); | 915 GenerateTailCallToReturnedCode(masm); |
| 915 } | 916 } |
| 916 | 917 |
| 917 | 918 |
| 918 static void CallCompileOptimized(MacroAssembler* masm, bool concurrent) { | 919 static void CallCompileOptimized(MacroAssembler* masm, bool concurrent) { |
| 919 FrameScope scope(masm, StackFrame::INTERNAL); | 920 FrameScope scope(masm, StackFrame::INTERNAL); |
| 920 // Push a copy of the function onto the stack. | 921 // Push a copy of the function onto the stack. |
| 921 // Push function as parameter to the runtime call. | 922 // Push function as parameter to the runtime call. |
| 922 __ Push(r4, r4); | 923 __ Push(r4, r4); |
| 923 // Whether to compile in a background thread. | 924 // Whether to compile in a background thread. |
| 924 __ Push(masm->isolate()->factory()->ToBoolean(concurrent)); | 925 __ LoadRoot( |
| 926 r0, concurrent ? Heap::kTrueValueRootIndex : Heap::kFalseValueRootIndex); |
| 927 __ push(r0); |
| 925 | 928 |
| 926 __ CallRuntime(Runtime::kCompileOptimized, 2); | 929 __ CallRuntime(Runtime::kCompileOptimized, 2); |
| 927 // Restore receiver. | 930 // Restore receiver. |
| 928 __ pop(r4); | 931 __ pop(r4); |
| 929 } | 932 } |
| 930 | 933 |
| 931 | 934 |
| 932 void Builtins::Generate_CompileOptimized(MacroAssembler* masm) { | 935 void Builtins::Generate_CompileOptimized(MacroAssembler* masm) { |
| 933 CallCompileOptimized(masm, false); | 936 CallCompileOptimized(masm, false); |
| 934 GenerateTailCallToReturnedCode(masm); | 937 GenerateTailCallToReturnedCode(masm); |
| (...skipping 762 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1697 __ bkpt(0); | 1700 __ bkpt(0); |
| 1698 } | 1701 } |
| 1699 } | 1702 } |
| 1700 | 1703 |
| 1701 | 1704 |
| 1702 #undef __ | 1705 #undef __ |
| 1703 } | 1706 } |
| 1704 } // namespace v8::internal | 1707 } // namespace v8::internal |
| 1705 | 1708 |
| 1706 #endif // V8_TARGET_ARCH_PPC | 1709 #endif // V8_TARGET_ARCH_PPC |
| OLD | NEW |