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

Side by Side Diff: src/compiler/wasm-compiler.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/instruction-selector.cc ('k') | src/wasm/wasm-macro-gen.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 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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/wasm-compiler.h" 5 #include "src/compiler/wasm-compiler.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "src/isolate-inl.h" 9 #include "src/isolate-inl.h"
10 10
(...skipping 3226 matching lines...) Expand 10 before | Expand all | Expand 10 after
3237 switch (opcode) { 3237 switch (opcode) {
3238 case wasm::kExprF32x4Splat: 3238 case wasm::kExprF32x4Splat:
3239 return graph()->NewNode(jsgraph()->machine()->CreateFloat32x4(), 3239 return graph()->NewNode(jsgraph()->machine()->CreateFloat32x4(),
3240 inputs[0], inputs[0], inputs[0], inputs[0]); 3240 inputs[0], inputs[0], inputs[0], inputs[0]);
3241 case wasm::kExprF32x4FromInt32x4: 3241 case wasm::kExprF32x4FromInt32x4:
3242 return graph()->NewNode(jsgraph()->machine()->Float32x4FromInt32x4(), 3242 return graph()->NewNode(jsgraph()->machine()->Float32x4FromInt32x4(),
3243 inputs[0]); 3243 inputs[0]);
3244 case wasm::kExprF32x4FromUint32x4: 3244 case wasm::kExprF32x4FromUint32x4:
3245 return graph()->NewNode(jsgraph()->machine()->Float32x4FromUint32x4(), 3245 return graph()->NewNode(jsgraph()->machine()->Float32x4FromUint32x4(),
3246 inputs[0]); 3246 inputs[0]);
3247 case wasm::kExprF32x4Abs:
3248 return graph()->NewNode(jsgraph()->machine()->Float32x4Abs(), inputs[0]);
3249 case wasm::kExprF32x4Neg:
3250 return graph()->NewNode(jsgraph()->machine()->Float32x4Neg(), inputs[0]);
3247 case wasm::kExprF32x4Add: 3251 case wasm::kExprF32x4Add:
3248 return graph()->NewNode(jsgraph()->machine()->Float32x4Add(), inputs[0], 3252 return graph()->NewNode(jsgraph()->machine()->Float32x4Add(), inputs[0],
3249 inputs[1]); 3253 inputs[1]);
3250 case wasm::kExprF32x4Sub: 3254 case wasm::kExprF32x4Sub:
3251 return graph()->NewNode(jsgraph()->machine()->Float32x4Sub(), inputs[0], 3255 return graph()->NewNode(jsgraph()->machine()->Float32x4Sub(), inputs[0],
3252 inputs[1]); 3256 inputs[1]);
3257 case wasm::kExprF32x4Eq:
3258 return graph()->NewNode(jsgraph()->machine()->Float32x4Equal(), inputs[0],
3259 inputs[1]);
3260 case wasm::kExprF32x4Ne:
3261 return graph()->NewNode(jsgraph()->machine()->Float32x4NotEqual(),
3262 inputs[0], inputs[1]);
3253 case wasm::kExprI32x4Splat: 3263 case wasm::kExprI32x4Splat:
3254 return graph()->NewNode(jsgraph()->machine()->CreateInt32x4(), inputs[0], 3264 return graph()->NewNode(jsgraph()->machine()->CreateInt32x4(), inputs[0],
3255 inputs[0], inputs[0], inputs[0]); 3265 inputs[0], inputs[0], inputs[0]);
3256 case wasm::kExprI32x4FromFloat32x4: 3266 case wasm::kExprI32x4FromFloat32x4:
3257 return graph()->NewNode(jsgraph()->machine()->Int32x4FromFloat32x4(), 3267 return graph()->NewNode(jsgraph()->machine()->Int32x4FromFloat32x4(),
3258 inputs[0]); 3268 inputs[0]);
3259 case wasm::kExprUi32x4FromFloat32x4: 3269 case wasm::kExprUi32x4FromFloat32x4:
3260 return graph()->NewNode(jsgraph()->machine()->Uint32x4FromFloat32x4(), 3270 return graph()->NewNode(jsgraph()->machine()->Uint32x4FromFloat32x4(),
3261 inputs[0]); 3271 inputs[0]);
3262 case wasm::kExprI32x4Add: 3272 case wasm::kExprI32x4Add:
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after
3683 Smi::FromInt(instruction.instr_offset)); 3693 Smi::FromInt(instruction.instr_offset));
3684 fn_protected->set(Code::kTrapDataSize * i + Code::kTrapLandingOffset, 3694 fn_protected->set(Code::kTrapDataSize * i + Code::kTrapLandingOffset,
3685 Smi::FromInt(instruction.landing_offset)); 3695 Smi::FromInt(instruction.landing_offset));
3686 } 3696 }
3687 return fn_protected; 3697 return fn_protected;
3688 } 3698 }
3689 3699
3690 } // namespace compiler 3700 } // namespace compiler
3691 } // namespace internal 3701 } // namespace internal
3692 } // namespace v8 3702 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/instruction-selector.cc ('k') | src/wasm/wasm-macro-gen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698