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 "src/compiler/code-generator.h" | 5 #include "src/compiler/code-generator.h" |
6 | 6 |
7 #include "src/arm64/macro-assembler-arm64.h" | 7 #include "src/arm64/macro-assembler-arm64.h" |
8 #include "src/compiler/code-generator-impl.h" | 8 #include "src/compiler/code-generator-impl.h" |
9 #include "src/compiler/gap-resolver.h" | 9 #include "src/compiler/gap-resolver.h" |
10 #include "src/compiler/node-matchers.h" | 10 #include "src/compiler/node-matchers.h" |
(...skipping 769 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
780 } | 780 } |
781 } else { | 781 } else { |
782 switch (condition) { | 782 switch (condition) { |
783 case kUnorderedEqual: | 783 case kUnorderedEqual: |
784 __ B(vs, flabel); | 784 __ B(vs, flabel); |
785 // Fall through. | 785 // Fall through. |
786 case kEqual: | 786 case kEqual: |
787 __ B(eq, tlabel); | 787 __ B(eq, tlabel); |
788 break; | 788 break; |
789 case kUnorderedNotEqual: | 789 case kUnorderedNotEqual: |
790 __ B(vs, tlabel); | 790 // Unordered or not equal can be tested with "ne" condtion. |
791 // Fall through. | 791 // See ARMv8 manual C1.2.3 - Condition Code. |
792 case kNotEqual: | 792 case kNotEqual: |
793 __ B(ne, tlabel); | 793 __ B(ne, tlabel); |
794 break; | 794 break; |
795 case kSignedLessThan: | 795 case kSignedLessThan: |
796 __ B(lt, tlabel); | 796 __ B(lt, tlabel); |
797 break; | 797 break; |
798 case kSignedGreaterThanOrEqual: | 798 case kSignedGreaterThanOrEqual: |
799 __ B(ge, tlabel); | 799 __ B(ge, tlabel); |
800 break; | 800 break; |
801 case kSignedLessThanOrEqual: | 801 case kSignedLessThanOrEqual: |
802 __ B(le, tlabel); | 802 __ B(le, tlabel); |
803 break; | 803 break; |
804 case kSignedGreaterThan: | 804 case kSignedGreaterThan: |
805 __ B(gt, tlabel); | 805 __ B(gt, tlabel); |
806 break; | 806 break; |
807 case kUnorderedLessThan: | 807 case kUnorderedLessThan: |
808 __ B(vs, flabel); | 808 __ B(vs, flabel); |
809 // Fall through. | 809 // Fall through. |
810 case kUnsignedLessThan: | 810 case kUnsignedLessThan: |
811 __ B(lo, tlabel); | 811 __ B(lo, tlabel); |
812 break; | 812 break; |
813 case kUnorderedGreaterThanOrEqual: | 813 case kUnorderedGreaterThanOrEqual: |
814 __ B(vs, tlabel); | 814 // Unordered, greater than or equal can be tested with "hs" condtion. |
815 // Fall through. | 815 // See ARMv8 manual C1.2.3 - Condition Code. |
816 case kUnsignedGreaterThanOrEqual: | 816 case kUnsignedGreaterThanOrEqual: |
817 __ B(hs, tlabel); | 817 __ B(hs, tlabel); |
818 break; | 818 break; |
819 case kUnorderedLessThanOrEqual: | 819 case kUnorderedLessThanOrEqual: |
820 __ B(vs, flabel); | 820 __ B(vs, flabel); |
821 // Fall through. | 821 // Fall through. |
822 case kUnsignedLessThanOrEqual: | 822 case kUnsignedLessThanOrEqual: |
823 __ B(ls, tlabel); | 823 __ B(ls, tlabel); |
824 break; | 824 break; |
825 case kUnorderedGreaterThan: | 825 case kUnorderedGreaterThan: |
826 __ B(vs, tlabel); | 826 // Unordered or greater than can be tested with "hi" condtion. |
827 // Fall through. | 827 // See ARMv8 manual C1.2.3 - Condition Code. |
828 case kUnsignedGreaterThan: | 828 case kUnsignedGreaterThan: |
829 __ B(hi, tlabel); | 829 __ B(hi, tlabel); |
830 break; | 830 break; |
831 case kOverflow: | 831 case kOverflow: |
832 __ B(vs, tlabel); | 832 __ B(vs, tlabel); |
833 break; | 833 break; |
834 case kNotOverflow: | 834 case kNotOverflow: |
835 __ B(vc, tlabel); | 835 __ B(vc, tlabel); |
836 break; | 836 break; |
837 } | 837 } |
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1171 } | 1171 } |
1172 } | 1172 } |
1173 MarkLazyDeoptSite(); | 1173 MarkLazyDeoptSite(); |
1174 } | 1174 } |
1175 | 1175 |
1176 #undef __ | 1176 #undef __ |
1177 | 1177 |
1178 } // namespace compiler | 1178 } // namespace compiler |
1179 } // namespace internal | 1179 } // namespace internal |
1180 } // namespace v8 | 1180 } // namespace v8 |
OLD | NEW |