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/verifier.h" | 5 #include "src/compiler/verifier.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <deque> | 8 #include <deque> |
9 #include <queue> | 9 #include <queue> |
10 #include <sstream> | 10 #include <sstream> |
(...skipping 946 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
957 break; | 957 break; |
958 case IrOpcode::kStoreBuffer: | 958 case IrOpcode::kStoreBuffer: |
959 break; | 959 break; |
960 case IrOpcode::kStoreElement: | 960 case IrOpcode::kStoreElement: |
961 // (Object, elementtype) -> _|_ | 961 // (Object, elementtype) -> _|_ |
962 // TODO(rossberg): activate once machine ops are typed. | 962 // TODO(rossberg): activate once machine ops are typed. |
963 // CheckValueInputIs(node, 0, Type::Object()); | 963 // CheckValueInputIs(node, 0, Type::Object()); |
964 // CheckValueInputIs(node, 1, ElementAccessOf(node->op()).type)); | 964 // CheckValueInputIs(node, 1, ElementAccessOf(node->op()).type)); |
965 CheckNotTyped(node); | 965 CheckNotTyped(node); |
966 break; | 966 break; |
| 967 case IrOpcode::kNumberSilenceNaN: |
| 968 CheckValueInputIs(node, 0, Type::NumberOrUndefined()); |
| 969 CheckUpperIs(node, Type::Number()); |
| 970 break; |
967 | 971 |
968 // Machine operators | 972 // Machine operators |
969 // ----------------------- | 973 // ----------------------- |
970 case IrOpcode::kLoad: | 974 case IrOpcode::kLoad: |
971 case IrOpcode::kStore: | 975 case IrOpcode::kStore: |
972 case IrOpcode::kStackSlot: | 976 case IrOpcode::kStackSlot: |
973 case IrOpcode::kWord32And: | 977 case IrOpcode::kWord32And: |
974 case IrOpcode::kWord32Or: | 978 case IrOpcode::kWord32Or: |
975 case IrOpcode::kWord32Xor: | 979 case IrOpcode::kWord32Xor: |
976 case IrOpcode::kWord32Shl: | 980 case IrOpcode::kWord32Shl: |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1077 case IrOpcode::kBitcastInt32ToFloat32: | 1081 case IrOpcode::kBitcastInt32ToFloat32: |
1078 case IrOpcode::kBitcastInt64ToFloat64: | 1082 case IrOpcode::kBitcastInt64ToFloat64: |
1079 case IrOpcode::kBitcastWordToTagged: | 1083 case IrOpcode::kBitcastWordToTagged: |
1080 case IrOpcode::kChangeInt32ToInt64: | 1084 case IrOpcode::kChangeInt32ToInt64: |
1081 case IrOpcode::kChangeUint32ToUint64: | 1085 case IrOpcode::kChangeUint32ToUint64: |
1082 case IrOpcode::kChangeInt32ToFloat64: | 1086 case IrOpcode::kChangeInt32ToFloat64: |
1083 case IrOpcode::kChangeUint32ToFloat64: | 1087 case IrOpcode::kChangeUint32ToFloat64: |
1084 case IrOpcode::kChangeFloat32ToFloat64: | 1088 case IrOpcode::kChangeFloat32ToFloat64: |
1085 case IrOpcode::kChangeFloat64ToInt32: | 1089 case IrOpcode::kChangeFloat64ToInt32: |
1086 case IrOpcode::kChangeFloat64ToUint32: | 1090 case IrOpcode::kChangeFloat64ToUint32: |
| 1091 case IrOpcode::kFloat64SilenceNaN: |
1087 case IrOpcode::kTruncateFloat64ToUint32: | 1092 case IrOpcode::kTruncateFloat64ToUint32: |
1088 case IrOpcode::kTruncateFloat32ToInt32: | 1093 case IrOpcode::kTruncateFloat32ToInt32: |
1089 case IrOpcode::kTruncateFloat32ToUint32: | 1094 case IrOpcode::kTruncateFloat32ToUint32: |
1090 case IrOpcode::kTryTruncateFloat32ToInt64: | 1095 case IrOpcode::kTryTruncateFloat32ToInt64: |
1091 case IrOpcode::kTryTruncateFloat64ToInt64: | 1096 case IrOpcode::kTryTruncateFloat64ToInt64: |
1092 case IrOpcode::kTryTruncateFloat32ToUint64: | 1097 case IrOpcode::kTryTruncateFloat32ToUint64: |
1093 case IrOpcode::kTryTruncateFloat64ToUint64: | 1098 case IrOpcode::kTryTruncateFloat64ToUint64: |
1094 case IrOpcode::kFloat64ExtractLowWord32: | 1099 case IrOpcode::kFloat64ExtractLowWord32: |
1095 case IrOpcode::kFloat64ExtractHighWord32: | 1100 case IrOpcode::kFloat64ExtractHighWord32: |
1096 case IrOpcode::kFloat64InsertLowWord32: | 1101 case IrOpcode::kFloat64InsertLowWord32: |
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1435 replacement->op()->EffectOutputCount() > 0); | 1440 replacement->op()->EffectOutputCount() > 0); |
1436 DCHECK(!NodeProperties::IsFrameStateEdge(edge) || | 1441 DCHECK(!NodeProperties::IsFrameStateEdge(edge) || |
1437 replacement->opcode() == IrOpcode::kFrameState); | 1442 replacement->opcode() == IrOpcode::kFrameState); |
1438 } | 1443 } |
1439 | 1444 |
1440 #endif // DEBUG | 1445 #endif // DEBUG |
1441 | 1446 |
1442 } // namespace compiler | 1447 } // namespace compiler |
1443 } // namespace internal | 1448 } // namespace internal |
1444 } // namespace v8 | 1449 } // namespace v8 |
OLD | NEW |