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 <stdarg.h> | 5 #include <stdarg.h> |
6 #include <stdlib.h> | 6 #include <stdlib.h> |
7 #include <cmath> | 7 #include <cmath> |
8 | 8 |
9 #if V8_TARGET_ARCH_S390 | 9 #if V8_TARGET_ARCH_S390 |
10 | 10 |
(...skipping 5638 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5649 dbg.Debug(); | 5649 dbg.Debug(); |
5650 } else { | 5650 } else { |
5651 ExecuteInstruction(instr); | 5651 ExecuteInstruction(instr); |
5652 } | 5652 } |
5653 program_counter = get_pc(); | 5653 program_counter = get_pc(); |
5654 } | 5654 } |
5655 } | 5655 } |
5656 } | 5656 } |
5657 | 5657 |
5658 void Simulator::CallInternal(byte* entry, int reg_arg_count) { | 5658 void Simulator::CallInternal(byte* entry, int reg_arg_count) { |
| 5659 // Adjust JS-based stack limit to C-based stack limit. |
| 5660 isolate_->stack_guard()->AdjustStackLimitForSimulator(); |
| 5661 |
5659 // Prepare to execute the code at entry | 5662 // Prepare to execute the code at entry |
5660 if (ABI_USES_FUNCTION_DESCRIPTORS) { | 5663 if (ABI_USES_FUNCTION_DESCRIPTORS) { |
5661 // entry is the function descriptor | 5664 // entry is the function descriptor |
5662 set_pc(*(reinterpret_cast<intptr_t*>(entry))); | 5665 set_pc(*(reinterpret_cast<intptr_t*>(entry))); |
5663 } else { | 5666 } else { |
5664 // entry is the instruction address | 5667 // entry is the instruction address |
5665 set_pc(reinterpret_cast<intptr_t>(entry)); | 5668 set_pc(reinterpret_cast<intptr_t>(entry)); |
5666 } | 5669 } |
5667 // Remember the values of non-volatile registers. | 5670 // Remember the values of non-volatile registers. |
5668 int64_t r6_val = get_register(r6); | 5671 int64_t r6_val = get_register(r6); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5731 set_register(r7, r7_val); | 5734 set_register(r7, r7_val); |
5732 set_register(r8, r8_val); | 5735 set_register(r8, r8_val); |
5733 set_register(r9, r9_val); | 5736 set_register(r9, r9_val); |
5734 set_register(r10, r10_val); | 5737 set_register(r10, r10_val); |
5735 set_register(r11, r11_val); | 5738 set_register(r11, r11_val); |
5736 set_register(r12, r12_val); | 5739 set_register(r12, r12_val); |
5737 set_register(r13, r13_val); | 5740 set_register(r13, r13_val); |
5738 } | 5741 } |
5739 | 5742 |
5740 intptr_t Simulator::Call(byte* entry, int argument_count, ...) { | 5743 intptr_t Simulator::Call(byte* entry, int argument_count, ...) { |
| 5744 // Adjust JS-based stack limit to C-based stack limit. |
| 5745 isolate_->stack_guard()->AdjustStackLimitForSimulator(); |
| 5746 |
5741 // Remember the values of non-volatile registers. | 5747 // Remember the values of non-volatile registers. |
5742 int64_t r6_val = get_register(r6); | 5748 int64_t r6_val = get_register(r6); |
5743 int64_t r7_val = get_register(r7); | 5749 int64_t r7_val = get_register(r7); |
5744 int64_t r8_val = get_register(r8); | 5750 int64_t r8_val = get_register(r8); |
5745 int64_t r9_val = get_register(r9); | 5751 int64_t r9_val = get_register(r9); |
5746 int64_t r10_val = get_register(r10); | 5752 int64_t r10_val = get_register(r10); |
5747 int64_t r11_val = get_register(r11); | 5753 int64_t r11_val = get_register(r11); |
5748 int64_t r12_val = get_register(r12); | 5754 int64_t r12_val = get_register(r12); |
5749 int64_t r13_val = get_register(r13); | 5755 int64_t r13_val = get_register(r13); |
5750 | 5756 |
(...skipping 6808 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12559 return 0; | 12565 return 0; |
12560 } | 12566 } |
12561 | 12567 |
12562 #undef EVALUATE | 12568 #undef EVALUATE |
12563 | 12569 |
12564 } // namespace internal | 12570 } // namespace internal |
12565 } // namespace v8 | 12571 } // namespace v8 |
12566 | 12572 |
12567 #endif // USE_SIMULATOR | 12573 #endif // USE_SIMULATOR |
12568 #endif // V8_TARGET_ARCH_S390 | 12574 #endif // V8_TARGET_ARCH_S390 |
OLD | NEW |