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/base/adapters.h" | 5 #include "src/base/adapters.h" |
6 #include "src/base/bits.h" | 6 #include "src/base/bits.h" |
7 #include "src/compiler/instruction-selector-impl.h" | 7 #include "src/compiler/instruction-selector-impl.h" |
8 #include "src/compiler/node-matchers.h" | 8 #include "src/compiler/node-matchers.h" |
9 #include "src/compiler/node-properties.h" | 9 #include "src/compiler/node-properties.h" |
10 | 10 |
(...skipping 1026 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1037 } | 1037 } |
1038 case IrOpcode::kInt64LessThan: | 1038 case IrOpcode::kInt64LessThan: |
1039 cont->OverwriteAndNegateIfEqual(kSignedLessThan); | 1039 cont->OverwriteAndNegateIfEqual(kSignedLessThan); |
1040 return VisitWord64Compare(selector, value, cont); | 1040 return VisitWord64Compare(selector, value, cont); |
1041 case IrOpcode::kInt64LessThanOrEqual: | 1041 case IrOpcode::kInt64LessThanOrEqual: |
1042 cont->OverwriteAndNegateIfEqual(kSignedLessThanOrEqual); | 1042 cont->OverwriteAndNegateIfEqual(kSignedLessThanOrEqual); |
1043 return VisitWord64Compare(selector, value, cont); | 1043 return VisitWord64Compare(selector, value, cont); |
1044 case IrOpcode::kUint64LessThan: | 1044 case IrOpcode::kUint64LessThan: |
1045 cont->OverwriteAndNegateIfEqual(kUnsignedLessThan); | 1045 cont->OverwriteAndNegateIfEqual(kUnsignedLessThan); |
1046 return VisitWord64Compare(selector, value, cont); | 1046 return VisitWord64Compare(selector, value, cont); |
| 1047 case IrOpcode::kUint64LessThanOrEqual: |
| 1048 cont->OverwriteAndNegateIfEqual(kUnsignedLessThanOrEqual); |
| 1049 return VisitWord64Compare(selector, value, cont); |
1047 case IrOpcode::kFloat32Equal: | 1050 case IrOpcode::kFloat32Equal: |
1048 cont->OverwriteAndNegateIfEqual(kEqual); | 1051 cont->OverwriteAndNegateIfEqual(kEqual); |
1049 return VisitFloat32Compare(selector, value, cont); | 1052 return VisitFloat32Compare(selector, value, cont); |
1050 case IrOpcode::kFloat32LessThan: | 1053 case IrOpcode::kFloat32LessThan: |
1051 cont->OverwriteAndNegateIfEqual(kUnsignedLessThan); | 1054 cont->OverwriteAndNegateIfEqual(kUnsignedLessThan); |
1052 return VisitFloat32Compare(selector, value, cont); | 1055 return VisitFloat32Compare(selector, value, cont); |
1053 case IrOpcode::kFloat32LessThanOrEqual: | 1056 case IrOpcode::kFloat32LessThanOrEqual: |
1054 cont->OverwriteAndNegateIfEqual(kUnsignedLessThanOrEqual); | 1057 cont->OverwriteAndNegateIfEqual(kUnsignedLessThanOrEqual); |
1055 return VisitFloat32Compare(selector, value, cont); | 1058 return VisitFloat32Compare(selector, value, cont); |
1056 case IrOpcode::kFloat64Equal: | 1059 case IrOpcode::kFloat64Equal: |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1213 VisitWord64Compare(this, node, &cont); | 1216 VisitWord64Compare(this, node, &cont); |
1214 } | 1217 } |
1215 | 1218 |
1216 | 1219 |
1217 void InstructionSelector::VisitUint64LessThan(Node* node) { | 1220 void InstructionSelector::VisitUint64LessThan(Node* node) { |
1218 FlagsContinuation cont(kUnsignedLessThan, node); | 1221 FlagsContinuation cont(kUnsignedLessThan, node); |
1219 VisitWord64Compare(this, node, &cont); | 1222 VisitWord64Compare(this, node, &cont); |
1220 } | 1223 } |
1221 | 1224 |
1222 | 1225 |
| 1226 void InstructionSelector::VisitUint64LessThanOrEqual(Node* node) { |
| 1227 FlagsContinuation cont(kUnsignedLessThanOrEqual, node); |
| 1228 VisitWord64Compare(this, node, &cont); |
| 1229 } |
| 1230 |
| 1231 |
1223 void InstructionSelector::VisitFloat32Equal(Node* node) { | 1232 void InstructionSelector::VisitFloat32Equal(Node* node) { |
1224 FlagsContinuation cont(kEqual, node); | 1233 FlagsContinuation cont(kEqual, node); |
1225 VisitFloat32Compare(this, node, &cont); | 1234 VisitFloat32Compare(this, node, &cont); |
1226 } | 1235 } |
1227 | 1236 |
1228 | 1237 |
1229 void InstructionSelector::VisitFloat32LessThan(Node* node) { | 1238 void InstructionSelector::VisitFloat32LessThan(Node* node) { |
1230 FlagsContinuation cont(kUnsignedLessThan, node); | 1239 FlagsContinuation cont(kUnsignedLessThan, node); |
1231 VisitFloat32Compare(this, node, &cont); | 1240 VisitFloat32Compare(this, node, &cont); |
1232 } | 1241 } |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1291 // static | 1300 // static |
1292 MachineOperatorBuilder::Flags | 1301 MachineOperatorBuilder::Flags |
1293 InstructionSelector::SupportedMachineOperatorFlags() { | 1302 InstructionSelector::SupportedMachineOperatorFlags() { |
1294 return MachineOperatorBuilder::kFloat64RoundDown | | 1303 return MachineOperatorBuilder::kFloat64RoundDown | |
1295 MachineOperatorBuilder::kFloat64RoundTruncate; | 1304 MachineOperatorBuilder::kFloat64RoundTruncate; |
1296 } | 1305 } |
1297 | 1306 |
1298 } // namespace compiler | 1307 } // namespace compiler |
1299 } // namespace internal | 1308 } // namespace internal |
1300 } // namespace v8 | 1309 } // namespace v8 |
OLD | NEW |