| 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
|
|
|