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

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

Issue 2594683002: [Turbofan] Add native ARM support for Simd Float32x4 operations. (Closed)
Patch Set: Created 4 years 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-scheduler-arm.cc ('k') | src/compiler/instruction-selector.cc » ('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/base/adapters.h" 5 #include "src/base/adapters.h"
6 #include "src/base/bits.h" 6 #include "src/base/bits.h"
7 #include "src/compiler/instruction-selector-impl.h" 7 #include "src/compiler/instruction-selector-impl.h"
8 #include "src/compiler/node-matchers.h" 8 #include "src/compiler/node-matchers.h"
9 #include "src/compiler/node-properties.h" 9 #include "src/compiler/node-properties.h"
10 10
(...skipping 2300 matching lines...) Expand 10 before | Expand all | Expand 10 after
2311 Emit(kArmFloat32x4FromInt32x4, g.DefineAsRegister(node), 2311 Emit(kArmFloat32x4FromInt32x4, g.DefineAsRegister(node),
2312 g.UseRegister(node->InputAt(0))); 2312 g.UseRegister(node->InputAt(0)));
2313 } 2313 }
2314 2314
2315 void InstructionSelector::VisitFloat32x4FromUint32x4(Node* node) { 2315 void InstructionSelector::VisitFloat32x4FromUint32x4(Node* node) {
2316 ArmOperandGenerator g(this); 2316 ArmOperandGenerator g(this);
2317 Emit(kArmFloat32x4FromUint32x4, g.DefineAsRegister(node), 2317 Emit(kArmFloat32x4FromUint32x4, g.DefineAsRegister(node),
2318 g.UseRegister(node->InputAt(0))); 2318 g.UseRegister(node->InputAt(0)));
2319 } 2319 }
2320 2320
2321 void InstructionSelector::VisitFloat32x4Abs(Node* node) {
2322 ArmOperandGenerator g(this);
2323 Emit(kArmFloat32x4Abs, g.DefineAsRegister(node),
2324 g.UseRegister(node->InputAt(0)));
2325 }
2326
2327 void InstructionSelector::VisitFloat32x4Neg(Node* node) {
2328 ArmOperandGenerator g(this);
2329 Emit(kArmFloat32x4Neg, g.DefineAsRegister(node),
2330 g.UseRegister(node->InputAt(0)));
2331 }
2332
2321 void InstructionSelector::VisitFloat32x4Add(Node* node) { 2333 void InstructionSelector::VisitFloat32x4Add(Node* node) {
2322 ArmOperandGenerator g(this); 2334 ArmOperandGenerator g(this);
2323 Emit(kArmFloat32x4Add, g.DefineAsRegister(node), 2335 Emit(kArmFloat32x4Add, g.DefineAsRegister(node),
2324 g.UseRegister(node->InputAt(0)), g.UseRegister(node->InputAt(1))); 2336 g.UseRegister(node->InputAt(0)), g.UseRegister(node->InputAt(1)));
2325 } 2337 }
2326 2338
2327 void InstructionSelector::VisitFloat32x4Sub(Node* node) { 2339 void InstructionSelector::VisitFloat32x4Sub(Node* node) {
2328 ArmOperandGenerator g(this); 2340 ArmOperandGenerator g(this);
2329 Emit(kArmFloat32x4Sub, g.DefineAsRegister(node), 2341 Emit(kArmFloat32x4Sub, g.DefineAsRegister(node),
2330 g.UseRegister(node->InputAt(0)), g.UseRegister(node->InputAt(1))); 2342 g.UseRegister(node->InputAt(0)), g.UseRegister(node->InputAt(1)));
2331 } 2343 }
2332 2344
2345 void InstructionSelector::VisitFloat32x4Equal(Node* node) {
2346 ArmOperandGenerator g(this);
2347 Emit(kArmFloat32x4Eq, g.DefineAsRegister(node),
2348 g.UseRegister(node->InputAt(0)), g.UseRegister(node->InputAt(1)));
2349 }
2350
2351 void InstructionSelector::VisitFloat32x4NotEqual(Node* node) {
2352 ArmOperandGenerator g(this);
2353 Emit(kArmFloat32x4Ne, g.DefineAsRegister(node),
2354 g.UseRegister(node->InputAt(0)), g.UseRegister(node->InputAt(1)));
2355 }
2356
2333 void InstructionSelector::VisitCreateInt32x4(Node* node) { 2357 void InstructionSelector::VisitCreateInt32x4(Node* node) {
2334 ArmOperandGenerator g(this); 2358 ArmOperandGenerator g(this);
2335 Emit(kArmInt32x4Splat, g.DefineAsRegister(node), g.Use(node->InputAt(0))); 2359 Emit(kArmInt32x4Splat, g.DefineAsRegister(node), g.Use(node->InputAt(0)));
2336 } 2360 }
2337 2361
2338 void InstructionSelector::VisitInt32x4ExtractLane(Node* node) { 2362 void InstructionSelector::VisitInt32x4ExtractLane(Node* node) {
2339 ArmOperandGenerator g(this); 2363 ArmOperandGenerator g(this);
2340 int32_t lane = OpParameter<int32_t>(node); 2364 int32_t lane = OpParameter<int32_t>(node);
2341 Emit(kArmInt32x4ExtractLane, g.DefineAsRegister(node), 2365 Emit(kArmInt32x4ExtractLane, g.DefineAsRegister(node),
2342 g.UseRegister(node->InputAt(0)), g.UseImmediate(lane)); 2366 g.UseRegister(node->InputAt(0)), g.UseImmediate(lane));
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
2426 Vector<MachineType> req_aligned = Vector<MachineType>::New(2); 2450 Vector<MachineType> req_aligned = Vector<MachineType>::New(2);
2427 req_aligned[0] = MachineType::Float32(); 2451 req_aligned[0] = MachineType::Float32();
2428 req_aligned[1] = MachineType::Float64(); 2452 req_aligned[1] = MachineType::Float64();
2429 return MachineOperatorBuilder::AlignmentRequirements:: 2453 return MachineOperatorBuilder::AlignmentRequirements::
2430 SomeUnalignedAccessUnsupported(req_aligned, req_aligned); 2454 SomeUnalignedAccessUnsupported(req_aligned, req_aligned);
2431 } 2455 }
2432 2456
2433 } // namespace compiler 2457 } // namespace compiler
2434 } // namespace internal 2458 } // namespace internal
2435 } // namespace v8 2459 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/arm/instruction-scheduler-arm.cc ('k') | src/compiler/instruction-selector.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698