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

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

Issue 2798853003: MIPS[64]: Support for some SIMD operations (7) (Closed)
Patch Set: Rebase, change Lt/Le with Gt/Ge 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 2987 matching lines...) Expand 10 before | Expand all | Expand 10 after
2998 } 2998 }
2999 2999
3000 void InstructionSelector::VisitS16x8Select(Node* node) { 3000 void InstructionSelector::VisitS16x8Select(Node* node) {
3001 VisitRRRR(this, kMips64S16x8Select, node); 3001 VisitRRRR(this, kMips64S16x8Select, node);
3002 } 3002 }
3003 3003
3004 void InstructionSelector::VisitS8x16Select(Node* node) { 3004 void InstructionSelector::VisitS8x16Select(Node* node) {
3005 VisitRRRR(this, kMips64S8x16Select, node); 3005 VisitRRRR(this, kMips64S8x16Select, node);
3006 } 3006 }
3007 3007
3008 void InstructionSelector::VisitI8x16Add(Node* node) {
3009 VisitRRR(this, kMips64I8x16Add, node);
3010 }
3011
3012 void InstructionSelector::VisitI8x16AddSaturateS(Node* node) {
3013 VisitRRR(this, kMips64I8x16AddSaturateS, node);
3014 }
3015
3016 void InstructionSelector::VisitI8x16Sub(Node* node) {
3017 VisitRRR(this, kMips64I8x16Sub, node);
3018 }
3019
3020 void InstructionSelector::VisitI8x16SubSaturateS(Node* node) {
3021 VisitRRR(this, kMips64I8x16SubSaturateS, node);
3022 }
3023
3024 void InstructionSelector::VisitI8x16Mul(Node* node) {
3025 VisitRRR(this, kMips64I8x16Mul, node);
3026 }
3027
3028 void InstructionSelector::VisitI8x16MaxS(Node* node) {
3029 VisitRRR(this, kMips64I8x16MaxS, node);
3030 }
3031
3032 void InstructionSelector::VisitI8x16MinS(Node* node) {
3033 VisitRRR(this, kMips64I8x16MinS, node);
3034 }
3035
3036 void InstructionSelector::VisitI8x16Eq(Node* node) {
3037 VisitRRR(this, kMips64I8x16Eq, node);
3038 }
3039
3040 void InstructionSelector::VisitI8x16Ne(Node* node) {
3041 VisitRRR(this, kMips64I8x16Ne, node);
3042 }
3043
3044 void InstructionSelector::VisitI8x16GtS(Node* node) {
3045 VisitRRR(this, kMips64I8x16GtS, node);
3046 }
3047
3048 void InstructionSelector::VisitI8x16GeS(Node* node) {
3049 VisitRRR(this, kMips64I8x16GeS, node);
3050 }
3051
3052 void InstructionSelector::VisitI8x16ShrU(Node* node) {
3053 VisitRRI(this, kMips64I8x16ShrU, node);
3054 }
3055
3056 void InstructionSelector::VisitI8x16AddSaturateU(Node* node) {
3057 VisitRRR(this, kMips64I8x16AddSaturateU, node);
3058 }
3059
3060 void InstructionSelector::VisitI8x16SubSaturateU(Node* node) {
3061 VisitRRR(this, kMips64I8x16SubSaturateU, node);
3062 }
3063
3064 void InstructionSelector::VisitI8x16MaxU(Node* node) {
3065 VisitRRR(this, kMips64I8x16MaxU, node);
3066 }
3067
3068 void InstructionSelector::VisitI8x16MinU(Node* node) {
3069 VisitRRR(this, kMips64I8x16MinU, node);
3070 }
3071
3072 void InstructionSelector::VisitI8x16GtU(Node* node) {
3073 VisitRRR(this, kMips64I8x16GtU, node);
3074 }
3075
3076 void InstructionSelector::VisitI8x16GeU(Node* node) {
3077 VisitRRR(this, kMips64I8x16GeU, node);
3078 }
3079
3080 void InstructionSelector::VisitS128And(Node* node) {
3081 VisitRRR(this, kMips64S128And, node);
3082 }
3083
3084 void InstructionSelector::VisitS128Or(Node* node) {
3085 VisitRRR(this, kMips64S128Or, node);
3086 }
3087
3088 void InstructionSelector::VisitS128Xor(Node* node) {
3089 VisitRRR(this, kMips64S128Xor, node);
3090 }
3091
3092 void InstructionSelector::VisitS128Not(Node* node) {
3093 VisitRR(this, kMips64S128Not, node);
3094 }
3095
3008 // static 3096 // static
3009 MachineOperatorBuilder::Flags 3097 MachineOperatorBuilder::Flags
3010 InstructionSelector::SupportedMachineOperatorFlags() { 3098 InstructionSelector::SupportedMachineOperatorFlags() {
3011 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; 3099 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags;
3012 return flags | MachineOperatorBuilder::kWord32Ctz | 3100 return flags | MachineOperatorBuilder::kWord32Ctz |
3013 MachineOperatorBuilder::kWord64Ctz | 3101 MachineOperatorBuilder::kWord64Ctz |
3014 MachineOperatorBuilder::kWord32Popcnt | 3102 MachineOperatorBuilder::kWord32Popcnt |
3015 MachineOperatorBuilder::kWord64Popcnt | 3103 MachineOperatorBuilder::kWord64Popcnt |
3016 MachineOperatorBuilder::kWord32ShiftIsSafe | 3104 MachineOperatorBuilder::kWord32ShiftIsSafe |
3017 MachineOperatorBuilder::kInt32DivIsSafe | 3105 MachineOperatorBuilder::kInt32DivIsSafe |
(...skipping 19 matching lines...) Expand all
3037 } else { 3125 } else {
3038 DCHECK(kArchVariant == kMips64r2); 3126 DCHECK(kArchVariant == kMips64r2);
3039 return MachineOperatorBuilder::AlignmentRequirements:: 3127 return MachineOperatorBuilder::AlignmentRequirements::
3040 NoUnalignedAccessSupport(); 3128 NoUnalignedAccessSupport();
3041 } 3129 }
3042 } 3130 }
3043 3131
3044 } // namespace compiler 3132 } // namespace compiler
3045 } // namespace internal 3133 } // namespace internal
3046 } // namespace v8 3134 } // 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