Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: src/compiler/arm64/instruction-selector-arm64.cc

Issue 2216383002: TurboFan: Introduce TaggedSigned and TaggedPointer representations. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Mips compile fix. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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-impl.h" 5 #include "src/compiler/instruction-selector-impl.h"
6 #include "src/compiler/node-matchers.h" 6 #include "src/compiler/node-matchers.h"
7 #include "src/compiler/node-properties.h" 7 #include "src/compiler/node-properties.h"
8 8
9 namespace v8 { 9 namespace v8 {
10 namespace internal { 10 namespace internal {
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 immediate_mode = kLoadStoreImm8; 584 immediate_mode = kLoadStoreImm8;
585 break; 585 break;
586 case MachineRepresentation::kWord16: 586 case MachineRepresentation::kWord16:
587 opcode = load_rep.IsSigned() ? kArm64Ldrsh : kArm64Ldrh; 587 opcode = load_rep.IsSigned() ? kArm64Ldrsh : kArm64Ldrh;
588 immediate_mode = kLoadStoreImm16; 588 immediate_mode = kLoadStoreImm16;
589 break; 589 break;
590 case MachineRepresentation::kWord32: 590 case MachineRepresentation::kWord32:
591 opcode = kArm64LdrW; 591 opcode = kArm64LdrW;
592 immediate_mode = kLoadStoreImm32; 592 immediate_mode = kLoadStoreImm32;
593 break; 593 break;
594 case MachineRepresentation::kTaggedSigned: // Fall through.
595 case MachineRepresentation::kTaggedPointer: // Fall through.
594 case MachineRepresentation::kTagged: // Fall through. 596 case MachineRepresentation::kTagged: // Fall through.
595 case MachineRepresentation::kWord64: 597 case MachineRepresentation::kWord64:
596 opcode = kArm64Ldr; 598 opcode = kArm64Ldr;
597 immediate_mode = kLoadStoreImm64; 599 immediate_mode = kLoadStoreImm64;
598 break; 600 break;
599 case MachineRepresentation::kSimd128: // Fall through. 601 case MachineRepresentation::kSimd128: // Fall through.
600 case MachineRepresentation::kNone: 602 case MachineRepresentation::kNone:
601 UNREACHABLE(); 603 UNREACHABLE();
602 return; 604 return;
603 } 605 }
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
674 immediate_mode = kLoadStoreImm8; 676 immediate_mode = kLoadStoreImm8;
675 break; 677 break;
676 case MachineRepresentation::kWord16: 678 case MachineRepresentation::kWord16:
677 opcode = kArm64Strh; 679 opcode = kArm64Strh;
678 immediate_mode = kLoadStoreImm16; 680 immediate_mode = kLoadStoreImm16;
679 break; 681 break;
680 case MachineRepresentation::kWord32: 682 case MachineRepresentation::kWord32:
681 opcode = kArm64StrW; 683 opcode = kArm64StrW;
682 immediate_mode = kLoadStoreImm32; 684 immediate_mode = kLoadStoreImm32;
683 break; 685 break;
686 case MachineRepresentation::kTaggedSigned: // Fall through.
687 case MachineRepresentation::kTaggedPointer: // Fall through.
684 case MachineRepresentation::kTagged: // Fall through. 688 case MachineRepresentation::kTagged: // Fall through.
685 case MachineRepresentation::kWord64: 689 case MachineRepresentation::kWord64:
686 opcode = kArm64Str; 690 opcode = kArm64Str;
687 immediate_mode = kLoadStoreImm64; 691 immediate_mode = kLoadStoreImm64;
688 break; 692 break;
689 case MachineRepresentation::kSimd128: // Fall through. 693 case MachineRepresentation::kSimd128: // Fall through.
690 case MachineRepresentation::kNone: 694 case MachineRepresentation::kNone:
691 UNREACHABLE(); 695 UNREACHABLE();
692 return; 696 return;
693 } 697 }
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
739 case MachineRepresentation::kWord64: 743 case MachineRepresentation::kWord64:
740 opcode = kCheckedLoadWord64; 744 opcode = kCheckedLoadWord64;
741 break; 745 break;
742 case MachineRepresentation::kFloat32: 746 case MachineRepresentation::kFloat32:
743 opcode = kCheckedLoadFloat32; 747 opcode = kCheckedLoadFloat32;
744 break; 748 break;
745 case MachineRepresentation::kFloat64: 749 case MachineRepresentation::kFloat64:
746 opcode = kCheckedLoadFloat64; 750 opcode = kCheckedLoadFloat64;
747 break; 751 break;
748 case MachineRepresentation::kBit: // Fall through. 752 case MachineRepresentation::kBit: // Fall through.
753 case MachineRepresentation::kTaggedSigned: // Fall through.
754 case MachineRepresentation::kTaggedPointer: // Fall through.
749 case MachineRepresentation::kTagged: // Fall through. 755 case MachineRepresentation::kTagged: // Fall through.
750 case MachineRepresentation::kSimd128: // Fall through. 756 case MachineRepresentation::kSimd128: // Fall through.
751 case MachineRepresentation::kNone: 757 case MachineRepresentation::kNone:
752 UNREACHABLE(); 758 UNREACHABLE();
753 return; 759 return;
754 } 760 }
755 // If the length is a constant power of two, allow the code generator to 761 // If the length is a constant power of two, allow the code generator to
756 // pick a more efficient bounds check sequence by passing the length as an 762 // pick a more efficient bounds check sequence by passing the length as an
757 // immediate. 763 // immediate.
758 if (length->opcode() == IrOpcode::kInt32Constant) { 764 if (length->opcode() == IrOpcode::kInt32Constant) {
(...skipping 30 matching lines...) Expand all
789 case MachineRepresentation::kWord64: 795 case MachineRepresentation::kWord64:
790 opcode = kCheckedStoreWord64; 796 opcode = kCheckedStoreWord64;
791 break; 797 break;
792 case MachineRepresentation::kFloat32: 798 case MachineRepresentation::kFloat32:
793 opcode = kCheckedStoreFloat32; 799 opcode = kCheckedStoreFloat32;
794 break; 800 break;
795 case MachineRepresentation::kFloat64: 801 case MachineRepresentation::kFloat64:
796 opcode = kCheckedStoreFloat64; 802 opcode = kCheckedStoreFloat64;
797 break; 803 break;
798 case MachineRepresentation::kBit: // Fall through. 804 case MachineRepresentation::kBit: // Fall through.
805 case MachineRepresentation::kTaggedSigned: // Fall through.
806 case MachineRepresentation::kTaggedPointer: // Fall through.
799 case MachineRepresentation::kTagged: // Fall through. 807 case MachineRepresentation::kTagged: // Fall through.
800 case MachineRepresentation::kSimd128: // Fall through. 808 case MachineRepresentation::kSimd128: // Fall through.
801 case MachineRepresentation::kNone: 809 case MachineRepresentation::kNone:
802 UNREACHABLE(); 810 UNREACHABLE();
803 return; 811 return;
804 } 812 }
805 // If the length is a constant power of two, allow the code generator to 813 // If the length is a constant power of two, allow the code generator to
806 // pick a more efficient bounds check sequence by passing the length as an 814 // pick a more efficient bounds check sequence by passing the length as an
807 // immediate. 815 // immediate.
808 if (length->opcode() == IrOpcode::kInt32Constant) { 816 if (length->opcode() == IrOpcode::kInt32Constant) {
(...skipping 1980 matching lines...) Expand 10 before | Expand all | Expand 10 after
2789 // static 2797 // static
2790 MachineOperatorBuilder::AlignmentRequirements 2798 MachineOperatorBuilder::AlignmentRequirements
2791 InstructionSelector::AlignmentRequirements() { 2799 InstructionSelector::AlignmentRequirements() {
2792 return MachineOperatorBuilder::AlignmentRequirements:: 2800 return MachineOperatorBuilder::AlignmentRequirements::
2793 FullUnalignedAccessSupport(); 2801 FullUnalignedAccessSupport();
2794 } 2802 }
2795 2803
2796 } // namespace compiler 2804 } // namespace compiler
2797 } // namespace internal 2805 } // namespace internal
2798 } // namespace v8 2806 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/arm/instruction-selector-arm.cc ('k') | src/compiler/ia32/instruction-selector-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698