diff options
Diffstat (limited to 'deps/v8/src/compiler/verifier.cc')
-rw-r--r-- | deps/v8/src/compiler/verifier.cc | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/deps/v8/src/compiler/verifier.cc b/deps/v8/src/compiler/verifier.cc index 57bcef16a0..2b4bb9d092 100644 --- a/deps/v8/src/compiler/verifier.cc +++ b/deps/v8/src/compiler/verifier.cc @@ -413,10 +413,13 @@ void Verifier::Visitor::Check(Node* node) { CHECK_LT(1, effect_count); break; } - case IrOpcode::kValueEffect: + case IrOpcode::kGuard: + // TODO(bmeurer): what are the constraints on these? + break; + case IrOpcode::kBeginRegion: // TODO(rossberg): what are the constraints on these? break; - case IrOpcode::kFinish: { + case IrOpcode::kFinishRegion: { // TODO(rossberg): what are the constraints on these? // Type must be subsumed by input type. if (typing == TYPED) { @@ -541,8 +544,7 @@ void Verifier::Visitor::Check(Node* node) { break; case IrOpcode::kJSLoadContext: - case IrOpcode::kJSLoadDynamicGlobal: - case IrOpcode::kJSLoadDynamicContext: + case IrOpcode::kJSLoadDynamic: // Type can be anything. CheckUpperIs(node, Type::Any()); break; @@ -566,6 +568,7 @@ void Verifier::Visitor::Check(Node* node) { } case IrOpcode::kJSCallConstruct: + case IrOpcode::kJSConvertReceiver: // Type is Receiver. CheckUpperIs(node, Type::Receiver()); break; @@ -599,6 +602,10 @@ void Verifier::Visitor::Check(Node* node) { break; } + case IrOpcode::kJSLoadMessage: + case IrOpcode::kJSStoreMessage: + break; + case IrOpcode::kJSStackCheck: // Type is empty. CheckNotTyped(node); @@ -635,6 +642,14 @@ void Verifier::Visitor::Check(Node* node) { // TODO(rossberg): activate once we retype after opcode changes. // CheckUpperIs(node, Type::Number()); break; + case IrOpcode::kNumberBitwiseOr: + case IrOpcode::kNumberBitwiseXor: + case IrOpcode::kNumberBitwiseAnd: + // (Signed32, Signed32) -> Signed32 + CheckValueInputIs(node, 0, Type::Signed32()); + CheckValueInputIs(node, 1, Type::Signed32()); + CheckUpperIs(node, Type::Signed32()); + break; case IrOpcode::kNumberShiftLeft: case IrOpcode::kNumberShiftRight: // (Signed32, Unsigned32) -> Signed32 @@ -677,6 +692,7 @@ void Verifier::Visitor::Check(Node* node) { CheckUpperIs(node, Type::Boolean()); break; } + case IrOpcode::kObjectIsNumber: case IrOpcode::kObjectIsSmi: CheckValueInputIs(node, 0, Type::Any()); CheckUpperIs(node, Type::Boolean()); @@ -803,6 +819,8 @@ void Verifier::Visitor::Check(Node* node) { case IrOpcode::kWord32Ror: case IrOpcode::kWord32Equal: case IrOpcode::kWord32Clz: + case IrOpcode::kWord32Ctz: + case IrOpcode::kWord32Popcnt: case IrOpcode::kWord64And: case IrOpcode::kWord64Or: case IrOpcode::kWord64Xor: @@ -810,6 +828,9 @@ void Verifier::Visitor::Check(Node* node) { case IrOpcode::kWord64Shr: case IrOpcode::kWord64Sar: case IrOpcode::kWord64Ror: + case IrOpcode::kWord64Clz: + case IrOpcode::kWord64Popcnt: + case IrOpcode::kWord64Ctz: case IrOpcode::kWord64Equal: case IrOpcode::kInt32Add: case IrOpcode::kInt32AddWithOverflow: @@ -864,6 +885,8 @@ void Verifier::Visitor::Check(Node* node) { case IrOpcode::kFloat64LessThan: case IrOpcode::kFloat64LessThanOrEqual: case IrOpcode::kTruncateInt64ToInt32: + case IrOpcode::kRoundInt64ToFloat32: + case IrOpcode::kRoundInt64ToFloat64: case IrOpcode::kTruncateFloat64ToFloat32: case IrOpcode::kTruncateFloat64ToInt32: case IrOpcode::kBitcastFloat32ToInt32: |