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

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

Issue 2711863002: Implement remaining Boolean SIMD operations on ARM. (Closed)
Patch Set: Fix macro assembler test. Created 3 years, 9 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
« no previous file with comments | « src/compiler/arm/instruction-selector-arm.cc ('k') | src/compiler/machine-operator.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/compiler-source-position-table.h" 10 #include "src/compiler/compiler-source-position-table.h"
(...skipping 1619 matching lines...) Expand 10 before | Expand all | Expand 10 after
1630 case IrOpcode::kSimd128Not: 1630 case IrOpcode::kSimd128Not:
1631 return MarkAsSimd128(node), VisitSimd128Not(node); 1631 return MarkAsSimd128(node), VisitSimd128Not(node);
1632 case IrOpcode::kSimd32x4Select: 1632 case IrOpcode::kSimd32x4Select:
1633 return MarkAsSimd128(node), VisitSimd32x4Select(node); 1633 return MarkAsSimd128(node), VisitSimd32x4Select(node);
1634 case IrOpcode::kSimd16x8Select: 1634 case IrOpcode::kSimd16x8Select:
1635 return MarkAsSimd128(node), VisitSimd16x8Select(node); 1635 return MarkAsSimd128(node), VisitSimd16x8Select(node);
1636 case IrOpcode::kSimd8x16Select: 1636 case IrOpcode::kSimd8x16Select:
1637 return MarkAsSimd128(node), VisitSimd8x16Select(node); 1637 return MarkAsSimd128(node), VisitSimd8x16Select(node);
1638 case IrOpcode::kSimd1x4Zero: 1638 case IrOpcode::kSimd1x4Zero:
1639 return MarkAsSimd1x4(node), VisitSimd1x4Zero(node); 1639 return MarkAsSimd1x4(node), VisitSimd1x4Zero(node);
1640 case IrOpcode::kSimd1x4And:
1641 return MarkAsSimd1x4(node), VisitSimd1x4And(node);
1642 case IrOpcode::kSimd1x4Or:
1643 return MarkAsSimd1x4(node), VisitSimd1x4Or(node);
1644 case IrOpcode::kSimd1x4Xor:
1645 return MarkAsSimd1x4(node), VisitSimd1x4Xor(node);
1646 case IrOpcode::kSimd1x4Not:
1647 return MarkAsSimd1x4(node), VisitSimd1x4Not(node);
1648 case IrOpcode::kSimd1x4AnyTrue:
1649 return MarkAsWord32(node), VisitSimd1x4AnyTrue(node);
1650 case IrOpcode::kSimd1x4AllTrue:
1651 return MarkAsWord32(node), VisitSimd1x4AllTrue(node);
1640 case IrOpcode::kSimd1x8Zero: 1652 case IrOpcode::kSimd1x8Zero:
1641 return MarkAsSimd1x8(node), VisitSimd1x8Zero(node); 1653 return MarkAsSimd1x8(node), VisitSimd1x8Zero(node);
1654 case IrOpcode::kSimd1x8And:
1655 return MarkAsSimd1x8(node), VisitSimd1x8And(node);
1656 case IrOpcode::kSimd1x8Or:
1657 return MarkAsSimd1x8(node), VisitSimd1x8Or(node);
1658 case IrOpcode::kSimd1x8Xor:
1659 return MarkAsSimd1x8(node), VisitSimd1x8Xor(node);
1660 case IrOpcode::kSimd1x8Not:
1661 return MarkAsSimd1x8(node), VisitSimd1x8Not(node);
1662 case IrOpcode::kSimd1x8AnyTrue:
1663 return MarkAsWord32(node), VisitSimd1x8AnyTrue(node);
1664 case IrOpcode::kSimd1x8AllTrue:
1665 return MarkAsWord32(node), VisitSimd1x8AllTrue(node);
1642 case IrOpcode::kSimd1x16Zero: 1666 case IrOpcode::kSimd1x16Zero:
1643 return MarkAsSimd1x16(node), VisitSimd1x16Zero(node); 1667 return MarkAsSimd1x16(node), VisitSimd1x16Zero(node);
1668 case IrOpcode::kSimd1x16And:
1669 return MarkAsSimd1x16(node), VisitSimd1x16And(node);
1670 case IrOpcode::kSimd1x16Or:
1671 return MarkAsSimd1x16(node), VisitSimd1x16Or(node);
1672 case IrOpcode::kSimd1x16Xor:
1673 return MarkAsSimd1x16(node), VisitSimd1x16Xor(node);
1674 case IrOpcode::kSimd1x16Not:
1675 return MarkAsSimd1x16(node), VisitSimd1x16Not(node);
1676 case IrOpcode::kSimd1x16AnyTrue:
1677 return MarkAsWord32(node), VisitSimd1x16AnyTrue(node);
1678 case IrOpcode::kSimd1x16AllTrue:
1679 return MarkAsWord32(node), VisitSimd1x16AllTrue(node);
1644 default: 1680 default:
1645 V8_Fatal(__FILE__, __LINE__, "Unexpected operator #%d:%s @ node #%d", 1681 V8_Fatal(__FILE__, __LINE__, "Unexpected operator #%d:%s @ node #%d",
1646 node->opcode(), node->op()->mnemonic(), node->id()); 1682 node->opcode(), node->op()->mnemonic(), node->id());
1647 break; 1683 break;
1648 } 1684 }
1649 } 1685 }
1650 1686
1651 void InstructionSelector::VisitLoadStackPointer(Node* node) { 1687 void InstructionSelector::VisitLoadStackPointer(Node* node) {
1652 OperandGenerator g(this); 1688 OperandGenerator g(this);
1653 Emit(kArchStackPointer, g.DefineAsRegister(node)); 1689 Emit(kArchStackPointer, g.DefineAsRegister(node));
(...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after
2247 2283
2248 void InstructionSelector::VisitSimd128Xor(Node* node) { UNIMPLEMENTED(); } 2284 void InstructionSelector::VisitSimd128Xor(Node* node) { UNIMPLEMENTED(); }
2249 2285
2250 void InstructionSelector::VisitSimd128Not(Node* node) { UNIMPLEMENTED(); } 2286 void InstructionSelector::VisitSimd128Not(Node* node) { UNIMPLEMENTED(); }
2251 2287
2252 void InstructionSelector::VisitSimd32x4Select(Node* node) { UNIMPLEMENTED(); } 2288 void InstructionSelector::VisitSimd32x4Select(Node* node) { UNIMPLEMENTED(); }
2253 2289
2254 void InstructionSelector::VisitSimd16x8Select(Node* node) { UNIMPLEMENTED(); } 2290 void InstructionSelector::VisitSimd16x8Select(Node* node) { UNIMPLEMENTED(); }
2255 2291
2256 void InstructionSelector::VisitSimd8x16Select(Node* node) { UNIMPLEMENTED(); } 2292 void InstructionSelector::VisitSimd8x16Select(Node* node) { UNIMPLEMENTED(); }
2293
2294 void InstructionSelector::VisitSimd1x4And(Node* node) { UNIMPLEMENTED(); }
2295
2296 void InstructionSelector::VisitSimd1x4Or(Node* node) { UNIMPLEMENTED(); }
2297
2298 void InstructionSelector::VisitSimd1x4Xor(Node* node) { UNIMPLEMENTED(); }
2299
2300 void InstructionSelector::VisitSimd1x4Not(Node* node) { UNIMPLEMENTED(); }
2301
2302 void InstructionSelector::VisitSimd1x4AnyTrue(Node* node) { UNIMPLEMENTED(); }
2303
2304 void InstructionSelector::VisitSimd1x4AllTrue(Node* node) { UNIMPLEMENTED(); }
2305
2306 void InstructionSelector::VisitSimd1x8And(Node* node) { UNIMPLEMENTED(); }
2307
2308 void InstructionSelector::VisitSimd1x8Or(Node* node) { UNIMPLEMENTED(); }
2309
2310 void InstructionSelector::VisitSimd1x8Xor(Node* node) { UNIMPLEMENTED(); }
2311
2312 void InstructionSelector::VisitSimd1x8Not(Node* node) { UNIMPLEMENTED(); }
2313
2314 void InstructionSelector::VisitSimd1x8AnyTrue(Node* node) { UNIMPLEMENTED(); }
2315
2316 void InstructionSelector::VisitSimd1x8AllTrue(Node* node) { UNIMPLEMENTED(); }
2317
2318 void InstructionSelector::VisitSimd1x16And(Node* node) { UNIMPLEMENTED(); }
2319
2320 void InstructionSelector::VisitSimd1x16Or(Node* node) { UNIMPLEMENTED(); }
2321
2322 void InstructionSelector::VisitSimd1x16Xor(Node* node) { UNIMPLEMENTED(); }
2323
2324 void InstructionSelector::VisitSimd1x16Not(Node* node) { UNIMPLEMENTED(); }
2325
2326 void InstructionSelector::VisitSimd1x16AnyTrue(Node* node) { UNIMPLEMENTED(); }
2327
2328 void InstructionSelector::VisitSimd1x16AllTrue(Node* node) { UNIMPLEMENTED(); }
2257 #endif // !V8_TARGET_ARCH_ARM 2329 #endif // !V8_TARGET_ARCH_ARM
2258 2330
2259 void InstructionSelector::VisitFinishRegion(Node* node) { EmitIdentity(node); } 2331 void InstructionSelector::VisitFinishRegion(Node* node) { EmitIdentity(node); }
2260 2332
2261 void InstructionSelector::VisitParameter(Node* node) { 2333 void InstructionSelector::VisitParameter(Node* node) {
2262 OperandGenerator g(this); 2334 OperandGenerator g(this);
2263 int index = ParameterIndexOf(node->op()); 2335 int index = ParameterIndexOf(node->op());
2264 InstructionOperand op = 2336 InstructionOperand op =
2265 linkage()->ParameterHasSecondaryLocation(index) 2337 linkage()->ParameterHasSecondaryLocation(index)
2266 ? g.DefineAsDualLocation( 2338 ? g.DefineAsDualLocation(
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
2626 return new (instruction_zone()) FrameStateDescriptor( 2698 return new (instruction_zone()) FrameStateDescriptor(
2627 instruction_zone(), state_info.type(), state_info.bailout_id(), 2699 instruction_zone(), state_info.type(), state_info.bailout_id(),
2628 state_info.state_combine(), parameters, locals, stack, 2700 state_info.state_combine(), parameters, locals, stack,
2629 state_info.shared_info(), outer_state); 2701 state_info.shared_info(), outer_state);
2630 } 2702 }
2631 2703
2632 2704
2633 } // namespace compiler 2705 } // namespace compiler
2634 } // namespace internal 2706 } // namespace internal
2635 } // namespace v8 2707 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/arm/instruction-selector-arm.cc ('k') | src/compiler/machine-operator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698