| 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 |