Index: src/compiler/instruction-selector.cc |
diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc |
index dd3663d2aaf3a0fc68079ab55fe63f9c7eb1655f..57623e25b3eb5fe46cfdef14076fe6affebde512 100644 |
--- a/src/compiler/instruction-selector.cc |
+++ b/src/compiler/instruction-selector.cc |
@@ -7,6 +7,7 @@ |
#include "src/compiler/instruction-selector-impl.h" |
#include "src/compiler/node-matchers.h" |
#include "src/compiler/node-properties-inl.h" |
+#include "src/compiler/pipeline.h" |
namespace v8 { |
namespace internal { |
@@ -583,6 +584,8 @@ void InstructionSelector::VisitNode(Node* node) { |
} |
+#if V8_TURBOFAN_TARGET |
+ |
void InstructionSelector::VisitWord32Equal(Node* node) { |
FlagsContinuation cont(kEqual, node); |
Int32BinopMatcher m(node); |
@@ -656,9 +659,10 @@ void InstructionSelector::VisitFloat64LessThanOrEqual(Node* node) { |
VisitFloat64Compare(node, &cont); |
} |
+#endif // V8_TURBOFAN_TARGET |
// 32 bit targets do not implement the following instructions. |
-#if V8_TARGET_ARCH_32_BIT |
+#if V8_TARGET_ARCH_32_BIT && V8_TURBOFAN_TARGET |
void InstructionSelector::VisitWord64And(Node* node) { UNIMPLEMENTED(); } |
@@ -708,6 +712,12 @@ void InstructionSelector::VisitConvertInt32ToInt64(Node* node) { |
UNIMPLEMENTED(); |
} |
+#endif // V8_TARGET_ARCH_32_BIT && V8_TURBOFAN_TARGET |
+ |
+ |
+// 32-bit targets and unsupported architectures need dummy implementations of |
+// selected 64-bit ops. |
+#if V8_TARGET_ARCH_32_BIT || !V8_TURBOFAN_TARGET |
void InstructionSelector::VisitWord64Test(Node* node, FlagsContinuation* cont) { |
UNIMPLEMENTED(); |
@@ -719,7 +729,7 @@ void InstructionSelector::VisitWord64Compare(Node* node, |
UNIMPLEMENTED(); |
} |
-#endif // V8_TARGET_ARCH_32_BIT |
+#endif // V8_TARGET_ARCH_32_BIT || !V8_TURBOFAN_TARGET |
void InstructionSelector::VisitPhi(Node* node) { |
@@ -868,6 +878,36 @@ void InstructionSelector::VisitDeoptimization(Node* deopt) { |
Emit(kArchDeoptimize | MiscField::encode(deoptimization_id), NULL); |
} |
+#if !V8_TURBOFAN_TARGET |
+ |
+#define DECLARE_UNIMPLEMENTED_SELECTOR(x) \ |
+ void InstructionSelector::Visit##x(Node* node) { UNIMPLEMENTED(); } |
+MACHINE_OP_LIST(DECLARE_UNIMPLEMENTED_SELECTOR) |
+#undef DECLARE_UNIMPLEMENTED_SELECTOR |
+ |
+ |
+void InstructionSelector::VisitWord32Test(Node* node, FlagsContinuation* cont) { |
+ UNIMPLEMENTED(); |
+} |
+ |
+ |
+void InstructionSelector::VisitWord32Compare(Node* node, |
+ FlagsContinuation* cont) { |
+ UNIMPLEMENTED(); |
+} |
+ |
+ |
+void InstructionSelector::VisitFloat64Compare(Node* node, |
+ FlagsContinuation* cont) { |
+ UNIMPLEMENTED(); |
+} |
+ |
+ |
+void InstructionSelector::VisitCall(Node* call, BasicBlock* continuation, |
+ BasicBlock* deoptimization) {} |
+ |
+#endif |
+ |
} // namespace compiler |
} // namespace internal |
} // namespace v8 |