OLD | NEW |
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/code-generator.h" | 5 #include "src/compiler/code-generator.h" |
6 #include "src/compilation-info.h" | 6 #include "src/compilation-info.h" |
7 #include "src/compiler/code-generator-impl.h" | 7 #include "src/compiler/code-generator-impl.h" |
8 #include "src/compiler/gap-resolver.h" | 8 #include "src/compiler/gap-resolver.h" |
9 #include "src/compiler/node-matchers.h" | 9 #include "src/compiler/node-matchers.h" |
10 #include "src/compiler/osr.h" | 10 #include "src/compiler/osr.h" |
(...skipping 2188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2199 __ ftrunc_u_w(i.OutputSimd128Register(), i.InputSimd128Register(0)); | 2199 __ ftrunc_u_w(i.OutputSimd128Register(), i.InputSimd128Register(0)); |
2200 break; | 2200 break; |
2201 } | 2201 } |
2202 case kMips64I32x4Neg: { | 2202 case kMips64I32x4Neg: { |
2203 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2203 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2204 __ xor_v(kSimd128RegZero, kSimd128RegZero, kSimd128RegZero); | 2204 __ xor_v(kSimd128RegZero, kSimd128RegZero, kSimd128RegZero); |
2205 __ subv_w(i.OutputSimd128Register(), kSimd128RegZero, | 2205 __ subv_w(i.OutputSimd128Register(), kSimd128RegZero, |
2206 i.InputSimd128Register(0)); | 2206 i.InputSimd128Register(0)); |
2207 break; | 2207 break; |
2208 } | 2208 } |
2209 case kMips64I32x4LtS: { | 2209 case kMips64I32x4GtS: { |
2210 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2210 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2211 __ clt_s_w(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2211 __ clt_s_w(i.OutputSimd128Register(), i.InputSimd128Register(1), |
2212 i.InputSimd128Register(1)); | 2212 i.InputSimd128Register(0)); |
2213 break; | 2213 break; |
2214 } | 2214 } |
2215 case kMips64I32x4LeS: { | 2215 case kMips64I32x4GeS: { |
2216 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2216 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2217 __ cle_s_w(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2217 __ cle_s_w(i.OutputSimd128Register(), i.InputSimd128Register(1), |
2218 i.InputSimd128Register(1)); | 2218 i.InputSimd128Register(0)); |
2219 break; | 2219 break; |
2220 } | 2220 } |
2221 case kMips64I32x4LtU: { | 2221 case kMips64I32x4GtU: { |
2222 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2222 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2223 __ clt_u_w(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2223 __ clt_u_w(i.OutputSimd128Register(), i.InputSimd128Register(1), |
2224 i.InputSimd128Register(1)); | 2224 i.InputSimd128Register(0)); |
2225 break; | 2225 break; |
2226 } | 2226 } |
2227 case kMips64I32x4LeU: { | 2227 case kMips64I32x4GeU: { |
2228 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2228 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2229 __ cle_u_w(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2229 __ cle_u_w(i.OutputSimd128Register(), i.InputSimd128Register(1), |
2230 i.InputSimd128Register(1)); | 2230 i.InputSimd128Register(0)); |
2231 break; | 2231 break; |
2232 } | 2232 } |
2233 case kMips64I16x8Splat: { | 2233 case kMips64I16x8Splat: { |
2234 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2234 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2235 __ fill_h(i.OutputSimd128Register(), i.InputRegister(0)); | 2235 __ fill_h(i.OutputSimd128Register(), i.InputRegister(0)); |
2236 break; | 2236 break; |
2237 } | 2237 } |
2238 case kMips64I16x8ExtractLane: { | 2238 case kMips64I16x8ExtractLane: { |
2239 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2239 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2240 __ copy_s_h(i.OutputRegister(), i.InputSimd128Register(0), | 2240 __ copy_s_h(i.OutputRegister(), i.InputSimd128Register(0), |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2324 i.InputSimd128Register(1)); | 2324 i.InputSimd128Register(1)); |
2325 break; | 2325 break; |
2326 } | 2326 } |
2327 case kMips64I16x8Ne: { | 2327 case kMips64I16x8Ne: { |
2328 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2328 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2329 Simd128Register dst = i.OutputSimd128Register(); | 2329 Simd128Register dst = i.OutputSimd128Register(); |
2330 __ ceq_h(dst, i.InputSimd128Register(0), i.InputSimd128Register(1)); | 2330 __ ceq_h(dst, i.InputSimd128Register(0), i.InputSimd128Register(1)); |
2331 __ nor_v(dst, dst, dst); | 2331 __ nor_v(dst, dst, dst); |
2332 break; | 2332 break; |
2333 } | 2333 } |
2334 case kMips64I16x8LtS: { | 2334 case kMips64I16x8GtS: { |
2335 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2335 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2336 __ clt_s_h(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2336 __ clt_s_h(i.OutputSimd128Register(), i.InputSimd128Register(1), |
2337 i.InputSimd128Register(1)); | 2337 i.InputSimd128Register(0)); |
2338 break; | 2338 break; |
2339 } | 2339 } |
2340 case kMips64I16x8LeS: { | 2340 case kMips64I16x8GeS: { |
2341 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2341 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2342 __ cle_s_h(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2342 __ cle_s_h(i.OutputSimd128Register(), i.InputSimd128Register(1), |
2343 i.InputSimd128Register(1)); | 2343 i.InputSimd128Register(0)); |
2344 break; | 2344 break; |
2345 } | 2345 } |
2346 case kMips64I16x8AddSaturateU: { | 2346 case kMips64I16x8AddSaturateU: { |
2347 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2347 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2348 __ adds_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2348 __ adds_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), |
2349 i.InputSimd128Register(1)); | 2349 i.InputSimd128Register(1)); |
2350 break; | 2350 break; |
2351 } | 2351 } |
2352 case kMips64I16x8SubSaturateU: { | 2352 case kMips64I16x8SubSaturateU: { |
2353 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2353 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2354 __ subs_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2354 __ subs_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), |
2355 i.InputSimd128Register(1)); | 2355 i.InputSimd128Register(1)); |
2356 break; | 2356 break; |
2357 } | 2357 } |
2358 case kMips64I16x8MaxU: { | 2358 case kMips64I16x8MaxU: { |
2359 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2359 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2360 __ max_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2360 __ max_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), |
2361 i.InputSimd128Register(1)); | 2361 i.InputSimd128Register(1)); |
2362 break; | 2362 break; |
2363 } | 2363 } |
2364 case kMips64I16x8MinU: { | 2364 case kMips64I16x8MinU: { |
2365 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2365 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2366 __ min_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2366 __ min_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), |
2367 i.InputSimd128Register(1)); | 2367 i.InputSimd128Register(1)); |
2368 break; | 2368 break; |
2369 } | 2369 } |
2370 case kMips64I16x8LtU: { | 2370 case kMips64I16x8GtU: { |
2371 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2371 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2372 __ clt_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2372 __ clt_u_h(i.OutputSimd128Register(), i.InputSimd128Register(1), |
2373 i.InputSimd128Register(1)); | 2373 i.InputSimd128Register(0)); |
2374 break; | 2374 break; |
2375 } | 2375 } |
2376 case kMips64I16x8LeU: { | 2376 case kMips64I16x8GeU: { |
2377 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2377 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2378 __ cle_u_h(i.OutputSimd128Register(), i.InputSimd128Register(0), | 2378 __ cle_u_h(i.OutputSimd128Register(), i.InputSimd128Register(1), |
2379 i.InputSimd128Register(1)); | 2379 i.InputSimd128Register(0)); |
2380 break; | 2380 break; |
2381 } | 2381 } |
2382 case kMips64I8x16Splat: { | 2382 case kMips64I8x16Splat: { |
2383 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2383 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2384 __ fill_b(i.OutputSimd128Register(), i.InputRegister(0)); | 2384 __ fill_b(i.OutputSimd128Register(), i.InputRegister(0)); |
2385 break; | 2385 break; |
2386 } | 2386 } |
2387 case kMips64I8x16ExtractLane: { | 2387 case kMips64I8x16ExtractLane: { |
2388 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); | 2388 CpuFeatureScope msa_scope(masm(), MIPS_SIMD); |
2389 __ copy_s_b(i.OutputRegister(), i.InputSimd128Register(0), | 2389 __ copy_s_b(i.OutputRegister(), i.InputSimd128Register(0), |
(...skipping 788 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3178 padding_size -= v8::internal::Assembler::kInstrSize; | 3178 padding_size -= v8::internal::Assembler::kInstrSize; |
3179 } | 3179 } |
3180 } | 3180 } |
3181 } | 3181 } |
3182 | 3182 |
3183 #undef __ | 3183 #undef __ |
3184 | 3184 |
3185 } // namespace compiler | 3185 } // namespace compiler |
3186 } // namespace internal | 3186 } // namespace internal |
3187 } // namespace v8 | 3187 } // namespace v8 |
OLD | NEW |