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 "src/isolate-inl.h" | 7 #include "src/isolate-inl.h" |
8 | 8 |
9 #include "src/base/platform/platform.h" | 9 #include "src/base/platform/platform.h" |
10 | 10 |
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
504 break; | 504 break; |
505 // kExprI64Xor: | 505 // kExprI64Xor: |
506 case wasm::kExprI64Xor: | 506 case wasm::kExprI64Xor: |
507 op = m->Word64Xor(); | 507 op = m->Word64Xor(); |
508 break; | 508 break; |
509 // kExprI64Shl: | 509 // kExprI64Shl: |
510 case wasm::kExprI64Shl: | 510 case wasm::kExprI64Shl: |
511 op = m->Word64Shl(); | 511 op = m->Word64Shl(); |
512 break; | 512 break; |
513 // kExprI64ShrU: | 513 // kExprI64ShrU: |
| 514 case wasm::kExprI64ShrU: |
| 515 op = m->Word64Shr(); |
| 516 break; |
514 // kExprI64ShrS: | 517 // kExprI64ShrS: |
| 518 case wasm::kExprI64ShrS: |
| 519 op = m->Word64Sar(); |
| 520 break; |
515 // kExprI64Eq: | 521 // kExprI64Eq: |
516 case wasm::kExprI64Eq: | 522 case wasm::kExprI64Eq: |
517 op = m->Word64Equal(); | 523 op = m->Word64Equal(); |
518 break; | 524 break; |
519 // kExprI64Ne: | 525 // kExprI64Ne: |
520 case wasm::kExprI64Ne: | 526 case wasm::kExprI64Ne: |
521 return Invert(Binop(wasm::kExprI64Eq, left, right)); | 527 return Invert(Binop(wasm::kExprI64Eq, left, right)); |
522 // kExprI64LtS: | 528 // kExprI64LtS: |
523 case wasm::kExprI64LtS: | 529 case wasm::kExprI64LtS: |
524 op = m->Int64LessThan(); | 530 op = m->Int64LessThan(); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
592 | 598 |
593 Node* rem = graph()->NewNode(m->Int64Mod(), left, right, d.if_false); | 599 Node* rem = graph()->NewNode(m->Int64Mod(), left, right, d.if_false); |
594 | 600 |
595 return d.Phi(MachineRepresentation::kWord64, jsgraph()->Int64Constant(0), | 601 return d.Phi(MachineRepresentation::kWord64, jsgraph()->Int64Constant(0), |
596 rem); | 602 rem); |
597 } | 603 } |
598 case wasm::kExprI64RemU: | 604 case wasm::kExprI64RemU: |
599 op = m->Uint64Mod(); | 605 op = m->Uint64Mod(); |
600 return graph()->NewNode(op, left, right, | 606 return graph()->NewNode(op, left, right, |
601 trap_->ZeroCheck64(kTrapRemByZero, right)); | 607 trap_->ZeroCheck64(kTrapRemByZero, right)); |
602 case wasm::kExprI64ShrU: | |
603 op = m->Word64Shr(); | |
604 break; | |
605 case wasm::kExprI64ShrS: | |
606 op = m->Word64Sar(); | |
607 break; | |
608 case wasm::kExprI64Ror: | 608 case wasm::kExprI64Ror: |
609 op = m->Word64Ror(); | 609 op = m->Word64Ror(); |
610 break; | 610 break; |
611 case wasm::kExprI64Rol: | 611 case wasm::kExprI64Rol: |
612 return BuildI64Rol(left, right); | 612 return BuildI64Rol(left, right); |
613 #endif | 613 #endif |
614 | 614 |
615 case wasm::kExprF32CopySign: | 615 case wasm::kExprF32CopySign: |
616 return BuildF32CopySign(left, right); | 616 return BuildF32CopySign(left, right); |
617 case wasm::kExprF64CopySign: | 617 case wasm::kExprF64CopySign: |
(...skipping 1856 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2474 module_env->module->GetName(function.name_offset)); | 2474 module_env->module->GetName(function.name_offset)); |
2475 } | 2475 } |
2476 | 2476 |
2477 return code; | 2477 return code; |
2478 } | 2478 } |
2479 | 2479 |
2480 | 2480 |
2481 } // namespace compiler | 2481 } // namespace compiler |
2482 } // namespace internal | 2482 } // namespace internal |
2483 } // namespace v8 | 2483 } // namespace v8 |
OLD | NEW |