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 5682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5693 set_register(r11, callee_saved_value + 11); | 5693 set_register(r11, callee_saved_value + 11); |
5694 set_register(r12, callee_saved_value + 12); | 5694 set_register(r12, callee_saved_value + 12); |
5695 set_register(r13, callee_saved_value + 13); | 5695 set_register(r13, callee_saved_value + 13); |
5696 | 5696 |
5697 // Start the simulation | 5697 // Start the simulation |
5698 Execute(); | 5698 Execute(); |
5699 | 5699 |
5700 // Check that the non-volatile registers have been preserved. | 5700 // Check that the non-volatile registers have been preserved. |
5701 #ifndef V8_TARGET_ARCH_S390X | 5701 #ifndef V8_TARGET_ARCH_S390X |
5702 if (reg_arg_count < 5) { | 5702 if (reg_arg_count < 5) { |
5703 DCHECK_EQ(callee_saved_value + 6, get_low_register<int32_t>(r6)); | 5703 DCHECK_EQ(callee_saved_value + 6, get_low_register<uint32_t>(r6)); |
5704 } | 5704 } |
5705 DCHECK_EQ(callee_saved_value + 7, get_low_register<int32_t>(r7)); | 5705 DCHECK_EQ(callee_saved_value + 7, get_low_register<uint32_t>(r7)); |
5706 DCHECK_EQ(callee_saved_value + 8, get_low_register<int32_t>(r8)); | 5706 DCHECK_EQ(callee_saved_value + 8, get_low_register<uint32_t>(r8)); |
5707 DCHECK_EQ(callee_saved_value + 9, get_low_register<int32_t>(r9)); | 5707 DCHECK_EQ(callee_saved_value + 9, get_low_register<uint32_t>(r9)); |
5708 DCHECK_EQ(callee_saved_value + 10, get_low_register<int32_t>(r10)); | 5708 DCHECK_EQ(callee_saved_value + 10, get_low_register<uint32_t>(r10)); |
5709 DCHECK_EQ(callee_saved_value + 11, get_low_register<int32_t>(r11)); | 5709 DCHECK_EQ(callee_saved_value + 11, get_low_register<uint32_t>(r11)); |
5710 DCHECK_EQ(callee_saved_value + 12, get_low_register<int32_t>(r12)); | 5710 DCHECK_EQ(callee_saved_value + 12, get_low_register<uint32_t>(r12)); |
5711 DCHECK_EQ(callee_saved_value + 13, get_low_register<int32_t>(r13)); | 5711 DCHECK_EQ(callee_saved_value + 13, get_low_register<uint32_t>(r13)); |
5712 #else | 5712 #else |
5713 if (reg_arg_count < 5) { | 5713 if (reg_arg_count < 5) { |
5714 DCHECK_EQ(callee_saved_value + 6, get_register(r6)); | 5714 DCHECK_EQ(callee_saved_value + 6, get_register(r6)); |
5715 } | 5715 } |
5716 DCHECK_EQ(callee_saved_value + 7, get_register(r7)); | 5716 DCHECK_EQ(callee_saved_value + 7, get_register(r7)); |
5717 DCHECK_EQ(callee_saved_value + 8, get_register(r8)); | 5717 DCHECK_EQ(callee_saved_value + 8, get_register(r8)); |
5718 DCHECK_EQ(callee_saved_value + 9, get_register(r9)); | 5718 DCHECK_EQ(callee_saved_value + 9, get_register(r9)); |
5719 DCHECK_EQ(callee_saved_value + 10, get_register(r10)); | 5719 DCHECK_EQ(callee_saved_value + 10, get_register(r10)); |
5720 DCHECK_EQ(callee_saved_value + 11, get_register(r11)); | 5720 DCHECK_EQ(callee_saved_value + 11, get_register(r11)); |
5721 DCHECK_EQ(callee_saved_value + 12, get_register(r12)); | 5721 DCHECK_EQ(callee_saved_value + 12, get_register(r12)); |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5809 set_register(r11, callee_saved_value + 11); | 5809 set_register(r11, callee_saved_value + 11); |
5810 set_register(r12, callee_saved_value + 12); | 5810 set_register(r12, callee_saved_value + 12); |
5811 set_register(r13, callee_saved_value + 13); | 5811 set_register(r13, callee_saved_value + 13); |
5812 | 5812 |
5813 // Start the simulation | 5813 // Start the simulation |
5814 Execute(); | 5814 Execute(); |
5815 | 5815 |
5816 // Check that the non-volatile registers have been preserved. | 5816 // Check that the non-volatile registers have been preserved. |
5817 #ifndef V8_TARGET_ARCH_S390X | 5817 #ifndef V8_TARGET_ARCH_S390X |
5818 if (reg_arg_count < 5) { | 5818 if (reg_arg_count < 5) { |
5819 DCHECK_EQ(callee_saved_value + 6, get_low_register<int32_t>(r6)); | 5819 DCHECK_EQ(callee_saved_value + 6, get_low_register<uint32_t>(r6)); |
5820 } | 5820 } |
5821 DCHECK_EQ(callee_saved_value + 7, get_low_register<int32_t>(r7)); | 5821 DCHECK_EQ(callee_saved_value + 7, get_low_register<uint32_t>(r7)); |
5822 DCHECK_EQ(callee_saved_value + 8, get_low_register<int32_t>(r8)); | 5822 DCHECK_EQ(callee_saved_value + 8, get_low_register<uint32_t>(r8)); |
5823 DCHECK_EQ(callee_saved_value + 9, get_low_register<int32_t>(r9)); | 5823 DCHECK_EQ(callee_saved_value + 9, get_low_register<uint32_t>(r9)); |
5824 DCHECK_EQ(callee_saved_value + 10, get_low_register<int32_t>(r10)); | 5824 DCHECK_EQ(callee_saved_value + 10, get_low_register<uint32_t>(r10)); |
5825 DCHECK_EQ(callee_saved_value + 11, get_low_register<int32_t>(r11)); | 5825 DCHECK_EQ(callee_saved_value + 11, get_low_register<uint32_t>(r11)); |
5826 DCHECK_EQ(callee_saved_value + 12, get_low_register<int32_t>(r12)); | 5826 DCHECK_EQ(callee_saved_value + 12, get_low_register<uint32_t>(r12)); |
5827 DCHECK_EQ(callee_saved_value + 13, get_low_register<int32_t>(r13)); | 5827 DCHECK_EQ(callee_saved_value + 13, get_low_register<uint32_t>(r13)); |
5828 #else | 5828 #else |
5829 if (reg_arg_count < 5) { | 5829 if (reg_arg_count < 5) { |
5830 DCHECK_EQ(callee_saved_value + 6, get_register(r6)); | 5830 DCHECK_EQ(callee_saved_value + 6, get_register(r6)); |
5831 } | 5831 } |
5832 DCHECK_EQ(callee_saved_value + 7, get_register(r7)); | 5832 DCHECK_EQ(callee_saved_value + 7, get_register(r7)); |
5833 DCHECK_EQ(callee_saved_value + 8, get_register(r8)); | 5833 DCHECK_EQ(callee_saved_value + 8, get_register(r8)); |
5834 DCHECK_EQ(callee_saved_value + 9, get_register(r9)); | 5834 DCHECK_EQ(callee_saved_value + 9, get_register(r9)); |
5835 DCHECK_EQ(callee_saved_value + 10, get_register(r10)); | 5835 DCHECK_EQ(callee_saved_value + 10, get_register(r10)); |
5836 DCHECK_EQ(callee_saved_value + 11, get_register(r11)); | 5836 DCHECK_EQ(callee_saved_value + 11, get_register(r11)); |
5837 DCHECK_EQ(callee_saved_value + 12, get_register(r12)); | 5837 DCHECK_EQ(callee_saved_value + 12, get_register(r12)); |
5838 DCHECK_EQ(callee_saved_value + 13, get_register(r13)); | 5838 DCHECK_EQ(callee_saved_value + 13, get_register(r13)); |
5839 #endif | 5839 #endif |
5840 | 5840 |
5841 // Restore non-volatile registers with the original value. | 5841 // Restore non-volatile registers with the original value. |
5842 set_register(r6, r6_val); | 5842 set_register(r6, r6_val); |
5843 set_register(r7, r7_val); | 5843 set_register(r7, r7_val); |
5844 set_register(r8, r8_val); | 5844 set_register(r8, r8_val); |
5845 set_register(r9, r9_val); | 5845 set_register(r9, r9_val); |
5846 set_register(r10, r10_val); | 5846 set_register(r10, r10_val); |
5847 set_register(r11, r11_val); | 5847 set_register(r11, r11_val); |
5848 set_register(r12, r12_val); | 5848 set_register(r12, r12_val); |
5849 set_register(r13, r13_val); | 5849 set_register(r13, r13_val); |
5850 // Pop stack passed arguments. | 5850 // Pop stack passed arguments. |
5851 | 5851 |
5852 #ifndef V8_TARGET_ARCH_S390X | 5852 #ifndef V8_TARGET_ARCH_S390X |
5853 DCHECK_EQ(entry_stack, get_low_register<int32_t>(sp)); | 5853 DCHECK_EQ(entry_stack, get_low_register<uint32_t>(sp)); |
5854 #else | 5854 #else |
5855 DCHECK_EQ(entry_stack, get_register(sp)); | 5855 DCHECK_EQ(entry_stack, get_register(sp)); |
5856 #endif | 5856 #endif |
5857 set_register(sp, original_stack); | 5857 set_register(sp, original_stack); |
5858 | 5858 |
5859 // Return value register | 5859 // Return value register |
5860 intptr_t result = get_register(r2); | 5860 intptr_t result = get_register(r2); |
5861 return result; | 5861 return result; |
5862 } | 5862 } |
5863 | 5863 |
(...skipping 6773 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12637 return 0; | 12637 return 0; |
12638 } | 12638 } |
12639 | 12639 |
12640 #undef EVALUATE | 12640 #undef EVALUATE |
12641 | 12641 |
12642 } // namespace internal | 12642 } // namespace internal |
12643 } // namespace v8 | 12643 } // namespace v8 |
12644 | 12644 |
12645 #endif // USE_SIMULATOR | 12645 #endif // USE_SIMULATOR |
12646 #endif // V8_TARGET_ARCH_S390 | 12646 #endif // V8_TARGET_ARCH_S390 |
OLD | NEW |