| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_MIPS. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_MIPS. |
| 6 #if defined(TARGET_ARCH_MIPS) | 6 #if defined(TARGET_ARCH_MIPS) |
| 7 | 7 |
| 8 #include "vm/intermediate_language.h" | 8 #include "vm/intermediate_language.h" |
| 9 | 9 |
| 10 #include "lib/error.h" | 10 #include "lib/error.h" |
| (...skipping 3110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3121 __ coltd(left, right); | 3121 __ coltd(left, right); |
| 3122 } else { | 3122 } else { |
| 3123 __ coltd(right, left); | 3123 __ coltd(right, left); |
| 3124 } | 3124 } |
| 3125 // TODO(zra): Add conditional moves. | 3125 // TODO(zra): Add conditional moves. |
| 3126 __ bc1t(&returns_left); | 3126 __ bc1t(&returns_left); |
| 3127 __ movd(result, right); | 3127 __ movd(result, right); |
| 3128 __ b(&done); | 3128 __ b(&done); |
| 3129 | 3129 |
| 3130 __ Bind(&returns_left); | 3130 __ Bind(&returns_left); |
| 3131 __ movd(result, right); | 3131 __ movd(result, left); |
| 3132 __ b(&done); | 3132 __ b(&done); |
| 3133 | 3133 |
| 3134 __ Bind(&returns_nan); | 3134 __ Bind(&returns_nan); |
| 3135 __ LoadImmediate(result, NAN); | 3135 __ LoadImmediate(result, NAN); |
| 3136 __ b(&done); | 3136 __ b(&done); |
| 3137 | 3137 |
| 3138 __ Bind(&are_equal); | 3138 __ Bind(&are_equal); |
| 3139 Label left_is_negative; | 3139 Label left_is_negative; |
| 3140 // Check for negative zero: -0.0 is equal 0.0 but min or max must return | 3140 // Check for negative zero: -0.0 is equal 0.0 but min or max must return |
| 3141 // -0.0 or 0.0 respectively. | 3141 // -0.0 or 0.0 respectively. |
| (...skipping 705 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3847 compiler->GenerateCall(token_pos(), | 3847 compiler->GenerateCall(token_pos(), |
| 3848 &label, | 3848 &label, |
| 3849 PcDescriptors::kOther, | 3849 PcDescriptors::kOther, |
| 3850 locs()); | 3850 locs()); |
| 3851 __ Drop(2); // Discard type arguments and receiver. | 3851 __ Drop(2); // Discard type arguments and receiver. |
| 3852 } | 3852 } |
| 3853 | 3853 |
| 3854 } // namespace dart | 3854 } // namespace dart |
| 3855 | 3855 |
| 3856 #endif // defined TARGET_ARCH_MIPS | 3856 #endif // defined TARGET_ARCH_MIPS |
| OLD | NEW |