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 1024 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1035 break; | 1035 break; |
1036 case kSignedGreaterThanOrEqual: | 1036 case kSignedGreaterThanOrEqual: |
1037 __ j(greater_equal, tlabel); | 1037 __ j(greater_equal, tlabel); |
1038 break; | 1038 break; |
1039 case kSignedLessThanOrEqual: | 1039 case kSignedLessThanOrEqual: |
1040 __ j(less_equal, tlabel); | 1040 __ j(less_equal, tlabel); |
1041 break; | 1041 break; |
1042 case kSignedGreaterThan: | 1042 case kSignedGreaterThan: |
1043 __ j(greater, tlabel); | 1043 __ j(greater, tlabel); |
1044 break; | 1044 break; |
1045 case kUnorderedLessThan: | |
1046 __ j(parity_even, flabel, flabel_distance); | |
1047 // Fall through. | |
1048 case kUnsignedLessThan: | 1045 case kUnsignedLessThan: |
1049 __ j(below, tlabel); | 1046 __ j(below, tlabel); |
1050 break; | 1047 break; |
1051 case kUnorderedGreaterThanOrEqual: | |
1052 __ j(parity_even, tlabel); | |
1053 // Fall through. | |
1054 case kUnsignedGreaterThanOrEqual: | 1048 case kUnsignedGreaterThanOrEqual: |
1055 __ j(above_equal, tlabel); | 1049 __ j(above_equal, tlabel); |
1056 break; | 1050 break; |
1057 case kUnorderedLessThanOrEqual: | |
1058 __ j(parity_even, flabel, flabel_distance); | |
1059 // Fall through. | |
1060 case kUnsignedLessThanOrEqual: | 1051 case kUnsignedLessThanOrEqual: |
1061 __ j(below_equal, tlabel); | 1052 __ j(below_equal, tlabel); |
1062 break; | 1053 break; |
1063 case kUnorderedGreaterThan: | |
1064 __ j(parity_even, tlabel); | |
1065 // Fall through. | |
1066 case kUnsignedGreaterThan: | 1054 case kUnsignedGreaterThan: |
1067 __ j(above, tlabel); | 1055 __ j(above, tlabel); |
1068 break; | 1056 break; |
1069 case kOverflow: | 1057 case kOverflow: |
1070 __ j(overflow, tlabel); | 1058 __ j(overflow, tlabel); |
1071 break; | 1059 break; |
1072 case kNotOverflow: | 1060 case kNotOverflow: |
1073 __ j(no_overflow, tlabel); | 1061 __ j(no_overflow, tlabel); |
1074 break; | 1062 break; |
1075 } | 1063 } |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1116 break; | 1104 break; |
1117 case kSignedGreaterThanOrEqual: | 1105 case kSignedGreaterThanOrEqual: |
1118 cc = greater_equal; | 1106 cc = greater_equal; |
1119 break; | 1107 break; |
1120 case kSignedLessThanOrEqual: | 1108 case kSignedLessThanOrEqual: |
1121 cc = less_equal; | 1109 cc = less_equal; |
1122 break; | 1110 break; |
1123 case kSignedGreaterThan: | 1111 case kSignedGreaterThan: |
1124 cc = greater; | 1112 cc = greater; |
1125 break; | 1113 break; |
1126 case kUnorderedLessThan: | |
1127 __ j(parity_odd, &check, Label::kNear); | |
1128 __ movl(reg, Immediate(0)); | |
1129 __ jmp(&done, Label::kNear); | |
1130 // Fall through. | |
1131 case kUnsignedLessThan: | 1114 case kUnsignedLessThan: |
1132 cc = below; | 1115 cc = below; |
1133 break; | 1116 break; |
1134 case kUnorderedGreaterThanOrEqual: | |
1135 __ j(parity_odd, &check, Label::kNear); | |
1136 __ movl(reg, Immediate(1)); | |
1137 __ jmp(&done, Label::kNear); | |
1138 // Fall through. | |
1139 case kUnsignedGreaterThanOrEqual: | 1117 case kUnsignedGreaterThanOrEqual: |
1140 cc = above_equal; | 1118 cc = above_equal; |
1141 break; | 1119 break; |
1142 case kUnorderedLessThanOrEqual: | |
1143 __ j(parity_odd, &check, Label::kNear); | |
1144 __ movl(reg, Immediate(0)); | |
1145 __ jmp(&done, Label::kNear); | |
1146 // Fall through. | |
1147 case kUnsignedLessThanOrEqual: | 1120 case kUnsignedLessThanOrEqual: |
1148 cc = below_equal; | 1121 cc = below_equal; |
1149 break; | 1122 break; |
1150 case kUnorderedGreaterThan: | |
1151 __ j(parity_odd, &check, Label::kNear); | |
1152 __ movl(reg, Immediate(1)); | |
1153 __ jmp(&done, Label::kNear); | |
1154 // Fall through. | |
1155 case kUnsignedGreaterThan: | 1123 case kUnsignedGreaterThan: |
1156 cc = above; | 1124 cc = above; |
1157 break; | 1125 break; |
1158 case kOverflow: | 1126 case kOverflow: |
1159 cc = overflow; | 1127 cc = overflow; |
1160 break; | 1128 break; |
1161 case kNotOverflow: | 1129 case kNotOverflow: |
1162 cc = no_overflow; | 1130 cc = no_overflow; |
1163 break; | 1131 break; |
1164 } | 1132 } |
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1432 } | 1400 } |
1433 } | 1401 } |
1434 MarkLazyDeoptSite(); | 1402 MarkLazyDeoptSite(); |
1435 } | 1403 } |
1436 | 1404 |
1437 #undef __ | 1405 #undef __ |
1438 | 1406 |
1439 } // namespace internal | 1407 } // namespace internal |
1440 } // namespace compiler | 1408 } // namespace compiler |
1441 } // namespace v8 | 1409 } // namespace v8 |
OLD | NEW |