Index: src/compiler/instruction-selector.cc |
diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc |
index c18c474c345394ec576588b0eb16d6a1d26589c6..af6196736b36f50c468d5be7185bab0c068c3631 100644 |
--- a/src/compiler/instruction-selector.cc |
+++ b/src/compiler/instruction-selector.cc |
@@ -1014,6 +1014,8 @@ void InstructionSelector::VisitNode(Node* node) { |
return VisitUint64LessThanOrEqual(node); |
case IrOpcode::kUint64Mod: |
return MarkAsWord64(node), VisitUint64Mod(node); |
+ case IrOpcode::kBitcastWordToTagged: |
+ return MarkAsReference(node), VisitBitcastWordToTagged(node); |
case IrOpcode::kChangeFloat32ToFloat64: |
return MarkAsFloat64(node), VisitChangeFloat32ToFloat64(node); |
case IrOpcode::kChangeInt32ToFloat64: |
@@ -1253,6 +1255,12 @@ void InstructionSelector::VisitStackSlot(Node* node) { |
sequence()->AddImmediate(Constant(slot)), 0, nullptr); |
} |
+void InstructionSelector::VisitBitcastWordToTagged(Node* node) { |
+ OperandGenerator g(this); |
+ Node* value = node->InputAt(0); |
+ Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(value)); |
+} |
+ |
// 32 bit targets do not implement the following instructions. |
#if V8_TARGET_ARCH_32_BIT |