OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 <limits.h> | 5 #include <limits.h> |
6 #include <stdarg.h> | 6 #include <stdarg.h> |
7 #include <stdlib.h> | 7 #include <stdlib.h> |
8 #include <cmath> | 8 #include <cmath> |
9 | 9 |
10 #include "src/v8.h" | 10 #include "src/v8.h" |
(...skipping 2693 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2704 case MOV_D: | 2704 case MOV_D: |
2705 set_fpu_register_double(fd_reg, fs); | 2705 set_fpu_register_double(fd_reg, fs); |
2706 break; | 2706 break; |
2707 case NEG_D: | 2707 case NEG_D: |
2708 set_fpu_register_double(fd_reg, -fs); | 2708 set_fpu_register_double(fd_reg, -fs); |
2709 break; | 2709 break; |
2710 case SQRT_D: | 2710 case SQRT_D: |
2711 set_fpu_register_double(fd_reg, fast_sqrt(fs)); | 2711 set_fpu_register_double(fd_reg, fast_sqrt(fs)); |
2712 break; | 2712 break; |
2713 case RSQRT_D: { | 2713 case RSQRT_D: { |
| 2714 DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)); |
2714 double result = 1.0 / fast_sqrt(fs); | 2715 double result = 1.0 / fast_sqrt(fs); |
2715 set_fpu_register_double(fd_reg, result); | 2716 set_fpu_register_double(fd_reg, result); |
2716 break; | 2717 break; |
2717 } | 2718 } |
2718 case RECIP_D: { | 2719 case RECIP_D: { |
| 2720 DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)); |
2719 double result = 1.0 / fs; | 2721 double result = 1.0 / fs; |
2720 set_fpu_register_double(fd_reg, result); | 2722 set_fpu_register_double(fd_reg, result); |
2721 break; | 2723 break; |
2722 } | 2724 } |
2723 case C_UN_D: | 2725 case C_UN_D: |
2724 set_fcsr_bit(fcsr_cc, std::isnan(fs) || std::isnan(ft)); | 2726 set_fcsr_bit(fcsr_cc, std::isnan(fs) || std::isnan(ft)); |
2725 break; | 2727 break; |
2726 case C_EQ_D: | 2728 case C_EQ_D: |
2727 set_fcsr_bit(fcsr_cc, (fs == ft)); | 2729 set_fcsr_bit(fcsr_cc, (fs == ft)); |
2728 break; | 2730 break; |
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3110 case MOV_S: | 3112 case MOV_S: |
3111 set_fpu_register_float(fd_reg, fs); | 3113 set_fpu_register_float(fd_reg, fs); |
3112 break; | 3114 break; |
3113 case NEG_S: | 3115 case NEG_S: |
3114 set_fpu_register_float(fd_reg, -fs); | 3116 set_fpu_register_float(fd_reg, -fs); |
3115 break; | 3117 break; |
3116 case SQRT_S: | 3118 case SQRT_S: |
3117 set_fpu_register_float(fd_reg, fast_sqrt(fs)); | 3119 set_fpu_register_float(fd_reg, fast_sqrt(fs)); |
3118 break; | 3120 break; |
3119 case RSQRT_S: { | 3121 case RSQRT_S: { |
| 3122 DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)); |
3120 float result = 1.0 / fast_sqrt(fs); | 3123 float result = 1.0 / fast_sqrt(fs); |
3121 set_fpu_register_float(fd_reg, result); | 3124 set_fpu_register_float(fd_reg, result); |
3122 break; | 3125 break; |
3123 } | 3126 } |
3124 case RECIP_S: { | 3127 case RECIP_S: { |
| 3128 DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)); |
3125 float result = 1.0 / fs; | 3129 float result = 1.0 / fs; |
3126 set_fpu_register_float(fd_reg, result); | 3130 set_fpu_register_float(fd_reg, result); |
3127 break; | 3131 break; |
3128 } | 3132 } |
3129 case C_F_D: | 3133 case C_F_D: |
3130 set_fcsr_bit(fcsr_cc, false); | 3134 set_fcsr_bit(fcsr_cc, false); |
3131 break; | 3135 break; |
3132 case C_UN_D: | 3136 case C_UN_D: |
3133 set_fcsr_bit(fcsr_cc, std::isnan(fs) || std::isnan(ft)); | 3137 set_fcsr_bit(fcsr_cc, std::isnan(fs) || std::isnan(ft)); |
3134 break; | 3138 break; |
(...skipping 1472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4607 | 4611 |
4608 | 4612 |
4609 #undef UNSUPPORTED | 4613 #undef UNSUPPORTED |
4610 | 4614 |
4611 } // namespace internal | 4615 } // namespace internal |
4612 } // namespace v8 | 4616 } // namespace v8 |
4613 | 4617 |
4614 #endif // USE_SIMULATOR | 4618 #endif // USE_SIMULATOR |
4615 | 4619 |
4616 #endif // V8_TARGET_ARCH_MIPS | 4620 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |