Index: src/compiler/simplified-lowering.cc |
diff --git a/src/compiler/simplified-lowering.cc b/src/compiler/simplified-lowering.cc |
index fc7dcf8f939344dba37a79bb1d7eaf4a45611763..a531b27ec87a63408961611d6ccf874d4d53ef39 100644 |
--- a/src/compiler/simplified-lowering.cc |
+++ b/src/compiler/simplified-lowering.cc |
@@ -2126,6 +2126,15 @@ class RepresentationSelector { |
} |
return; |
} |
+ case IrOpcode::kCheckHeapObject: { |
+ if (InputCannotBe(node, Type::SignedSmall())) { |
+ VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged); |
+ if (lower()) DeferReplacement(node, node->InputAt(0)); |
+ } else { |
+ VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged); |
+ } |
+ return; |
+ } |
case IrOpcode::kCheckIf: { |
ProcessInput(node, 0, UseInfo::Bool()); |
ProcessRemainingInputs(node, 1); |
@@ -2151,28 +2160,20 @@ class RepresentationSelector { |
} |
return; |
} |
- case IrOpcode::kCheckString: { |
- if (InputIs(node, Type::String())) { |
- VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged); |
- if (lower()) DeferReplacement(node, node->InputAt(0)); |
+ case IrOpcode::kCheckSmi: { |
+ if (SmiValuesAre32Bits() && truncation.IsUsedAsWord32()) { |
+ VisitUnop(node, UseInfo::CheckedSignedSmallAsWord32(), |
+ MachineRepresentation::kWord32); |
} else { |
- VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged); |
+ VisitUnop(node, UseInfo::CheckedSignedSmallAsTaggedSigned(), |
+ MachineRepresentation::kTaggedSigned); |
} |
+ if (lower()) DeferReplacement(node, node->InputAt(0)); |
return; |
} |
- case IrOpcode::kCheckTaggedPointer: { |
- if (InputCannotBe(node, Type::SignedSmall())) { |
- VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged); |
- if (lower()) DeferReplacement(node, node->InputAt(0)); |
- } else { |
+ case IrOpcode::kCheckString: { |
+ if (InputIs(node, Type::String())) { |
VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged); |
- } |
- return; |
- } |
- case IrOpcode::kCheckTaggedSigned: { |
- if (SmiValuesAre32Bits() && truncation.IsUsedAsWord32()) { |
- VisitUnop(node, UseInfo::CheckedSignedSmallAsWord32(), |
- MachineRepresentation::kWord32); |
if (lower()) DeferReplacement(node, node->InputAt(0)); |
} else { |
VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged); |