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

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

Issue 2791213003: MIPS[64]: Support for some SIMD operations (6) (Closed)
Patch Set: Rebasing 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
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 2141 matching lines...) Expand 10 before | Expand all | Expand 10 after
2152 } 2152 }
2153 2153
2154 void InstructionSelector::VisitI16x8Sub(Node* node) { 2154 void InstructionSelector::VisitI16x8Sub(Node* node) {
2155 VisitRRR(this, kMipsI16x8Sub, node); 2155 VisitRRR(this, kMipsI16x8Sub, node);
2156 } 2156 }
2157 2157
2158 void InstructionSelector::VisitI16x8SubSaturateS(Node* node) { 2158 void InstructionSelector::VisitI16x8SubSaturateS(Node* node) {
2159 VisitRRR(this, kMipsI16x8SubSaturateS, node); 2159 VisitRRR(this, kMipsI16x8SubSaturateS, node);
2160 } 2160 }
2161 2161
2162 void InstructionSelector::VisitI16x8Mul(Node* node) {
2163 VisitRRR(this, kMipsI16x8Mul, node);
2164 }
2165
2166 void InstructionSelector::VisitI16x8MaxS(Node* node) {
2167 VisitRRR(this, kMipsI16x8MaxS, node);
2168 }
2169
2170 void InstructionSelector::VisitI16x8MinS(Node* node) {
2171 VisitRRR(this, kMipsI16x8MinS, node);
2172 }
2173
2174 void InstructionSelector::VisitI16x8Eq(Node* node) {
2175 VisitRRR(this, kMipsI16x8Eq, node);
2176 }
2177
2178 void InstructionSelector::VisitI16x8Ne(Node* node) {
2179 VisitRRR(this, kMipsI16x8Ne, node);
2180 }
2181
2182 void InstructionSelector::VisitI16x8LtS(Node* node) {
2183 VisitRRR(this, kMipsI16x8LtS, node);
2184 }
2185
2186 void InstructionSelector::VisitI16x8LeS(Node* node) {
2187 VisitRRR(this, kMipsI16x8LeS, node);
2188 }
2189
2190 void InstructionSelector::VisitI16x8AddSaturateU(Node* node) {
2191 VisitRRR(this, kMipsI16x8AddSaturateU, node);
2192 }
2193
2194 void InstructionSelector::VisitI16x8SubSaturateU(Node* node) {
2195 VisitRRR(this, kMipsI16x8SubSaturateU, node);
2196 }
2197
2198 void InstructionSelector::VisitI16x8MaxU(Node* node) {
2199 VisitRRR(this, kMipsI16x8MaxU, node);
2200 }
2201
2202 void InstructionSelector::VisitI16x8MinU(Node* node) {
2203 VisitRRR(this, kMipsI16x8MinU, node);
2204 }
2205
2206 void InstructionSelector::VisitI16x8LtU(Node* node) {
2207 VisitRRR(this, kMipsI16x8LtU, node);
2208 }
2209
2210 void InstructionSelector::VisitI16x8LeU(Node* node) {
2211 VisitRRR(this, kMipsI16x8LeU, node);
2212 }
2213
2214 void InstructionSelector::VisitI8x16Splat(Node* node) {
2215 VisitRR(this, kMipsI8x16Splat, node);
2216 }
2217
2218 void InstructionSelector::VisitI8x16ExtractLane(Node* node) {
2219 VisitRRI(this, kMipsI8x16ExtractLane, node);
2220 }
2221
2222 void InstructionSelector::VisitI8x16ReplaceLane(Node* node) {
2223 VisitRRIR(this, kMipsI8x16ReplaceLane, node);
2224 }
2225
2226 void InstructionSelector::VisitI8x16Neg(Node* node) {
2227 VisitRR(this, kMipsI8x16Neg, node);
2228 }
2229
2230 void InstructionSelector::VisitI8x16Shl(Node* node) {
2231 VisitRRI(this, kMipsI8x16Shl, node);
2232 }
2233
2234 void InstructionSelector::VisitI8x16ShrS(Node* node) {
2235 VisitRRI(this, kMipsI8x16ShrS, node);
2236 }
2237
2238 void InstructionSelector::VisitS16x8Select(Node* node) {
2239 VisitRRRR(this, kMipsS16x8Select, node);
2240 }
2241
2242 void InstructionSelector::VisitS8x16Select(Node* node) {
2243 VisitRRRR(this, kMipsS8x16Select, node);
2244 }
2245
2162 // static 2246 // static
2163 MachineOperatorBuilder::Flags 2247 MachineOperatorBuilder::Flags
2164 InstructionSelector::SupportedMachineOperatorFlags() { 2248 InstructionSelector::SupportedMachineOperatorFlags() {
2165 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; 2249 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags;
2166 if ((IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) && 2250 if ((IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) &&
2167 IsFp64Mode()) { 2251 IsFp64Mode()) {
2168 flags |= MachineOperatorBuilder::kFloat64RoundDown | 2252 flags |= MachineOperatorBuilder::kFloat64RoundDown |
2169 MachineOperatorBuilder::kFloat64RoundUp | 2253 MachineOperatorBuilder::kFloat64RoundUp |
2170 MachineOperatorBuilder::kFloat64RoundTruncate | 2254 MachineOperatorBuilder::kFloat64RoundTruncate |
2171 MachineOperatorBuilder::kFloat64RoundTiesEven; 2255 MachineOperatorBuilder::kFloat64RoundTiesEven;
(...skipping 22 matching lines...) Expand all
2194 DCHECK(IsMipsArchVariant(kLoongson) || IsMipsArchVariant(kMips32r1) || 2278 DCHECK(IsMipsArchVariant(kLoongson) || IsMipsArchVariant(kMips32r1) ||
2195 IsMipsArchVariant(kMips32r2)); 2279 IsMipsArchVariant(kMips32r2));
2196 return MachineOperatorBuilder::AlignmentRequirements:: 2280 return MachineOperatorBuilder::AlignmentRequirements::
2197 NoUnalignedAccessSupport(); 2281 NoUnalignedAccessSupport();
2198 } 2282 }
2199 } 2283 }
2200 2284
2201 } // namespace compiler 2285 } // namespace compiler
2202 } // namespace internal 2286 } // namespace internal
2203 } // namespace v8 2287 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/mips/instruction-codes-mips.h ('k') | src/compiler/mips64/code-generator-mips64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698