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 | 6 |
7 #include "src/arm/macro-assembler-arm.h" | 7 #include "src/arm/macro-assembler-arm.h" |
8 #include "src/compilation-info.h" | 8 #include "src/compilation-info.h" |
9 #include "src/compiler/code-generator-impl.h" | 9 #include "src/compiler/code-generator-impl.h" |
10 #include "src/compiler/gap-resolver.h" | 10 #include "src/compiler/gap-resolver.h" |
(...skipping 1509 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1520 break; | 1520 break; |
1521 } | 1521 } |
1522 case kArmFloat32x4FromInt32x4: { | 1522 case kArmFloat32x4FromInt32x4: { |
1523 __ vcvt_f32_s32(i.OutputSimd128Register(), i.InputSimd128Register(0)); | 1523 __ vcvt_f32_s32(i.OutputSimd128Register(), i.InputSimd128Register(0)); |
1524 break; | 1524 break; |
1525 } | 1525 } |
1526 case kArmFloat32x4FromUint32x4: { | 1526 case kArmFloat32x4FromUint32x4: { |
1527 __ vcvt_f32_u32(i.OutputSimd128Register(), i.InputSimd128Register(0)); | 1527 __ vcvt_f32_u32(i.OutputSimd128Register(), i.InputSimd128Register(0)); |
1528 break; | 1528 break; |
1529 } | 1529 } |
| 1530 case kArmFloat32x4Abs: { |
| 1531 __ vabs(i.OutputSimd128Register(), i.InputSimd128Register(0)); |
| 1532 break; |
| 1533 } |
| 1534 case kArmFloat32x4Neg: { |
| 1535 __ vneg(i.OutputSimd128Register(), i.InputSimd128Register(0)); |
| 1536 break; |
| 1537 } |
1530 case kArmFloat32x4Add: { | 1538 case kArmFloat32x4Add: { |
1531 __ vadd(i.OutputSimd128Register(), i.InputSimd128Register(0), | 1539 __ vadd(i.OutputSimd128Register(), i.InputSimd128Register(0), |
1532 i.InputSimd128Register(1)); | 1540 i.InputSimd128Register(1)); |
1533 break; | 1541 break; |
1534 } | 1542 } |
1535 case kArmFloat32x4Sub: { | 1543 case kArmFloat32x4Sub: { |
1536 __ vsub(i.OutputSimd128Register(), i.InputSimd128Register(0), | 1544 __ vsub(i.OutputSimd128Register(), i.InputSimd128Register(0), |
1537 i.InputSimd128Register(1)); | 1545 i.InputSimd128Register(1)); |
1538 break; | 1546 break; |
1539 } | 1547 } |
| 1548 case kArmFloat32x4Eq: { |
| 1549 __ vceq(i.OutputSimd128Register(), i.InputSimd128Register(0), |
| 1550 i.InputSimd128Register(1)); |
| 1551 break; |
| 1552 } |
| 1553 case kArmFloat32x4Ne: { |
| 1554 Simd128Register dst = i.OutputSimd128Register(); |
| 1555 __ vceq(dst, i.InputSimd128Register(0), i.InputSimd128Register(1)); |
| 1556 __ vmvn(dst, dst); |
| 1557 break; |
| 1558 } |
1540 case kArmInt32x4Splat: { | 1559 case kArmInt32x4Splat: { |
1541 __ vdup(Neon32, i.OutputSimd128Register(), i.InputRegister(0)); | 1560 __ vdup(Neon32, i.OutputSimd128Register(), i.InputRegister(0)); |
1542 break; | 1561 break; |
1543 } | 1562 } |
1544 case kArmInt32x4ExtractLane: { | 1563 case kArmInt32x4ExtractLane: { |
1545 __ ExtractLane(i.OutputRegister(), i.InputSimd128Register(0), NeonS32, | 1564 __ ExtractLane(i.OutputRegister(), i.InputSimd128Register(0), NeonS32, |
1546 i.InputInt8(1)); | 1565 i.InputInt8(1)); |
1547 break; | 1566 break; |
1548 } | 1567 } |
1549 case kArmInt32x4ReplaceLane: { | 1568 case kArmInt32x4ReplaceLane: { |
(...skipping 700 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2250 padding_size -= v8::internal::Assembler::kInstrSize; | 2269 padding_size -= v8::internal::Assembler::kInstrSize; |
2251 } | 2270 } |
2252 } | 2271 } |
2253 } | 2272 } |
2254 | 2273 |
2255 #undef __ | 2274 #undef __ |
2256 | 2275 |
2257 } // namespace compiler | 2276 } // namespace compiler |
2258 } // namespace internal | 2277 } // namespace internal |
2259 } // namespace v8 | 2278 } // namespace v8 |
OLD | NEW |