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/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 1491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1502 case IrOpcode::kF32x4Abs: | 1502 case IrOpcode::kF32x4Abs: |
1503 return MarkAsSimd128(node), VisitF32x4Abs(node); | 1503 return MarkAsSimd128(node), VisitF32x4Abs(node); |
1504 case IrOpcode::kF32x4Neg: | 1504 case IrOpcode::kF32x4Neg: |
1505 return MarkAsSimd128(node), VisitF32x4Neg(node); | 1505 return MarkAsSimd128(node), VisitF32x4Neg(node); |
1506 case IrOpcode::kF32x4RecipApprox: | 1506 case IrOpcode::kF32x4RecipApprox: |
1507 return MarkAsSimd128(node), VisitF32x4RecipApprox(node); | 1507 return MarkAsSimd128(node), VisitF32x4RecipApprox(node); |
1508 case IrOpcode::kF32x4RecipSqrtApprox: | 1508 case IrOpcode::kF32x4RecipSqrtApprox: |
1509 return MarkAsSimd128(node), VisitF32x4RecipSqrtApprox(node); | 1509 return MarkAsSimd128(node), VisitF32x4RecipSqrtApprox(node); |
1510 case IrOpcode::kF32x4Add: | 1510 case IrOpcode::kF32x4Add: |
1511 return MarkAsSimd128(node), VisitF32x4Add(node); | 1511 return MarkAsSimd128(node), VisitF32x4Add(node); |
| 1512 case IrOpcode::kF32x4AddHoriz: |
| 1513 return MarkAsSimd128(node), VisitF32x4AddHoriz(node); |
1512 case IrOpcode::kF32x4Sub: | 1514 case IrOpcode::kF32x4Sub: |
1513 return MarkAsSimd128(node), VisitF32x4Sub(node); | 1515 return MarkAsSimd128(node), VisitF32x4Sub(node); |
1514 case IrOpcode::kF32x4Mul: | 1516 case IrOpcode::kF32x4Mul: |
1515 return MarkAsSimd128(node), VisitF32x4Mul(node); | 1517 return MarkAsSimd128(node), VisitF32x4Mul(node); |
1516 case IrOpcode::kF32x4Min: | 1518 case IrOpcode::kF32x4Min: |
1517 return MarkAsSimd128(node), VisitF32x4Min(node); | 1519 return MarkAsSimd128(node), VisitF32x4Min(node); |
1518 case IrOpcode::kF32x4Max: | 1520 case IrOpcode::kF32x4Max: |
1519 return MarkAsSimd128(node), VisitF32x4Max(node); | 1521 return MarkAsSimd128(node), VisitF32x4Max(node); |
1520 case IrOpcode::kF32x4Eq: | 1522 case IrOpcode::kF32x4Eq: |
1521 return MarkAsSimd1x4(node), VisitF32x4Eq(node); | 1523 return MarkAsSimd1x4(node), VisitF32x4Eq(node); |
(...skipping 16 matching lines...) Expand all Loading... |
1538 case IrOpcode::kI32x4SConvertI16x8High: | 1540 case IrOpcode::kI32x4SConvertI16x8High: |
1539 return MarkAsSimd128(node), VisitI32x4SConvertI16x8High(node); | 1541 return MarkAsSimd128(node), VisitI32x4SConvertI16x8High(node); |
1540 case IrOpcode::kI32x4Neg: | 1542 case IrOpcode::kI32x4Neg: |
1541 return MarkAsSimd128(node), VisitI32x4Neg(node); | 1543 return MarkAsSimd128(node), VisitI32x4Neg(node); |
1542 case IrOpcode::kI32x4Shl: | 1544 case IrOpcode::kI32x4Shl: |
1543 return MarkAsSimd128(node), VisitI32x4Shl(node); | 1545 return MarkAsSimd128(node), VisitI32x4Shl(node); |
1544 case IrOpcode::kI32x4ShrS: | 1546 case IrOpcode::kI32x4ShrS: |
1545 return MarkAsSimd128(node), VisitI32x4ShrS(node); | 1547 return MarkAsSimd128(node), VisitI32x4ShrS(node); |
1546 case IrOpcode::kI32x4Add: | 1548 case IrOpcode::kI32x4Add: |
1547 return MarkAsSimd128(node), VisitI32x4Add(node); | 1549 return MarkAsSimd128(node), VisitI32x4Add(node); |
| 1550 case IrOpcode::kI32x4AddHoriz: |
| 1551 return MarkAsSimd128(node), VisitI32x4AddHoriz(node); |
1548 case IrOpcode::kI32x4Sub: | 1552 case IrOpcode::kI32x4Sub: |
1549 return MarkAsSimd128(node), VisitI32x4Sub(node); | 1553 return MarkAsSimd128(node), VisitI32x4Sub(node); |
1550 case IrOpcode::kI32x4Mul: | 1554 case IrOpcode::kI32x4Mul: |
1551 return MarkAsSimd128(node), VisitI32x4Mul(node); | 1555 return MarkAsSimd128(node), VisitI32x4Mul(node); |
1552 case IrOpcode::kI32x4MinS: | 1556 case IrOpcode::kI32x4MinS: |
1553 return MarkAsSimd128(node), VisitI32x4MinS(node); | 1557 return MarkAsSimd128(node), VisitI32x4MinS(node); |
1554 case IrOpcode::kI32x4MaxS: | 1558 case IrOpcode::kI32x4MaxS: |
1555 return MarkAsSimd128(node), VisitI32x4MaxS(node); | 1559 return MarkAsSimd128(node), VisitI32x4MaxS(node); |
1556 case IrOpcode::kI32x4Eq: | 1560 case IrOpcode::kI32x4Eq: |
1557 return MarkAsSimd1x4(node), VisitI32x4Eq(node); | 1561 return MarkAsSimd1x4(node), VisitI32x4Eq(node); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1592 case IrOpcode::kI16x8Shl: | 1596 case IrOpcode::kI16x8Shl: |
1593 return MarkAsSimd128(node), VisitI16x8Shl(node); | 1597 return MarkAsSimd128(node), VisitI16x8Shl(node); |
1594 case IrOpcode::kI16x8ShrS: | 1598 case IrOpcode::kI16x8ShrS: |
1595 return MarkAsSimd128(node), VisitI16x8ShrS(node); | 1599 return MarkAsSimd128(node), VisitI16x8ShrS(node); |
1596 case IrOpcode::kI16x8SConvertI32x4: | 1600 case IrOpcode::kI16x8SConvertI32x4: |
1597 return MarkAsSimd128(node), VisitI16x8SConvertI32x4(node); | 1601 return MarkAsSimd128(node), VisitI16x8SConvertI32x4(node); |
1598 case IrOpcode::kI16x8Add: | 1602 case IrOpcode::kI16x8Add: |
1599 return MarkAsSimd128(node), VisitI16x8Add(node); | 1603 return MarkAsSimd128(node), VisitI16x8Add(node); |
1600 case IrOpcode::kI16x8AddSaturateS: | 1604 case IrOpcode::kI16x8AddSaturateS: |
1601 return MarkAsSimd128(node), VisitI16x8AddSaturateS(node); | 1605 return MarkAsSimd128(node), VisitI16x8AddSaturateS(node); |
| 1606 case IrOpcode::kI16x8AddHoriz: |
| 1607 return MarkAsSimd128(node), VisitI16x8AddHoriz(node); |
1602 case IrOpcode::kI16x8Sub: | 1608 case IrOpcode::kI16x8Sub: |
1603 return MarkAsSimd128(node), VisitI16x8Sub(node); | 1609 return MarkAsSimd128(node), VisitI16x8Sub(node); |
1604 case IrOpcode::kI16x8SubSaturateS: | 1610 case IrOpcode::kI16x8SubSaturateS: |
1605 return MarkAsSimd128(node), VisitI16x8SubSaturateS(node); | 1611 return MarkAsSimd128(node), VisitI16x8SubSaturateS(node); |
1606 case IrOpcode::kI16x8Mul: | 1612 case IrOpcode::kI16x8Mul: |
1607 return MarkAsSimd128(node), VisitI16x8Mul(node); | 1613 return MarkAsSimd128(node), VisitI16x8Mul(node); |
1608 case IrOpcode::kI16x8MinS: | 1614 case IrOpcode::kI16x8MinS: |
1609 return MarkAsSimd128(node), VisitI16x8MinS(node); | 1615 return MarkAsSimd128(node), VisitI16x8MinS(node); |
1610 case IrOpcode::kI16x8MaxS: | 1616 case IrOpcode::kI16x8MaxS: |
1611 return MarkAsSimd128(node), VisitI16x8MaxS(node); | 1617 return MarkAsSimd128(node), VisitI16x8MaxS(node); |
(...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2142 | 2148 |
2143 void InstructionSelector::VisitF32x4Abs(Node* node) { UNIMPLEMENTED(); } | 2149 void InstructionSelector::VisitF32x4Abs(Node* node) { UNIMPLEMENTED(); } |
2144 | 2150 |
2145 void InstructionSelector::VisitF32x4Neg(Node* node) { UNIMPLEMENTED(); } | 2151 void InstructionSelector::VisitF32x4Neg(Node* node) { UNIMPLEMENTED(); } |
2146 | 2152 |
2147 void InstructionSelector::VisitF32x4RecipSqrtApprox(Node* node) { | 2153 void InstructionSelector::VisitF32x4RecipSqrtApprox(Node* node) { |
2148 UNIMPLEMENTED(); | 2154 UNIMPLEMENTED(); |
2149 } | 2155 } |
2150 | 2156 |
2151 void InstructionSelector::VisitF32x4Add(Node* node) { UNIMPLEMENTED(); } | 2157 void InstructionSelector::VisitF32x4Add(Node* node) { UNIMPLEMENTED(); } |
| 2158 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64 |
2152 | 2159 |
| 2160 #if !V8_TARGET_ARCH_ARM |
| 2161 void InstructionSelector::VisitF32x4AddHoriz(Node* node) { UNIMPLEMENTED(); } |
| 2162 #endif // !V8_TARGET_ARCH_ARM |
| 2163 |
| 2164 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64 |
2153 void InstructionSelector::VisitF32x4Sub(Node* node) { UNIMPLEMENTED(); } | 2165 void InstructionSelector::VisitF32x4Sub(Node* node) { UNIMPLEMENTED(); } |
2154 | 2166 |
2155 void InstructionSelector::VisitF32x4Mul(Node* node) { UNIMPLEMENTED(); } | 2167 void InstructionSelector::VisitF32x4Mul(Node* node) { UNIMPLEMENTED(); } |
2156 | 2168 |
2157 void InstructionSelector::VisitF32x4Max(Node* node) { UNIMPLEMENTED(); } | 2169 void InstructionSelector::VisitF32x4Max(Node* node) { UNIMPLEMENTED(); } |
2158 | 2170 |
2159 void InstructionSelector::VisitF32x4Min(Node* node) { UNIMPLEMENTED(); } | 2171 void InstructionSelector::VisitF32x4Min(Node* node) { UNIMPLEMENTED(); } |
2160 | 2172 |
2161 void InstructionSelector::VisitF32x4RecipApprox(Node* node) { UNIMPLEMENTED(); } | 2173 void InstructionSelector::VisitF32x4RecipApprox(Node* node) { UNIMPLEMENTED(); } |
2162 | 2174 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2200 void InstructionSelector::VisitI32x4Ne(Node* node) { UNIMPLEMENTED(); } | 2212 void InstructionSelector::VisitI32x4Ne(Node* node) { UNIMPLEMENTED(); } |
2201 | 2213 |
2202 void InstructionSelector::VisitI32x4MinU(Node* node) { UNIMPLEMENTED(); } | 2214 void InstructionSelector::VisitI32x4MinU(Node* node) { UNIMPLEMENTED(); } |
2203 | 2215 |
2204 void InstructionSelector::VisitI32x4MaxU(Node* node) { UNIMPLEMENTED(); } | 2216 void InstructionSelector::VisitI32x4MaxU(Node* node) { UNIMPLEMENTED(); } |
2205 | 2217 |
2206 void InstructionSelector::VisitI32x4ShrU(Node* node) { UNIMPLEMENTED(); } | 2218 void InstructionSelector::VisitI32x4ShrU(Node* node) { UNIMPLEMENTED(); } |
2207 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && | 2219 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && |
2208 // !V8_TARGET_ARCH_MIPS64 | 2220 // !V8_TARGET_ARCH_MIPS64 |
2209 | 2221 |
| 2222 #if !V8_TARGET_ARCH_ARM |
| 2223 void InstructionSelector::VisitI32x4AddHoriz(Node* node) { UNIMPLEMENTED(); } |
| 2224 #endif // !V8_TARGET_ARCH_ARM |
| 2225 |
2210 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64 | 2226 #if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64 |
2211 void InstructionSelector::VisitI32x4SConvertF32x4(Node* node) { | 2227 void InstructionSelector::VisitI32x4SConvertF32x4(Node* node) { |
2212 UNIMPLEMENTED(); | 2228 UNIMPLEMENTED(); |
2213 } | 2229 } |
2214 | 2230 |
2215 void InstructionSelector::VisitI32x4UConvertF32x4(Node* node) { | 2231 void InstructionSelector::VisitI32x4UConvertF32x4(Node* node) { |
2216 UNIMPLEMENTED(); | 2232 UNIMPLEMENTED(); |
2217 } | 2233 } |
2218 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64 | 2234 #endif // !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64 |
2219 | 2235 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2254 | 2270 |
2255 void InstructionSelector::VisitI16x8Shl(Node* node) { UNIMPLEMENTED(); } | 2271 void InstructionSelector::VisitI16x8Shl(Node* node) { UNIMPLEMENTED(); } |
2256 | 2272 |
2257 void InstructionSelector::VisitI16x8ShrS(Node* node) { UNIMPLEMENTED(); } | 2273 void InstructionSelector::VisitI16x8ShrS(Node* node) { UNIMPLEMENTED(); } |
2258 | 2274 |
2259 void InstructionSelector::VisitI16x8Add(Node* node) { UNIMPLEMENTED(); } | 2275 void InstructionSelector::VisitI16x8Add(Node* node) { UNIMPLEMENTED(); } |
2260 | 2276 |
2261 void InstructionSelector::VisitI16x8AddSaturateS(Node* node) { | 2277 void InstructionSelector::VisitI16x8AddSaturateS(Node* node) { |
2262 UNIMPLEMENTED(); | 2278 UNIMPLEMENTED(); |
2263 } | 2279 } |
| 2280 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM |
2264 | 2281 |
| 2282 #if !V8_TARGET_ARCH_ARM |
| 2283 void InstructionSelector::VisitI16x8AddHoriz(Node* node) { UNIMPLEMENTED(); } |
| 2284 #endif // !V8_TARGET_ARCH_ARM |
| 2285 |
| 2286 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM |
2265 void InstructionSelector::VisitI16x8Sub(Node* node) { UNIMPLEMENTED(); } | 2287 void InstructionSelector::VisitI16x8Sub(Node* node) { UNIMPLEMENTED(); } |
2266 | 2288 |
2267 void InstructionSelector::VisitI16x8SubSaturateS(Node* node) { | 2289 void InstructionSelector::VisitI16x8SubSaturateS(Node* node) { |
2268 UNIMPLEMENTED(); | 2290 UNIMPLEMENTED(); |
2269 } | 2291 } |
2270 | 2292 |
2271 void InstructionSelector::VisitI16x8Mul(Node* node) { UNIMPLEMENTED(); } | 2293 void InstructionSelector::VisitI16x8Mul(Node* node) { UNIMPLEMENTED(); } |
2272 | 2294 |
2273 void InstructionSelector::VisitI16x8MinS(Node* node) { UNIMPLEMENTED(); } | 2295 void InstructionSelector::VisitI16x8MinS(Node* node) { UNIMPLEMENTED(); } |
2274 | 2296 |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2348 UNIMPLEMENTED(); | 2370 UNIMPLEMENTED(); |
2349 } | 2371 } |
2350 #endif // !V8_TARGET_ARCH_ARM | 2372 #endif // !V8_TARGET_ARCH_ARM |
2351 | 2373 |
2352 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM | 2374 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM |
2353 void InstructionSelector::VisitI8x16Add(Node* node) { UNIMPLEMENTED(); } | 2375 void InstructionSelector::VisitI8x16Add(Node* node) { UNIMPLEMENTED(); } |
2354 | 2376 |
2355 void InstructionSelector::VisitI8x16AddSaturateS(Node* node) { | 2377 void InstructionSelector::VisitI8x16AddSaturateS(Node* node) { |
2356 UNIMPLEMENTED(); | 2378 UNIMPLEMENTED(); |
2357 } | 2379 } |
| 2380 #endif // !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM |
2358 | 2381 |
| 2382 #if !V8_TARGET_ARCH_X64 && !V8_TARGET_ARCH_ARM |
2359 void InstructionSelector::VisitI8x16Sub(Node* node) { UNIMPLEMENTED(); } | 2383 void InstructionSelector::VisitI8x16Sub(Node* node) { UNIMPLEMENTED(); } |
2360 | 2384 |
2361 void InstructionSelector::VisitI8x16SubSaturateS(Node* node) { | 2385 void InstructionSelector::VisitI8x16SubSaturateS(Node* node) { |
2362 UNIMPLEMENTED(); | 2386 UNIMPLEMENTED(); |
2363 } | 2387 } |
2364 | 2388 |
2365 void InstructionSelector::VisitI8x16MinS(Node* node) { UNIMPLEMENTED(); } | 2389 void InstructionSelector::VisitI8x16MinS(Node* node) { UNIMPLEMENTED(); } |
2366 | 2390 |
2367 void InstructionSelector::VisitI8x16MaxS(Node* node) { UNIMPLEMENTED(); } | 2391 void InstructionSelector::VisitI8x16MaxS(Node* node) { UNIMPLEMENTED(); } |
2368 | 2392 |
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2915 return new (instruction_zone()) FrameStateDescriptor( | 2939 return new (instruction_zone()) FrameStateDescriptor( |
2916 instruction_zone(), state_info.type(), state_info.bailout_id(), | 2940 instruction_zone(), state_info.type(), state_info.bailout_id(), |
2917 state_info.state_combine(), parameters, locals, stack, | 2941 state_info.state_combine(), parameters, locals, stack, |
2918 state_info.shared_info(), outer_state); | 2942 state_info.shared_info(), outer_state); |
2919 } | 2943 } |
2920 | 2944 |
2921 | 2945 |
2922 } // namespace compiler | 2946 } // namespace compiler |
2923 } // namespace internal | 2947 } // namespace internal |
2924 } // namespace v8 | 2948 } // namespace v8 |
OLD | NEW |