| 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/arm/macro-assembler-arm.h" | 7 #include "src/arm/macro-assembler-arm.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 675 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 686 Label* tlabel = branch->true_label; | 686 Label* tlabel = branch->true_label; |
| 687 Label* flabel = branch->false_label; | 687 Label* flabel = branch->false_label; |
| 688 switch (branch->condition) { | 688 switch (branch->condition) { |
| 689 case kUnorderedEqual: | 689 case kUnorderedEqual: |
| 690 __ b(vs, flabel); | 690 __ b(vs, flabel); |
| 691 // Fall through. | 691 // Fall through. |
| 692 case kEqual: | 692 case kEqual: |
| 693 __ b(eq, tlabel); | 693 __ b(eq, tlabel); |
| 694 break; | 694 break; |
| 695 case kUnorderedNotEqual: | 695 case kUnorderedNotEqual: |
| 696 __ b(vs, tlabel); | 696 // Unordered or not equal can be tested with "ne" condtion. |
| 697 // Fall through. | 697 // See ARMv7 manual A8.3 - Conditional execution. |
| 698 case kNotEqual: | 698 case kNotEqual: |
| 699 __ b(ne, tlabel); | 699 __ b(ne, tlabel); |
| 700 break; | 700 break; |
| 701 case kSignedLessThan: | 701 case kSignedLessThan: |
| 702 __ b(lt, tlabel); | 702 __ b(lt, tlabel); |
| 703 break; | 703 break; |
| 704 case kSignedGreaterThanOrEqual: | 704 case kSignedGreaterThanOrEqual: |
| 705 __ b(ge, tlabel); | 705 __ b(ge, tlabel); |
| 706 break; | 706 break; |
| 707 case kSignedLessThanOrEqual: | 707 case kSignedLessThanOrEqual: |
| 708 __ b(le, tlabel); | 708 __ b(le, tlabel); |
| 709 break; | 709 break; |
| 710 case kSignedGreaterThan: | 710 case kSignedGreaterThan: |
| 711 __ b(gt, tlabel); | 711 __ b(gt, tlabel); |
| 712 break; | 712 break; |
| 713 case kUnorderedLessThan: | 713 case kUnorderedLessThan: |
| 714 __ b(vs, flabel); | 714 __ b(vs, flabel); |
| 715 // Fall through. | 715 // Fall through. |
| 716 case kUnsignedLessThan: | 716 case kUnsignedLessThan: |
| 717 __ b(lo, tlabel); | 717 __ b(lo, tlabel); |
| 718 break; | 718 break; |
| 719 case kUnorderedGreaterThanOrEqual: | 719 case kUnorderedGreaterThanOrEqual: |
| 720 __ b(vs, tlabel); | 720 // Unordered, greater than or equal can be tested with "hs" condtion. |
| 721 // Fall through. | 721 // See ARMv7 manual A8.3 - Conditional execution. |
| 722 case kUnsignedGreaterThanOrEqual: | 722 case kUnsignedGreaterThanOrEqual: |
| 723 __ b(hs, tlabel); | 723 __ b(hs, tlabel); |
| 724 break; | 724 break; |
| 725 case kUnorderedLessThanOrEqual: | 725 case kUnorderedLessThanOrEqual: |
| 726 __ b(vs, flabel); | 726 __ b(vs, flabel); |
| 727 // Fall through. | 727 // Fall through. |
| 728 case kUnsignedLessThanOrEqual: | 728 case kUnsignedLessThanOrEqual: |
| 729 __ b(ls, tlabel); | 729 __ b(ls, tlabel); |
| 730 break; | 730 break; |
| 731 case kUnorderedGreaterThan: | 731 case kUnorderedGreaterThan: |
| 732 __ b(vs, tlabel); | 732 // Unordered or greater than can be tested with "hi" condtion. |
| 733 // Fall through. | 733 // See ARMv7 manual A8.3 - Conditional execution. |
| 734 case kUnsignedGreaterThan: | 734 case kUnsignedGreaterThan: |
| 735 __ b(hi, tlabel); | 735 __ b(hi, tlabel); |
| 736 break; | 736 break; |
| 737 case kOverflow: | 737 case kOverflow: |
| 738 __ b(vs, tlabel); | 738 __ b(vs, tlabel); |
| 739 break; | 739 break; |
| 740 case kNotOverflow: | 740 case kNotOverflow: |
| 741 __ b(vc, tlabel); | 741 __ b(vc, tlabel); |
| 742 break; | 742 break; |
| 743 } | 743 } |
| (...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1102 } | 1102 } |
| 1103 } | 1103 } |
| 1104 MarkLazyDeoptSite(); | 1104 MarkLazyDeoptSite(); |
| 1105 } | 1105 } |
| 1106 | 1106 |
| 1107 #undef __ | 1107 #undef __ |
| 1108 | 1108 |
| 1109 } // namespace compiler | 1109 } // namespace compiler |
| 1110 } // namespace internal | 1110 } // namespace internal |
| 1111 } // namespace v8 | 1111 } // namespace v8 |
| OLD | NEW |