Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(329)

Side by Side Diff: src/compiler/instruction-selector.cc

Issue 2385393002: [wasm] Implement I32x4ReplaceLane, I32x4Add, I32x4Sub. (Closed)
Patch Set: Bill's review Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/instruction-selector.h" 5 #include "src/compiler/instruction-selector.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "src/base/adapters.h" 9 #include "src/base/adapters.h"
10 #include "src/compiler/instruction-selector-impl.h" 10 #include "src/compiler/instruction-selector-impl.h"
(...skipping 1339 matching lines...) Expand 10 before | Expand all | Expand 10 after
1350 return VisitAtomicStore(node); 1350 return VisitAtomicStore(node);
1351 case IrOpcode::kProtectedLoad: 1351 case IrOpcode::kProtectedLoad:
1352 return VisitProtectedLoad(node); 1352 return VisitProtectedLoad(node);
1353 case IrOpcode::kUnsafePointerAdd: 1353 case IrOpcode::kUnsafePointerAdd:
1354 MarkAsRepresentation(MachineType::PointerRepresentation(), node); 1354 MarkAsRepresentation(MachineType::PointerRepresentation(), node);
1355 return VisitUnsafePointerAdd(node); 1355 return VisitUnsafePointerAdd(node);
1356 case IrOpcode::kCreateInt32x4: 1356 case IrOpcode::kCreateInt32x4:
1357 return MarkAsSimd128(node), VisitCreateInt32x4(node); 1357 return MarkAsSimd128(node), VisitCreateInt32x4(node);
1358 case IrOpcode::kInt32x4ExtractLane: 1358 case IrOpcode::kInt32x4ExtractLane:
1359 return MarkAsWord32(node), VisitInt32x4ExtractLane(node); 1359 return MarkAsWord32(node), VisitInt32x4ExtractLane(node);
1360 case IrOpcode::kInt32x4ReplaceLane:
1361 return MarkAsSimd128(node), VisitInt32x4ReplaceLane(node);
1362 case IrOpcode::kInt32x4Add:
1363 return MarkAsSimd128(node), VisitInt32x4Add(node);
1364 case IrOpcode::kInt32x4Sub:
1365 return MarkAsSimd128(node), VisitInt32x4Sub(node);
1360 default: 1366 default:
1361 V8_Fatal(__FILE__, __LINE__, "Unexpected operator #%d:%s @ node #%d", 1367 V8_Fatal(__FILE__, __LINE__, "Unexpected operator #%d:%s @ node #%d",
1362 node->opcode(), node->op()->mnemonic(), node->id()); 1368 node->opcode(), node->op()->mnemonic(), node->id());
1363 break; 1369 break;
1364 } 1370 }
1365 } 1371 }
1366 1372
1367 void InstructionSelector::VisitLoadStackPointer(Node* node) { 1373 void InstructionSelector::VisitLoadStackPointer(Node* node) {
1368 OperandGenerator g(this); 1374 OperandGenerator g(this);
1369 Emit(kArchStackPointer, g.DefineAsRegister(node)); 1375 Emit(kArchStackPointer, g.DefineAsRegister(node));
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
1683 1689
1684 void InstructionSelector::VisitWord32PairSar(Node* node) { UNIMPLEMENTED(); } 1690 void InstructionSelector::VisitWord32PairSar(Node* node) { UNIMPLEMENTED(); }
1685 #endif // V8_TARGET_ARCH_64_BIT 1691 #endif // V8_TARGET_ARCH_64_BIT
1686 1692
1687 #if !V8_TARGET_ARCH_X64 1693 #if !V8_TARGET_ARCH_X64
1688 void InstructionSelector::VisitCreateInt32x4(Node* node) { UNIMPLEMENTED(); } 1694 void InstructionSelector::VisitCreateInt32x4(Node* node) { UNIMPLEMENTED(); }
1689 1695
1690 void InstructionSelector::VisitInt32x4ExtractLane(Node* node) { 1696 void InstructionSelector::VisitInt32x4ExtractLane(Node* node) {
1691 UNIMPLEMENTED(); 1697 UNIMPLEMENTED();
1692 } 1698 }
1699
1700 void InstructionSelector::VisitInt32x4ReplaceLane(Node* node) {
1701 UNIMPLEMENTED();
1702 }
1703
1704 void InstructionSelector::VisitInt32x4Add(Node* node) { UNIMPLEMENTED(); }
1705
1706 void InstructionSelector::VisitInt32x4Sub(Node* node) { UNIMPLEMENTED(); }
1693 #endif // !V8_TARGET_ARCH_X64 1707 #endif // !V8_TARGET_ARCH_X64
1694 1708
1695 void InstructionSelector::VisitFinishRegion(Node* node) { EmitIdentity(node); } 1709 void InstructionSelector::VisitFinishRegion(Node* node) { EmitIdentity(node); }
1696 1710
1697 void InstructionSelector::VisitParameter(Node* node) { 1711 void InstructionSelector::VisitParameter(Node* node) {
1698 OperandGenerator g(this); 1712 OperandGenerator g(this);
1699 int index = ParameterIndexOf(node->op()); 1713 int index = ParameterIndexOf(node->op());
1700 InstructionOperand op = 1714 InstructionOperand op =
1701 linkage()->ParameterHasSecondaryLocation(index) 1715 linkage()->ParameterHasSecondaryLocation(index)
1702 ? g.DefineAsDualLocation( 1716 ? g.DefineAsDualLocation(
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
2099 return new (instruction_zone()) FrameStateDescriptor( 2113 return new (instruction_zone()) FrameStateDescriptor(
2100 instruction_zone(), state_info.type(), state_info.bailout_id(), 2114 instruction_zone(), state_info.type(), state_info.bailout_id(),
2101 state_info.state_combine(), parameters, locals, stack, 2115 state_info.state_combine(), parameters, locals, stack,
2102 state_info.shared_info(), outer_state); 2116 state_info.shared_info(), outer_state);
2103 } 2117 }
2104 2118
2105 2119
2106 } // namespace compiler 2120 } // namespace compiler
2107 } // namespace internal 2121 } // namespace internal
2108 } // namespace v8 2122 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/compiler/wasm-compiler.h » ('j') | src/compiler/x64/instruction-selector-x64.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698