| Index: src/compiler/instruction-selector.cc
|
| diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc
|
| index f233cae5b5ac89e324c159daaf7fd71c54127ee1..e4faca5a6692b572875374ad51a63bfc8957fc65 100644
|
| --- a/src/compiler/instruction-selector.cc
|
| +++ b/src/compiler/instruction-selector.cc
|
| @@ -1104,8 +1104,14 @@ void InstructionSelector::VisitNode(Node* node) {
|
| return VisitUint64LessThanOrEqual(node);
|
| case IrOpcode::kUint64Mod:
|
| return MarkAsWord64(node), VisitUint64Mod(node);
|
| + case IrOpcode::kBitcastTaggedToWord:
|
| + return MarkAsRepresentation(MachineType::PointerRepresentation(), node),
|
| + VisitBitcastTaggedToWord(node);
|
| case IrOpcode::kBitcastWordToTagged:
|
| return MarkAsReference(node), VisitBitcastWordToTagged(node);
|
| + case IrOpcode::kBitcastWordToTaggedSigned:
|
| + return MarkAsRepresentation(MachineRepresentation::kTaggedSigned, node),
|
| + EmitIdentity(node);
|
| case IrOpcode::kChangeFloat32ToFloat64:
|
| return MarkAsFloat64(node), VisitChangeFloat32ToFloat64(node);
|
| case IrOpcode::kChangeInt32ToFloat64:
|
| @@ -1501,6 +1507,11 @@ void InstructionSelector::VisitStackSlot(Node* node) {
|
| sequence()->AddImmediate(Constant(slot)), 0, nullptr);
|
| }
|
|
|
| +void InstructionSelector::VisitBitcastTaggedToWord(Node* node) {
|
| + OperandGenerator g(this);
|
| + Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(node->InputAt(0)));
|
| +}
|
| +
|
| void InstructionSelector::VisitBitcastWordToTagged(Node* node) {
|
| OperandGenerator g(this);
|
| Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(node->InputAt(0)));
|
|
|