OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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/compiler/code-generator-impl.h" | 7 #include "src/compiler/code-generator-impl.h" |
8 #include "src/compiler/gap-resolver.h" | 8 #include "src/compiler/gap-resolver.h" |
9 #include "src/compiler/node-matchers.h" | 9 #include "src/compiler/node-matchers.h" |
10 #include "src/compiler/node-properties-inl.h" | 10 #include "src/compiler/node-properties-inl.h" |
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
724 break; | 724 break; |
725 case kSignedGreaterThanOrEqual: | 725 case kSignedGreaterThanOrEqual: |
726 __ j(greater_equal, tlabel); | 726 __ j(greater_equal, tlabel); |
727 break; | 727 break; |
728 case kSignedLessThanOrEqual: | 728 case kSignedLessThanOrEqual: |
729 __ j(less_equal, tlabel); | 729 __ j(less_equal, tlabel); |
730 break; | 730 break; |
731 case kSignedGreaterThan: | 731 case kSignedGreaterThan: |
732 __ j(greater, tlabel); | 732 __ j(greater, tlabel); |
733 break; | 733 break; |
734 case kUnorderedLessThan: | |
735 __ j(parity_even, flabel, flabel_distance); | |
736 // Fall through. | |
737 case kUnsignedLessThan: | 734 case kUnsignedLessThan: |
738 __ j(below, tlabel); | 735 __ j(below, tlabel); |
739 break; | 736 break; |
740 case kUnorderedGreaterThanOrEqual: | |
741 __ j(parity_even, tlabel); | |
742 // Fall through. | |
743 case kUnsignedGreaterThanOrEqual: | 737 case kUnsignedGreaterThanOrEqual: |
744 __ j(above_equal, tlabel); | 738 __ j(above_equal, tlabel); |
745 break; | 739 break; |
746 case kUnorderedLessThanOrEqual: | |
747 __ j(parity_even, flabel, flabel_distance); | |
748 // Fall through. | |
749 case kUnsignedLessThanOrEqual: | 740 case kUnsignedLessThanOrEqual: |
750 __ j(below_equal, tlabel); | 741 __ j(below_equal, tlabel); |
751 break; | 742 break; |
752 case kUnorderedGreaterThan: | |
753 __ j(parity_even, tlabel); | |
754 // Fall through. | |
755 case kUnsignedGreaterThan: | 743 case kUnsignedGreaterThan: |
756 __ j(above, tlabel); | 744 __ j(above, tlabel); |
757 break; | 745 break; |
758 case kOverflow: | 746 case kOverflow: |
759 __ j(overflow, tlabel); | 747 __ j(overflow, tlabel); |
760 break; | 748 break; |
761 case kNotOverflow: | 749 case kNotOverflow: |
762 __ j(no_overflow, tlabel); | 750 __ j(no_overflow, tlabel); |
763 break; | 751 break; |
764 } | 752 } |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
806 break; | 794 break; |
807 case kSignedGreaterThanOrEqual: | 795 case kSignedGreaterThanOrEqual: |
808 cc = greater_equal; | 796 cc = greater_equal; |
809 break; | 797 break; |
810 case kSignedLessThanOrEqual: | 798 case kSignedLessThanOrEqual: |
811 cc = less_equal; | 799 cc = less_equal; |
812 break; | 800 break; |
813 case kSignedGreaterThan: | 801 case kSignedGreaterThan: |
814 cc = greater; | 802 cc = greater; |
815 break; | 803 break; |
816 case kUnorderedLessThan: | |
817 __ j(parity_odd, &check, Label::kNear); | |
818 __ Move(reg, Immediate(0)); | |
819 __ jmp(&done, Label::kNear); | |
820 // Fall through. | |
821 case kUnsignedLessThan: | 804 case kUnsignedLessThan: |
822 cc = below; | 805 cc = below; |
823 break; | 806 break; |
824 case kUnorderedGreaterThanOrEqual: | |
825 __ j(parity_odd, &check, Label::kNear); | |
826 __ mov(reg, Immediate(1)); | |
827 __ jmp(&done, Label::kNear); | |
828 // Fall through. | |
829 case kUnsignedGreaterThanOrEqual: | 807 case kUnsignedGreaterThanOrEqual: |
830 cc = above_equal; | 808 cc = above_equal; |
831 break; | 809 break; |
832 case kUnorderedLessThanOrEqual: | |
833 __ j(parity_odd, &check, Label::kNear); | |
834 __ Move(reg, Immediate(0)); | |
835 __ jmp(&done, Label::kNear); | |
836 // Fall through. | |
837 case kUnsignedLessThanOrEqual: | 810 case kUnsignedLessThanOrEqual: |
838 cc = below_equal; | 811 cc = below_equal; |
839 break; | 812 break; |
840 case kUnorderedGreaterThan: | |
841 __ j(parity_odd, &check, Label::kNear); | |
842 __ mov(reg, Immediate(1)); | |
843 __ jmp(&done, Label::kNear); | |
844 // Fall through. | |
845 case kUnsignedGreaterThan: | 813 case kUnsignedGreaterThan: |
846 cc = above; | 814 cc = above; |
847 break; | 815 break; |
848 case kOverflow: | 816 case kOverflow: |
849 cc = overflow; | 817 cc = overflow; |
850 break; | 818 break; |
851 case kNotOverflow: | 819 case kNotOverflow: |
852 cc = no_overflow; | 820 cc = no_overflow; |
853 break; | 821 break; |
854 } | 822 } |
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1266 } | 1234 } |
1267 } | 1235 } |
1268 MarkLazyDeoptSite(); | 1236 MarkLazyDeoptSite(); |
1269 } | 1237 } |
1270 | 1238 |
1271 #undef __ | 1239 #undef __ |
1272 | 1240 |
1273 } // namespace compiler | 1241 } // namespace compiler |
1274 } // namespace internal | 1242 } // namespace internal |
1275 } // namespace v8 | 1243 } // namespace v8 |
OLD | NEW |