| 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 "vm/dart_entry.h" | 10 #include "vm/dart_entry.h" |
| (...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 563 __ bc1t(nan_label); | 563 __ bc1t(nan_label); |
| 564 | 564 |
| 565 switch (true_condition) { | 565 switch (true_condition) { |
| 566 case EQ: __ ceqd(left, right); break; | 566 case EQ: __ ceqd(left, right); break; |
| 567 case NE: __ ceqd(left, right); break; | 567 case NE: __ ceqd(left, right); break; |
| 568 case LT: __ coltd(left, right); break; | 568 case LT: __ coltd(left, right); break; |
| 569 case LE: __ coled(left, right); break; | 569 case LE: __ coled(left, right); break; |
| 570 case GT: __ coltd(right, left); break; | 570 case GT: __ coltd(right, left); break; |
| 571 case GE: __ coled(right, left); break; | 571 case GE: __ coled(right, left); break; |
| 572 default: { | 572 default: { |
| 573 // Should only passing the above conditions to this function. | 573 // We should only be passing the above conditions to this function. |
| 574 UNREACHABLE(); | 574 UNREACHABLE(); |
| 575 break; | 575 break; |
| 576 } | 576 } |
| 577 } | 577 } |
| 578 | 578 |
| 579 // Ordering is expected to be described by CMPRES1, CMPRES2. | 579 // Ordering is expected to be described by CMPRES1, CMPRES2. |
| 580 __ LoadImmediate(TMP, 1); | 580 __ LoadImmediate(TMP, 1); |
| 581 if (true_condition == NE) { | 581 if (true_condition == NE) { |
| 582 __ movf(CMPRES1, ZR); | 582 __ movf(CMPRES1, ZR); |
| 583 __ movt(CMPRES1, TMP); | 583 __ movt(CMPRES1, TMP); |
| (...skipping 2213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2797 __ mov(result, left); | 2797 __ mov(result, left); |
| 2798 } | 2798 } |
| 2799 break; | 2799 break; |
| 2800 } else if (value < 0) { | 2800 } else if (value < 0) { |
| 2801 // TODO(vegorov): should be handled outside. | 2801 // TODO(vegorov): should be handled outside. |
| 2802 __ b(deopt); | 2802 __ b(deopt); |
| 2803 break; | 2803 break; |
| 2804 } | 2804 } |
| 2805 | 2805 |
| 2806 value = value + kSmiTagSize; | 2806 value = value + kSmiTagSize; |
| 2807 if (value >= kCountLimit) value = kCountLimit; | 2807 if (value >= kCountLimit) { |
| 2808 value = kCountLimit; |
| 2809 } |
| 2808 | 2810 |
| 2809 __ sra(result, left, value); | 2811 __ sra(result, left, value); |
| 2810 __ SmiTag(result); | 2812 __ SmiTag(result); |
| 2811 break; | 2813 break; |
| 2812 } | 2814 } |
| 2813 | 2815 |
| 2814 default: | 2816 default: |
| 2815 UNREACHABLE(); | 2817 UNREACHABLE(); |
| 2816 break; | 2818 break; |
| 2817 } | 2819 } |
| (...skipping 1729 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4547 compiler->GenerateCall(token_pos(), | 4549 compiler->GenerateCall(token_pos(), |
| 4548 &label, | 4550 &label, |
| 4549 PcDescriptors::kOther, | 4551 PcDescriptors::kOther, |
| 4550 locs()); | 4552 locs()); |
| 4551 __ Drop(ArgumentCount()); // Discard arguments. | 4553 __ Drop(ArgumentCount()); // Discard arguments. |
| 4552 } | 4554 } |
| 4553 | 4555 |
| 4554 } // namespace dart | 4556 } // namespace dart |
| 4555 | 4557 |
| 4556 #endif // defined TARGET_ARCH_MIPS | 4558 #endif // defined TARGET_ARCH_MIPS |
| OLD | NEW |