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

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

Issue 2795143003: MIPS[64]: Support for some SIMD operations (5) (Closed)
Patch Set: Fix x64 build error Created 3 years, 7 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/mips64/instruction-codes-mips64.h ('k') | test/cctest/wasm/test-run-wasm-simd.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 2828 matching lines...) Expand 10 before | Expand all | Expand 10 after
2839 } 2839 }
2840 2840
2841 void InstructionSelector::VisitI32x4SConvertF32x4(Node* node) { 2841 void InstructionSelector::VisitI32x4SConvertF32x4(Node* node) {
2842 VisitRR(this, kMips64I32x4SConvertF32x4, node); 2842 VisitRR(this, kMips64I32x4SConvertF32x4, node);
2843 } 2843 }
2844 2844
2845 void InstructionSelector::VisitI32x4UConvertF32x4(Node* node) { 2845 void InstructionSelector::VisitI32x4UConvertF32x4(Node* node) {
2846 VisitRR(this, kMips64I32x4UConvertF32x4, node); 2846 VisitRR(this, kMips64I32x4UConvertF32x4, node);
2847 } 2847 }
2848 2848
2849 void InstructionSelector::VisitI32x4Neg(Node* node) {
2850 VisitRR(this, kMips64I32x4Neg, node);
2851 }
2852
2853 void InstructionSelector::VisitI32x4LtS(Node* node) {
2854 VisitRRR(this, kMips64I32x4LtS, node);
2855 }
2856
2857 void InstructionSelector::VisitI32x4LeS(Node* node) {
2858 VisitRRR(this, kMips64I32x4LeS, node);
2859 }
2860
2861 void InstructionSelector::VisitI32x4LtU(Node* node) {
2862 VisitRRR(this, kMips64I32x4LtU, node);
2863 }
2864
2865 void InstructionSelector::VisitI32x4LeU(Node* node) {
2866 VisitRRR(this, kMips64I32x4LeU, node);
2867 }
2868
2869 void InstructionSelector::VisitI16x8Splat(Node* node) {
2870 VisitRR(this, kMips64I16x8Splat, node);
2871 }
2872
2873 void InstructionSelector::VisitI16x8ExtractLane(Node* node) {
2874 VisitRRI(this, kMips64I16x8ExtractLane, node);
2875 }
2876
2877 void InstructionSelector::VisitI16x8ReplaceLane(Node* node) {
2878 VisitRRIR(this, kMips64I16x8ReplaceLane, node);
2879 }
2880
2881 void InstructionSelector::VisitI16x8Neg(Node* node) {
2882 VisitRR(this, kMips64I16x8Neg, node);
2883 }
2884
2885 void InstructionSelector::VisitI16x8Shl(Node* node) {
2886 VisitRRI(this, kMips64I16x8Shl, node);
2887 }
2888
2889 void InstructionSelector::VisitI16x8ShrS(Node* node) {
2890 VisitRRI(this, kMips64I16x8ShrS, node);
2891 }
2892
2893 void InstructionSelector::VisitI16x8ShrU(Node* node) {
2894 VisitRRI(this, kMips64I16x8ShrU, node);
2895 }
2896
2897 void InstructionSelector::VisitI16x8Add(Node* node) {
2898 VisitRRR(this, kMips64I16x8Add, node);
2899 }
2900
2901 void InstructionSelector::VisitI16x8AddSaturateS(Node* node) {
2902 VisitRRR(this, kMips64I16x8AddSaturateS, node);
2903 }
2904
2905 void InstructionSelector::VisitI16x8Sub(Node* node) {
2906 VisitRRR(this, kMips64I16x8Sub, node);
2907 }
2908
2909 void InstructionSelector::VisitI16x8SubSaturateS(Node* node) {
2910 VisitRRR(this, kMips64I16x8SubSaturateS, node);
2911 }
2912
2849 // static 2913 // static
2850 MachineOperatorBuilder::Flags 2914 MachineOperatorBuilder::Flags
2851 InstructionSelector::SupportedMachineOperatorFlags() { 2915 InstructionSelector::SupportedMachineOperatorFlags() {
2852 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; 2916 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags;
2853 return flags | MachineOperatorBuilder::kWord32Ctz | 2917 return flags | MachineOperatorBuilder::kWord32Ctz |
2854 MachineOperatorBuilder::kWord64Ctz | 2918 MachineOperatorBuilder::kWord64Ctz |
2855 MachineOperatorBuilder::kWord32Popcnt | 2919 MachineOperatorBuilder::kWord32Popcnt |
2856 MachineOperatorBuilder::kWord64Popcnt | 2920 MachineOperatorBuilder::kWord64Popcnt |
2857 MachineOperatorBuilder::kWord32ShiftIsSafe | 2921 MachineOperatorBuilder::kWord32ShiftIsSafe |
2858 MachineOperatorBuilder::kInt32DivIsSafe | 2922 MachineOperatorBuilder::kInt32DivIsSafe |
(...skipping 19 matching lines...) Expand all
2878 } else { 2942 } else {
2879 DCHECK(kArchVariant == kMips64r2); 2943 DCHECK(kArchVariant == kMips64r2);
2880 return MachineOperatorBuilder::AlignmentRequirements:: 2944 return MachineOperatorBuilder::AlignmentRequirements::
2881 NoUnalignedAccessSupport(); 2945 NoUnalignedAccessSupport();
2882 } 2946 }
2883 } 2947 }
2884 2948
2885 } // namespace compiler 2949 } // namespace compiler
2886 } // namespace internal 2950 } // namespace internal
2887 } // namespace v8 2951 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/mips64/instruction-codes-mips64.h ('k') | test/cctest/wasm/test-run-wasm-simd.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698