| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/wasm-compiler.h" | 5 #include "src/compiler/wasm-compiler.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "src/isolate-inl.h" | 9 #include "src/isolate-inl.h" |
| 10 | 10 |
| (...skipping 3569 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3580 return graph()->NewNode( | 3580 return graph()->NewNode( |
| 3581 jsgraph()->machine()->Uint8x16GreaterThanOrEqual(), inputs[1], | 3581 jsgraph()->machine()->Uint8x16GreaterThanOrEqual(), inputs[1], |
| 3582 inputs[0]); | 3582 inputs[0]); |
| 3583 case wasm::kExprI8x16GtU: | 3583 case wasm::kExprI8x16GtU: |
| 3584 return graph()->NewNode(jsgraph()->machine()->Uint8x16GreaterThan(), | 3584 return graph()->NewNode(jsgraph()->machine()->Uint8x16GreaterThan(), |
| 3585 inputs[0], inputs[1]); | 3585 inputs[0], inputs[1]); |
| 3586 case wasm::kExprI8x16GeU: | 3586 case wasm::kExprI8x16GeU: |
| 3587 return graph()->NewNode( | 3587 return graph()->NewNode( |
| 3588 jsgraph()->machine()->Uint8x16GreaterThanOrEqual(), inputs[0], | 3588 jsgraph()->machine()->Uint8x16GreaterThanOrEqual(), inputs[0], |
| 3589 inputs[1]); | 3589 inputs[1]); |
| 3590 case wasm::kExprS32x4Select: | |
| 3591 return graph()->NewNode(jsgraph()->machine()->Simd32x4Select(), inputs[0], | |
| 3592 inputs[1], inputs[2]); | |
| 3593 case wasm::kExprS16x8Select: | |
| 3594 return graph()->NewNode(jsgraph()->machine()->Simd16x8Select(), inputs[0], | |
| 3595 inputs[1], inputs[2]); | |
| 3596 case wasm::kExprS8x16Select: | |
| 3597 return graph()->NewNode(jsgraph()->machine()->Simd8x16Select(), inputs[0], | |
| 3598 inputs[1], inputs[2]); | |
| 3599 case wasm::kExprS128And: | 3590 case wasm::kExprS128And: |
| 3600 return graph()->NewNode(jsgraph()->machine()->Simd128And(), inputs[0], | 3591 return graph()->NewNode(jsgraph()->machine()->Simd128And(), inputs[0], |
| 3601 inputs[1]); | 3592 inputs[1]); |
| 3602 case wasm::kExprS128Or: | 3593 case wasm::kExprS128Or: |
| 3603 return graph()->NewNode(jsgraph()->machine()->Simd128Or(), inputs[0], | 3594 return graph()->NewNode(jsgraph()->machine()->Simd128Or(), inputs[0], |
| 3604 inputs[1]); | 3595 inputs[1]); |
| 3605 case wasm::kExprS128Xor: | 3596 case wasm::kExprS128Xor: |
| 3606 return graph()->NewNode(jsgraph()->machine()->Simd128Xor(), inputs[0], | 3597 return graph()->NewNode(jsgraph()->machine()->Simd128Xor(), inputs[0], |
| 3607 inputs[1]); | 3598 inputs[1]); |
| 3608 case wasm::kExprS128Not: | 3599 case wasm::kExprS128Not: |
| 3609 return graph()->NewNode(jsgraph()->machine()->Simd128Not(), inputs[0]); | 3600 return graph()->NewNode(jsgraph()->machine()->Simd128Not(), inputs[0]); |
| 3601 case wasm::kExprS32x4Select: |
| 3602 return graph()->NewNode(jsgraph()->machine()->Simd32x4Select(), inputs[0], |
| 3603 inputs[1], inputs[2]); |
| 3604 case wasm::kExprS16x8Select: |
| 3605 return graph()->NewNode(jsgraph()->machine()->Simd16x8Select(), inputs[0], |
| 3606 inputs[1], inputs[2]); |
| 3607 case wasm::kExprS8x16Select: |
| 3608 return graph()->NewNode(jsgraph()->machine()->Simd8x16Select(), inputs[0], |
| 3609 inputs[1], inputs[2]); |
| 3610 case wasm::kExprS1x4AnyTrue: |
| 3611 return graph()->NewNode(jsgraph()->machine()->Simd1x4AnyTrue(), |
| 3612 inputs[0]); |
| 3613 case wasm::kExprS1x4AllTrue: |
| 3614 return graph()->NewNode(jsgraph()->machine()->Simd1x4AllTrue(), |
| 3615 inputs[0]); |
| 3616 case wasm::kExprS1x8AnyTrue: |
| 3617 return graph()->NewNode(jsgraph()->machine()->Simd1x8AnyTrue(), |
| 3618 inputs[0]); |
| 3619 case wasm::kExprS1x8AllTrue: |
| 3620 return graph()->NewNode(jsgraph()->machine()->Simd1x8AllTrue(), |
| 3621 inputs[0]); |
| 3622 case wasm::kExprS1x16AnyTrue: |
| 3623 return graph()->NewNode(jsgraph()->machine()->Simd1x16AnyTrue(), |
| 3624 inputs[0]); |
| 3625 case wasm::kExprS1x16AllTrue: |
| 3626 return graph()->NewNode(jsgraph()->machine()->Simd1x16AllTrue(), |
| 3627 inputs[0]); |
| 3610 default: | 3628 default: |
| 3611 return graph()->NewNode(UnsupportedOpcode(opcode), nullptr); | 3629 return graph()->NewNode(UnsupportedOpcode(opcode), nullptr); |
| 3612 } | 3630 } |
| 3613 } | 3631 } |
| 3614 | 3632 |
| 3615 Node* WasmGraphBuilder::SimdLaneOp(wasm::WasmOpcode opcode, uint8_t lane, | 3633 Node* WasmGraphBuilder::SimdLaneOp(wasm::WasmOpcode opcode, uint8_t lane, |
| 3616 const NodeVector& inputs) { | 3634 const NodeVector& inputs) { |
| 3617 has_simd_ = true; | 3635 has_simd_ = true; |
| 3618 switch (opcode) { | 3636 switch (opcode) { |
| 3619 case wasm::kExprF32x4ExtractLane: | 3637 case wasm::kExprF32x4ExtractLane: |
| (...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4134 function_->code_start_offset), | 4152 function_->code_start_offset), |
| 4135 compile_ms); | 4153 compile_ms); |
| 4136 } | 4154 } |
| 4137 | 4155 |
| 4138 return code; | 4156 return code; |
| 4139 } | 4157 } |
| 4140 | 4158 |
| 4141 } // namespace compiler | 4159 } // namespace compiler |
| 4142 } // namespace internal | 4160 } // namespace internal |
| 4143 } // namespace v8 | 4161 } // namespace v8 |
| OLD | NEW |