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

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

Issue 2951793003: [wasm] Implement remaining SIMD x64 compare ops, unops. (Closed)
Patch Set: Fix bug Created 3 years, 6 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/compiler/instruction-selector.h" 5 #include "src/compiler/instruction-selector.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "src/assembler-inl.h" 9 #include "src/assembler-inl.h"
10 #include "src/base/adapters.h" 10 #include "src/base/adapters.h"
(...skipping 2166 matching lines...) Expand 10 before | Expand all | Expand 10 after
2177 2177
2178 void InstructionSelector::VisitI16x8SConvertI8x16High(Node* node) { 2178 void InstructionSelector::VisitI16x8SConvertI8x16High(Node* node) {
2179 UNIMPLEMENTED(); 2179 UNIMPLEMENTED();
2180 } 2180 }
2181 2181
2182 void InstructionSelector::VisitI16x8SConvertI32x4(Node* node) { 2182 void InstructionSelector::VisitI16x8SConvertI32x4(Node* node) {
2183 UNIMPLEMENTED(); 2183 UNIMPLEMENTED();
2184 } 2184 }
2185 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 2185 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64
2186 2186
2187 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS && \ 2187 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_X64 && \
2188 !V8_TARGET_ARCH_MIPS64 2188 !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64
2189 void InstructionSelector::VisitI32x4Neg(Node* node) { UNIMPLEMENTED(); } 2189 void InstructionSelector::VisitI32x4Neg(Node* node) { UNIMPLEMENTED(); }
2190 2190
2191 void InstructionSelector::VisitI32x4GtS(Node* node) { UNIMPLEMENTED(); } 2191 void InstructionSelector::VisitI32x4GtS(Node* node) { UNIMPLEMENTED(); }
2192 2192
2193 void InstructionSelector::VisitI32x4GeS(Node* node) { UNIMPLEMENTED(); } 2193 void InstructionSelector::VisitI32x4GeS(Node* node) { UNIMPLEMENTED(); }
2194 2194
2195 void InstructionSelector::VisitI32x4GtU(Node* node) { UNIMPLEMENTED(); } 2195 void InstructionSelector::VisitI32x4GtU(Node* node) { UNIMPLEMENTED(); }
2196 2196
2197 void InstructionSelector::VisitI32x4GeU(Node* node) { UNIMPLEMENTED(); } 2197 void InstructionSelector::VisitI32x4GeU(Node* node) { UNIMPLEMENTED(); }
2198 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS
2199 // && !V8_TARGET_ARCH_MIPS64
2200 2198
2201 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_X64 && \
2202 !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64
2203 void InstructionSelector::VisitI16x8Splat(Node* node) { UNIMPLEMENTED(); } 2199 void InstructionSelector::VisitI16x8Splat(Node* node) { UNIMPLEMENTED(); }
2204 2200
2205 void InstructionSelector::VisitI16x8ExtractLane(Node* node) { UNIMPLEMENTED(); } 2201 void InstructionSelector::VisitI16x8ExtractLane(Node* node) { UNIMPLEMENTED(); }
2206 2202
2207 void InstructionSelector::VisitI16x8ReplaceLane(Node* node) { UNIMPLEMENTED(); } 2203 void InstructionSelector::VisitI16x8ReplaceLane(Node* node) { UNIMPLEMENTED(); }
2208 2204
2209 void InstructionSelector::VisitI16x8Shl(Node* node) { UNIMPLEMENTED(); } 2205 void InstructionSelector::VisitI16x8Shl(Node* node) { UNIMPLEMENTED(); }
2210 2206
2211 void InstructionSelector::VisitI16x8ShrS(Node* node) { UNIMPLEMENTED(); } 2207 void InstructionSelector::VisitI16x8ShrS(Node* node) { UNIMPLEMENTED(); }
2212 2208
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
2246 UNIMPLEMENTED(); 2242 UNIMPLEMENTED();
2247 } 2243 }
2248 2244
2249 void InstructionSelector::VisitI16x8SubSaturateU(Node* node) { 2245 void InstructionSelector::VisitI16x8SubSaturateU(Node* node) {
2250 UNIMPLEMENTED(); 2246 UNIMPLEMENTED();
2251 } 2247 }
2252 2248
2253 void InstructionSelector::VisitI16x8MinU(Node* node) { UNIMPLEMENTED(); } 2249 void InstructionSelector::VisitI16x8MinU(Node* node) { UNIMPLEMENTED(); }
2254 2250
2255 void InstructionSelector::VisitI16x8MaxU(Node* node) { UNIMPLEMENTED(); } 2251 void InstructionSelector::VisitI16x8MaxU(Node* node) { UNIMPLEMENTED(); }
2252
2253 void InstructionSelector::VisitI16x8Neg(Node* node) { UNIMPLEMENTED(); }
2256 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_X64 2254 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_X64
2257 // && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64 2255 // && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64
2258 2256
2259 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS && \
2260 !V8_TARGET_ARCH_MIPS64
2261 void InstructionSelector::VisitI16x8Neg(Node* node) { UNIMPLEMENTED(); }
2262 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS
2263 // && !V8_TARGET_ARCH_MIPS64
2264
2265 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 2257 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64
2266 void InstructionSelector::VisitI16x8UConvertI32x4(Node* node) { 2258 void InstructionSelector::VisitI16x8UConvertI32x4(Node* node) {
2267 UNIMPLEMENTED(); 2259 UNIMPLEMENTED();
2268 } 2260 }
2269 2261
2270 void InstructionSelector::VisitI16x8UConvertI8x16Low(Node* node) { 2262 void InstructionSelector::VisitI16x8UConvertI8x16Low(Node* node) {
2271 UNIMPLEMENTED(); 2263 UNIMPLEMENTED();
2272 } 2264 }
2273 2265
2274 void InstructionSelector::VisitI16x8UConvertI8x16High(Node* node) { 2266 void InstructionSelector::VisitI16x8UConvertI8x16High(Node* node) {
2275 UNIMPLEMENTED(); 2267 UNIMPLEMENTED();
2276 } 2268 }
2277 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 2269 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64
2278 2270
2279 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS && \ 2271 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_X64 && \
2280 !V8_TARGET_ARCH_MIPS64 2272 !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64
2281 void InstructionSelector::VisitI16x8GtS(Node* node) { UNIMPLEMENTED(); } 2273 void InstructionSelector::VisitI16x8GtS(Node* node) { UNIMPLEMENTED(); }
2282 2274
2283 void InstructionSelector::VisitI16x8GeS(Node* node) { UNIMPLEMENTED(); } 2275 void InstructionSelector::VisitI16x8GeS(Node* node) { UNIMPLEMENTED(); }
2284 2276
2285 void InstructionSelector::VisitI16x8GtU(Node* node) { UNIMPLEMENTED(); } 2277 void InstructionSelector::VisitI16x8GtU(Node* node) { UNIMPLEMENTED(); }
2286 2278
2287 void InstructionSelector::VisitI16x8GeU(Node* node) { UNIMPLEMENTED(); } 2279 void InstructionSelector::VisitI16x8GeU(Node* node) { UNIMPLEMENTED(); }
2288 2280
2289 void InstructionSelector::VisitI8x16Neg(Node* node) { UNIMPLEMENTED(); } 2281 void InstructionSelector::VisitI8x16Neg(Node* node) { UNIMPLEMENTED(); }
2282 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_X64
2283 // && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64
2290 2284
2285 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS && \
2286 !V8_TARGET_ARCH_MIPS64
2291 void InstructionSelector::VisitI8x16Shl(Node* node) { UNIMPLEMENTED(); } 2287 void InstructionSelector::VisitI8x16Shl(Node* node) { UNIMPLEMENTED(); }
2292 2288
2293 void InstructionSelector::VisitI8x16ShrS(Node* node) { UNIMPLEMENTED(); } 2289 void InstructionSelector::VisitI8x16ShrS(Node* node) { UNIMPLEMENTED(); }
2294 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS 2290 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS
2295 // && !V8_TARGET_ARCH_MIPS64 2291 // && !V8_TARGET_ARCH_MIPS64
2296 2292
2297 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_X64 && \ 2293 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_X64 && \
2298 !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64 2294 !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64
2299 void InstructionSelector::VisitI8x16Splat(Node* node) { UNIMPLEMENTED(); } 2295 void InstructionSelector::VisitI8x16Splat(Node* node) { UNIMPLEMENTED(); }
2300 2296
(...skipping 23 matching lines...) Expand all
2324 UNIMPLEMENTED(); 2320 UNIMPLEMENTED();
2325 } 2321 }
2326 2322
2327 void InstructionSelector::VisitI8x16MinS(Node* node) { UNIMPLEMENTED(); } 2323 void InstructionSelector::VisitI8x16MinS(Node* node) { UNIMPLEMENTED(); }
2328 2324
2329 void InstructionSelector::VisitI8x16MaxS(Node* node) { UNIMPLEMENTED(); } 2325 void InstructionSelector::VisitI8x16MaxS(Node* node) { UNIMPLEMENTED(); }
2330 2326
2331 void InstructionSelector::VisitI8x16Eq(Node* node) { UNIMPLEMENTED(); } 2327 void InstructionSelector::VisitI8x16Eq(Node* node) { UNIMPLEMENTED(); }
2332 2328
2333 void InstructionSelector::VisitI8x16Ne(Node* node) { UNIMPLEMENTED(); } 2329 void InstructionSelector::VisitI8x16Ne(Node* node) { UNIMPLEMENTED(); }
2330
2331 void InstructionSelector::VisitI8x16GtS(Node* node) { UNIMPLEMENTED(); }
2332
2333 void InstructionSelector::VisitI8x16GeS(Node* node) { UNIMPLEMENTED(); }
2334 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_X64 2334 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_X64
2335 // && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64 2335 // && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64
2336 2336
2337 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS && \ 2337 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS && \
2338 !V8_TARGET_ARCH_MIPS64 2338 !V8_TARGET_ARCH_MIPS64
2339 void InstructionSelector::VisitI8x16Mul(Node* node) { UNIMPLEMENTED(); } 2339 void InstructionSelector::VisitI8x16Mul(Node* node) { UNIMPLEMENTED(); }
2340 2340
2341 void InstructionSelector::VisitI8x16GtS(Node* node) { UNIMPLEMENTED(); }
2342
2343 void InstructionSelector::VisitI8x16GeS(Node* node) { UNIMPLEMENTED(); }
2344
2345 void InstructionSelector::VisitI8x16ShrU(Node* node) { UNIMPLEMENTED(); } 2341 void InstructionSelector::VisitI8x16ShrU(Node* node) { UNIMPLEMENTED(); }
2346 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS 2342 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS
2347 // && !V8_TARGET_ARCH_MIPS64 2343 // && !V8_TARGET_ARCH_MIPS64
2348 2344
2349 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 2345 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64
2350 void InstructionSelector::VisitI8x16UConvertI16x8(Node* node) { 2346 void InstructionSelector::VisitI8x16UConvertI16x8(Node* node) {
2351 UNIMPLEMENTED(); 2347 UNIMPLEMENTED();
2352 } 2348 }
2353 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 2349 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64
2354 2350
2355 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_X64 && \ 2351 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_X64 && \
2356 !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64 2352 !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64
2357 void InstructionSelector::VisitI8x16AddSaturateU(Node* node) { 2353 void InstructionSelector::VisitI8x16AddSaturateU(Node* node) {
2358 UNIMPLEMENTED(); 2354 UNIMPLEMENTED();
2359 } 2355 }
2360 2356
2361 void InstructionSelector::VisitI8x16SubSaturateU(Node* node) { 2357 void InstructionSelector::VisitI8x16SubSaturateU(Node* node) {
2362 UNIMPLEMENTED(); 2358 UNIMPLEMENTED();
2363 } 2359 }
2364 2360
2365 void InstructionSelector::VisitI8x16MinU(Node* node) { UNIMPLEMENTED(); } 2361 void InstructionSelector::VisitI8x16MinU(Node* node) { UNIMPLEMENTED(); }
2366 2362
2367 void InstructionSelector::VisitI8x16MaxU(Node* node) { UNIMPLEMENTED(); } 2363 void InstructionSelector::VisitI8x16MaxU(Node* node) { UNIMPLEMENTED(); }
2368 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_X64
2369 // && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64
2370 2364
2371 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS && \
2372 !V8_TARGET_ARCH_MIPS64
2373 void InstructionSelector::VisitI8x16GtU(Node* node) { UNIMPLEMENTED(); } 2365 void InstructionSelector::VisitI8x16GtU(Node* node) { UNIMPLEMENTED(); }
2374 2366
2375 void InstructionSelector::VisitI8x16GeU(Node* node) { UNIMPLEMENTED(); } 2367 void InstructionSelector::VisitI8x16GeU(Node* node) { UNIMPLEMENTED(); }
2376 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS
2377 // && !V8_TARGET_ARCH_MIPS64
2378 2368
2379 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_X64 && \
2380 !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64
2381 void InstructionSelector::VisitS128And(Node* node) { UNIMPLEMENTED(); } 2369 void InstructionSelector::VisitS128And(Node* node) { UNIMPLEMENTED(); }
2382 2370
2383 void InstructionSelector::VisitS128Or(Node* node) { UNIMPLEMENTED(); } 2371 void InstructionSelector::VisitS128Or(Node* node) { UNIMPLEMENTED(); }
2384 2372
2385 void InstructionSelector::VisitS128Xor(Node* node) { UNIMPLEMENTED(); } 2373 void InstructionSelector::VisitS128Xor(Node* node) { UNIMPLEMENTED(); }
2386 2374
2387 void InstructionSelector::VisitS128Not(Node* node) { UNIMPLEMENTED(); } 2375 void InstructionSelector::VisitS128Not(Node* node) { UNIMPLEMENTED(); }
2388 2376
2389 void InstructionSelector::VisitS128Zero(Node* node) { UNIMPLEMENTED(); } 2377 void InstructionSelector::VisitS128Zero(Node* node) { UNIMPLEMENTED(); }
2390 2378
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
2786 return new (instruction_zone()) FrameStateDescriptor( 2774 return new (instruction_zone()) FrameStateDescriptor(
2787 instruction_zone(), state_info.type(), state_info.bailout_id(), 2775 instruction_zone(), state_info.type(), state_info.bailout_id(),
2788 state_info.state_combine(), parameters, locals, stack, 2776 state_info.state_combine(), parameters, locals, stack,
2789 state_info.shared_info(), outer_state); 2777 state_info.shared_info(), outer_state);
2790 } 2778 }
2791 2779
2792 2780
2793 } // namespace compiler 2781 } // namespace compiler
2794 } // namespace internal 2782 } // namespace internal
2795 } // namespace v8 2783 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/compiler/x64/code-generator-x64.cc » ('j') | src/compiler/x64/code-generator-x64.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698