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 879 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
890 (result_size() == 2 && !ABI_RETURNS_OBJECTPAIR_IN_REGS); | 890 (result_size() == 2 && !ABI_RETURNS_OBJECTPAIR_IN_REGS); |
891 if (needs_return_buffer) { | 891 if (needs_return_buffer) { |
892 arg_stack_space += result_size(); | 892 arg_stack_space += result_size(); |
893 } | 893 } |
894 | 894 |
895 #if V8_TARGET_ARCH_S390X | 895 #if V8_TARGET_ARCH_S390X |
896 // 64-bit linux pass Argument object by reference not value | 896 // 64-bit linux pass Argument object by reference not value |
897 arg_stack_space += 2; | 897 arg_stack_space += 2; |
898 #endif | 898 #endif |
899 | 899 |
900 __ EnterExitFrame(save_doubles(), arg_stack_space); | 900 __ EnterExitFrame(save_doubles(), arg_stack_space, is_builtin_exit() |
| 901 ? StackFrame::BUILTIN_EXIT |
| 902 : StackFrame::EXIT); |
901 | 903 |
902 // Store a copy of argc, argv in callee-saved registers for later. | 904 // Store a copy of argc, argv in callee-saved registers for later. |
903 __ LoadRR(r6, r2); | 905 __ LoadRR(r6, r2); |
904 __ LoadRR(r8, r3); | 906 __ LoadRR(r8, r3); |
905 // r2, r6: number of arguments including receiver (C callee-saved) | 907 // r2, r6: number of arguments including receiver (C callee-saved) |
906 // r3, r8: pointer to the first argument | 908 // r3, r8: pointer to the first argument |
907 // r7: pointer to builtin function (C callee-saved) | 909 // r7: pointer to builtin function (C callee-saved) |
908 | 910 |
909 // Result returned in registers or stack, depending on result size and ABI. | 911 // Result returned in registers or stack, depending on result size and ABI. |
910 | 912 |
(...skipping 4486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5397 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, | 5399 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, |
5398 kStackUnwindSpace, NULL, return_value_operand, NULL); | 5400 kStackUnwindSpace, NULL, return_value_operand, NULL); |
5399 } | 5401 } |
5400 | 5402 |
5401 #undef __ | 5403 #undef __ |
5402 | 5404 |
5403 } // namespace internal | 5405 } // namespace internal |
5404 } // namespace v8 | 5406 } // namespace v8 |
5405 | 5407 |
5406 #endif // V8_TARGET_ARCH_S390 | 5408 #endif // V8_TARGET_ARCH_S390 |
OLD | NEW |