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 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
507 // kExprI64ShrU: | 507 // kExprI64ShrU: |
508 // kExprI64ShrS: | 508 // kExprI64ShrS: |
509 // kExprI64Eq: | 509 // kExprI64Eq: |
510 case wasm::kExprI64Eq: | 510 case wasm::kExprI64Eq: |
511 op = m->Word64Equal(); | 511 op = m->Word64Equal(); |
512 break; | 512 break; |
513 // kExprI64Ne: | 513 // kExprI64Ne: |
514 case wasm::kExprI64Ne: | 514 case wasm::kExprI64Ne: |
515 return Invert(Binop(wasm::kExprI64Eq, left, right)); | 515 return Invert(Binop(wasm::kExprI64Eq, left, right)); |
516 // kExprI64LtS: | 516 // kExprI64LtS: |
517 // kExprI64LeS: | 517 case wasm::kExprI64LtS: |
518 // kExprI64LtU: | 518 op = m->Int64LessThan(); |
519 // kExprI64LeU: | 519 break; |
520 // kExprI64GtS: | 520 case wasm::kExprI64LeS: |
521 // kExprI64GeS: | 521 op = m->Int64LessThanOrEqual(); |
522 // kExprI64GtU: | 522 break; |
523 // kExprI64GeU: | 523 case wasm::kExprI64LtU: |
| 524 op = m->Uint64LessThan(); |
| 525 break; |
| 526 case wasm::kExprI64LeU: |
| 527 op = m->Uint64LessThanOrEqual(); |
| 528 break; |
| 529 case wasm::kExprI64GtS: |
| 530 op = m->Int64LessThan(); |
| 531 std::swap(left, right); |
| 532 break; |
| 533 case wasm::kExprI64GeS: |
| 534 op = m->Int64LessThanOrEqual(); |
| 535 std::swap(left, right); |
| 536 break; |
| 537 case wasm::kExprI64GtU: |
| 538 op = m->Uint64LessThan(); |
| 539 std::swap(left, right); |
| 540 break; |
| 541 case wasm::kExprI64GeU: |
| 542 op = m->Uint64LessThanOrEqual(); |
| 543 std::swap(left, right); |
| 544 break; |
524 | 545 |
525 // kExprI32ConvertI64: | 546 // kExprI32ConvertI64: |
526 // kExprI64SConvertI32: | 547 // kExprI64SConvertI32: |
527 // kExprI64UConvertI32: | 548 // kExprI64UConvertI32: |
528 | 549 |
529 // kExprF64ReinterpretI64: | 550 // kExprF64ReinterpretI64: |
530 // kExprI64ReinterpretF64: | 551 // kExprI64ReinterpretF64: |
531 | 552 |
532 // kExprI64Clz: | 553 // kExprI64Clz: |
533 // kExprI64Ctz: | 554 // kExprI64Ctz: |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
593 trap_->ZeroCheck64(kTrapRemByZero, right)); | 614 trap_->ZeroCheck64(kTrapRemByZero, right)); |
594 case wasm::kExprI64Shl: | 615 case wasm::kExprI64Shl: |
595 op = m->Word64Shl(); | 616 op = m->Word64Shl(); |
596 break; | 617 break; |
597 case wasm::kExprI64ShrU: | 618 case wasm::kExprI64ShrU: |
598 op = m->Word64Shr(); | 619 op = m->Word64Shr(); |
599 break; | 620 break; |
600 case wasm::kExprI64ShrS: | 621 case wasm::kExprI64ShrS: |
601 op = m->Word64Sar(); | 622 op = m->Word64Sar(); |
602 break; | 623 break; |
603 case wasm::kExprI64LtS: | |
604 op = m->Int64LessThan(); | |
605 break; | |
606 case wasm::kExprI64LeS: | |
607 op = m->Int64LessThanOrEqual(); | |
608 break; | |
609 case wasm::kExprI64LtU: | |
610 op = m->Uint64LessThan(); | |
611 break; | |
612 case wasm::kExprI64LeU: | |
613 op = m->Uint64LessThanOrEqual(); | |
614 break; | |
615 case wasm::kExprI64GtS: | |
616 op = m->Int64LessThan(); | |
617 std::swap(left, right); | |
618 break; | |
619 case wasm::kExprI64GeS: | |
620 op = m->Int64LessThanOrEqual(); | |
621 std::swap(left, right); | |
622 break; | |
623 case wasm::kExprI64GtU: | |
624 op = m->Uint64LessThan(); | |
625 std::swap(left, right); | |
626 break; | |
627 case wasm::kExprI64GeU: | |
628 op = m->Uint64LessThanOrEqual(); | |
629 std::swap(left, right); | |
630 break; | |
631 #endif | 624 #endif |
632 | 625 |
633 case wasm::kExprF32CopySign: | 626 case wasm::kExprF32CopySign: |
634 return BuildF32CopySign(left, right); | 627 return BuildF32CopySign(left, right); |
635 case wasm::kExprF64CopySign: | 628 case wasm::kExprF64CopySign: |
636 return BuildF64CopySign(left, right); | 629 return BuildF64CopySign(left, right); |
637 case wasm::kExprF32Add: | 630 case wasm::kExprF32Add: |
638 op = m->Float32Add(); | 631 op = m->Float32Add(); |
639 break; | 632 break; |
640 case wasm::kExprF32Sub: | 633 case wasm::kExprF32Sub: |
(...skipping 1613 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2254 module_env->module->GetName(function.name_offset)); | 2247 module_env->module->GetName(function.name_offset)); |
2255 } | 2248 } |
2256 | 2249 |
2257 return code; | 2250 return code; |
2258 } | 2251 } |
2259 | 2252 |
2260 | 2253 |
2261 } // namespace compiler | 2254 } // namespace compiler |
2262 } // namespace internal | 2255 } // namespace internal |
2263 } // namespace v8 | 2256 } // namespace v8 |
OLD | NEW |