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 939 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
950 break; | 950 break; |
951 case IrOpcode::kStoreBuffer: | 951 case IrOpcode::kStoreBuffer: |
952 break; | 952 break; |
953 case IrOpcode::kStoreElement: | 953 case IrOpcode::kStoreElement: |
954 // (Object, elementtype) -> _|_ | 954 // (Object, elementtype) -> _|_ |
955 // TODO(rossberg): activate once machine ops are typed. | 955 // TODO(rossberg): activate once machine ops are typed. |
956 // CheckValueInputIs(node, 0, Type::Object()); | 956 // CheckValueInputIs(node, 0, Type::Object()); |
957 // CheckValueInputIs(node, 1, ElementAccessOf(node->op()).type)); | 957 // CheckValueInputIs(node, 1, ElementAccessOf(node->op()).type)); |
958 CheckNotTyped(node); | 958 CheckNotTyped(node); |
959 break; | 959 break; |
| 960 case IrOpcode::kNumberSilenceNaN: |
| 961 CheckValueInputIs(node, 0, Type::NumberOrUndefined()); |
| 962 CheckUpperIs(node, Type::Number()); |
| 963 break; |
960 | 964 |
961 // Machine operators | 965 // Machine operators |
962 // ----------------------- | 966 // ----------------------- |
963 case IrOpcode::kLoad: | 967 case IrOpcode::kLoad: |
964 case IrOpcode::kStore: | 968 case IrOpcode::kStore: |
965 case IrOpcode::kStackSlot: | 969 case IrOpcode::kStackSlot: |
966 case IrOpcode::kWord32And: | 970 case IrOpcode::kWord32And: |
967 case IrOpcode::kWord32Or: | 971 case IrOpcode::kWord32Or: |
968 case IrOpcode::kWord32Xor: | 972 case IrOpcode::kWord32Xor: |
969 case IrOpcode::kWord32Shl: | 973 case IrOpcode::kWord32Shl: |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1068 case IrOpcode::kBitcastInt32ToFloat32: | 1072 case IrOpcode::kBitcastInt32ToFloat32: |
1069 case IrOpcode::kBitcastInt64ToFloat64: | 1073 case IrOpcode::kBitcastInt64ToFloat64: |
1070 case IrOpcode::kBitcastWordToTagged: | 1074 case IrOpcode::kBitcastWordToTagged: |
1071 case IrOpcode::kChangeInt32ToInt64: | 1075 case IrOpcode::kChangeInt32ToInt64: |
1072 case IrOpcode::kChangeUint32ToUint64: | 1076 case IrOpcode::kChangeUint32ToUint64: |
1073 case IrOpcode::kChangeInt32ToFloat64: | 1077 case IrOpcode::kChangeInt32ToFloat64: |
1074 case IrOpcode::kChangeUint32ToFloat64: | 1078 case IrOpcode::kChangeUint32ToFloat64: |
1075 case IrOpcode::kChangeFloat32ToFloat64: | 1079 case IrOpcode::kChangeFloat32ToFloat64: |
1076 case IrOpcode::kChangeFloat64ToInt32: | 1080 case IrOpcode::kChangeFloat64ToInt32: |
1077 case IrOpcode::kChangeFloat64ToUint32: | 1081 case IrOpcode::kChangeFloat64ToUint32: |
| 1082 case IrOpcode::kFloat64SilenceNaN: |
1078 case IrOpcode::kTruncateFloat64ToUint32: | 1083 case IrOpcode::kTruncateFloat64ToUint32: |
1079 case IrOpcode::kTruncateFloat32ToInt32: | 1084 case IrOpcode::kTruncateFloat32ToInt32: |
1080 case IrOpcode::kTruncateFloat32ToUint32: | 1085 case IrOpcode::kTruncateFloat32ToUint32: |
1081 case IrOpcode::kTryTruncateFloat32ToInt64: | 1086 case IrOpcode::kTryTruncateFloat32ToInt64: |
1082 case IrOpcode::kTryTruncateFloat64ToInt64: | 1087 case IrOpcode::kTryTruncateFloat64ToInt64: |
1083 case IrOpcode::kTryTruncateFloat32ToUint64: | 1088 case IrOpcode::kTryTruncateFloat32ToUint64: |
1084 case IrOpcode::kTryTruncateFloat64ToUint64: | 1089 case IrOpcode::kTryTruncateFloat64ToUint64: |
1085 case IrOpcode::kFloat64ExtractLowWord32: | 1090 case IrOpcode::kFloat64ExtractLowWord32: |
1086 case IrOpcode::kFloat64ExtractHighWord32: | 1091 case IrOpcode::kFloat64ExtractHighWord32: |
1087 case IrOpcode::kFloat64InsertLowWord32: | 1092 case IrOpcode::kFloat64InsertLowWord32: |
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1426 replacement->op()->EffectOutputCount() > 0); | 1431 replacement->op()->EffectOutputCount() > 0); |
1427 DCHECK(!NodeProperties::IsFrameStateEdge(edge) || | 1432 DCHECK(!NodeProperties::IsFrameStateEdge(edge) || |
1428 replacement->opcode() == IrOpcode::kFrameState); | 1433 replacement->opcode() == IrOpcode::kFrameState); |
1429 } | 1434 } |
1430 | 1435 |
1431 #endif // DEBUG | 1436 #endif // DEBUG |
1432 | 1437 |
1433 } // namespace compiler | 1438 } // namespace compiler |
1434 } // namespace internal | 1439 } // namespace internal |
1435 } // namespace v8 | 1440 } // namespace v8 |
OLD | NEW |