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 #if V8_TARGET_ARCH_S390 | 5 #if V8_TARGET_ARCH_S390 |
6 | 6 |
7 #include "src/code-stubs.h" | 7 #include "src/code-stubs.h" |
8 #include "src/api-arguments.h" | 8 #include "src/api-arguments.h" |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/bootstrapper.h" | 10 #include "src/bootstrapper.h" |
(...skipping 3813 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3824 // r5 : parameters pointer | 3824 // r5 : parameters pointer |
3825 // r9 : JavaScript frame pointer | 3825 // r9 : JavaScript frame pointer |
3826 // Registers used over whole function: | 3826 // Registers used over whole function: |
3827 // r7 : arguments count (tagged) | 3827 // r7 : arguments count (tagged) |
3828 // r8 : mapped parameter count (tagged) | 3828 // r8 : mapped parameter count (tagged) |
3829 | 3829 |
3830 // Check if the calling frame is an arguments adaptor frame. | 3830 // Check if the calling frame is an arguments adaptor frame. |
3831 Label adaptor_frame, try_allocate, runtime; | 3831 Label adaptor_frame, try_allocate, runtime; |
3832 __ LoadP(r6, MemOperand(r9, StandardFrameConstants::kCallerFPOffset)); | 3832 __ LoadP(r6, MemOperand(r9, StandardFrameConstants::kCallerFPOffset)); |
3833 __ LoadP(r2, MemOperand(r6, CommonFrameConstants::kContextOrFrameTypeOffset)); | 3833 __ LoadP(r2, MemOperand(r6, CommonFrameConstants::kContextOrFrameTypeOffset)); |
3834 __ CmpSmiLiteral(r2, Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR), r0); | 3834 __ LoadSmiLiteral(r0, Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); |
| 3835 __ CmpP(r2, r0); |
3835 __ beq(&adaptor_frame); | 3836 __ beq(&adaptor_frame); |
3836 | 3837 |
3837 // No adaptor, parameter count = argument count. | 3838 // No adaptor, parameter count = argument count. |
3838 __ LoadRR(r7, r4); | 3839 __ LoadRR(r7, r4); |
3839 __ LoadRR(r8, r4); | 3840 __ LoadRR(r8, r4); |
3840 __ b(&try_allocate); | 3841 __ b(&try_allocate); |
3841 | 3842 |
3842 // We have an adaptor frame. Patch the parameters pointer. | 3843 // We have an adaptor frame. Patch the parameters pointer. |
3843 __ bind(&adaptor_frame); | 3844 __ bind(&adaptor_frame); |
3844 __ LoadP(r7, MemOperand(r6, ArgumentsAdaptorFrameConstants::kLengthOffset)); | 3845 __ LoadP(r7, MemOperand(r6, ArgumentsAdaptorFrameConstants::kLengthOffset)); |
(...skipping 658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4503 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, | 4504 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, |
4504 kStackUnwindSpace, NULL, return_value_operand, NULL); | 4505 kStackUnwindSpace, NULL, return_value_operand, NULL); |
4505 } | 4506 } |
4506 | 4507 |
4507 #undef __ | 4508 #undef __ |
4508 | 4509 |
4509 } // namespace internal | 4510 } // namespace internal |
4510 } // namespace v8 | 4511 } // namespace v8 |
4511 | 4512 |
4512 #endif // V8_TARGET_ARCH_S390 | 4513 #endif // V8_TARGET_ARCH_S390 |
OLD | NEW |