| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef VM_CONSTANTS_ARM64_H_ | 5 #ifndef VM_CONSTANTS_ARM64_H_ |
| 6 #define VM_CONSTANTS_ARM64_H_ | 6 #define VM_CONSTANTS_ARM64_H_ |
| 7 | 7 |
| 8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
| 9 | 9 |
| 10 namespace dart { | 10 namespace dart { |
| (...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 SVC = ExceptionGenFixed | B0, | 323 SVC = ExceptionGenFixed | B0, |
| 324 BRK = ExceptionGenFixed | B21, | 324 BRK = ExceptionGenFixed | B21, |
| 325 HLT = ExceptionGenFixed | B22, | 325 HLT = ExceptionGenFixed | B22, |
| 326 }; | 326 }; |
| 327 | 327 |
| 328 // C3.2.4 | 328 // C3.2.4 |
| 329 enum SystemOp { | 329 enum SystemOp { |
| 330 SystemMask = 0xffc00000, | 330 SystemMask = 0xffc00000, |
| 331 SystemFixed = CompareBranchFixed | B31 | B30 | B24, | 331 SystemFixed = CompareBranchFixed | B31 | B30 | B24, |
| 332 HINT = SystemFixed | B17 | B16 | B13 | B4 | B3 | B2 | B1 | B0, | 332 HINT = SystemFixed | B17 | B16 | B13 | B4 | B3 | B2 | B1 | B0, |
| 333 CLREX = SystemFixed | B17 | B16 | B13 | B12 | B11 | B10 | B9 | B8 | |
| 334 B6 | B4 | B3 | B2 | B1 | B0, |
| 333 }; | 335 }; |
| 334 | 336 |
| 335 // C3.2.5 | 337 // C3.2.5 |
| 336 enum TestAndBranchOp { | 338 enum TestAndBranchOp { |
| 337 TestAndBranchMask = 0x7e000000, | 339 TestAndBranchMask = 0x7e000000, |
| 338 TestAndBranchFixed = CompareBranchFixed | B29 | B25, | 340 TestAndBranchFixed = CompareBranchFixed | B29 | B25, |
| 339 TBZ = TestAndBranchFixed, | 341 TBZ = TestAndBranchFixed, |
| 340 TBNZ = TestAndBranchFixed | B24, | 342 TBNZ = TestAndBranchFixed | B24, |
| 341 }; | 343 }; |
| 342 | 344 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 357 RET = BR | B22, | 359 RET = BR | B22, |
| 358 }; | 360 }; |
| 359 | 361 |
| 360 // C3.3.5 | 362 // C3.3.5 |
| 361 enum LoadRegLiteralOp { | 363 enum LoadRegLiteralOp { |
| 362 LoadRegLiteralMask = 0x3b000000, | 364 LoadRegLiteralMask = 0x3b000000, |
| 363 LoadRegLiteralFixed = LoadStoreFixed | B28, | 365 LoadRegLiteralFixed = LoadStoreFixed | B28, |
| 364 LDRpc = LoadRegLiteralFixed, | 366 LDRpc = LoadRegLiteralFixed, |
| 365 }; | 367 }; |
| 366 | 368 |
| 369 // C3.3.6 |
| 370 enum LoadStoreExclusiveOp { |
| 371 LoadStoreExclusiveMask = 0x3f000000, |
| 372 LoadStoreExclusiveFixed = B27, |
| 373 LDXR = LoadStoreExclusiveFixed | B22, |
| 374 STXR = LoadStoreExclusiveFixed, |
| 375 }; |
| 376 |
| 367 // C3.3.7-10 | 377 // C3.3.7-10 |
| 368 enum LoadStoreRegOp { | 378 enum LoadStoreRegOp { |
| 369 LoadStoreRegMask = 0x3a000000, | 379 LoadStoreRegMask = 0x3a000000, |
| 370 LoadStoreRegFixed = LoadStoreFixed | B29 | B28, | 380 LoadStoreRegFixed = LoadStoreFixed | B29 | B28, |
| 371 STR = LoadStoreRegFixed, | 381 STR = LoadStoreRegFixed, |
| 372 LDR = LoadStoreRegFixed | B22, | 382 LDR = LoadStoreRegFixed | B22, |
| 373 LDRS = LoadStoreRegFixed | B23, | 383 LDRS = LoadStoreRegFixed | B23, |
| 374 FSTR = STR | B26, | 384 FSTR = STR | B26, |
| 375 FLDR = LDR | B26, | 385 FLDR = LDR | B26, |
| 376 FSTRQ = STR | B26 | B23, | 386 FSTRQ = STR | B26 | B23, |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 609 _V(CompareAndBranch) \ | 619 _V(CompareAndBranch) \ |
| 610 _V(ConditionalBranch) \ | 620 _V(ConditionalBranch) \ |
| 611 _V(ExceptionGen) \ | 621 _V(ExceptionGen) \ |
| 612 _V(System) \ | 622 _V(System) \ |
| 613 _V(TestAndBranch) \ | 623 _V(TestAndBranch) \ |
| 614 _V(UnconditionalBranch) \ | 624 _V(UnconditionalBranch) \ |
| 615 _V(UnconditionalBranchReg) \ | 625 _V(UnconditionalBranchReg) \ |
| 616 _V(LoadStoreReg) \ | 626 _V(LoadStoreReg) \ |
| 617 _V(LoadStoreRegPair) \ | 627 _V(LoadStoreRegPair) \ |
| 618 _V(LoadRegLiteral) \ | 628 _V(LoadRegLiteral) \ |
| 629 _V(LoadStoreExclusive) \ |
| 619 _V(AddSubImm) \ | 630 _V(AddSubImm) \ |
| 620 _V(LogicalImm) \ | 631 _V(LogicalImm) \ |
| 621 _V(MoveWide) \ | 632 _V(MoveWide) \ |
| 622 _V(PCRel) \ | 633 _V(PCRel) \ |
| 623 _V(AddSubShiftExt) \ | 634 _V(AddSubShiftExt) \ |
| 624 _V(AddSubWithCarry) \ | 635 _V(AddSubWithCarry) \ |
| 625 _V(ConditionalSelect) \ | 636 _V(ConditionalSelect) \ |
| 626 _V(MiscDP1Source) \ | 637 _V(MiscDP1Source) \ |
| 627 _V(MiscDP2Source) \ | 638 _V(MiscDP2Source) \ |
| 628 _V(MiscDP3Source) \ | 639 _V(MiscDP3Source) \ |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 685 kRnShift = 5, | 696 kRnShift = 5, |
| 686 kRnBits = 5, | 697 kRnBits = 5, |
| 687 kRaShift = 10, | 698 kRaShift = 10, |
| 688 kRaBits = 5, | 699 kRaBits = 5, |
| 689 kRmShift = 16, | 700 kRmShift = 16, |
| 690 kRmBits = 5, | 701 kRmBits = 5, |
| 691 kRtShift = 0, | 702 kRtShift = 0, |
| 692 kRtBits = 5, | 703 kRtBits = 5, |
| 693 kRt2Shift = 10, | 704 kRt2Shift = 10, |
| 694 kRt2Bits = 5, | 705 kRt2Bits = 5, |
| 706 kRsShift = 16, |
| 707 kRsBits = 5, |
| 695 | 708 |
| 696 // V Registers. | 709 // V Registers. |
| 697 kVdShift = 0, | 710 kVdShift = 0, |
| 698 kVdBits = 5, | 711 kVdBits = 5, |
| 699 kVnShift = 5, | 712 kVnShift = 5, |
| 700 kVnBits = 5, | 713 kVnBits = 5, |
| 701 kVmShift = 16, | 714 kVmShift = 16, |
| 702 kVmBits = 5, | 715 kVmBits = 5, |
| 703 kVtShift = 0, | 716 kVtShift = 0, |
| 704 kVtBits = 5, | 717 kVtBits = 5, |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 885 inline Register RnField() const { return static_cast<Register>( | 898 inline Register RnField() const { return static_cast<Register>( |
| 886 Bits(kRnShift, kRnBits)); } | 899 Bits(kRnShift, kRnBits)); } |
| 887 inline Register RaField() const { return static_cast<Register>( | 900 inline Register RaField() const { return static_cast<Register>( |
| 888 Bits(kRaShift, kRaBits)); } | 901 Bits(kRaShift, kRaBits)); } |
| 889 inline Register RmField() const { return static_cast<Register>( | 902 inline Register RmField() const { return static_cast<Register>( |
| 890 Bits(kRmShift, kRmBits)); } | 903 Bits(kRmShift, kRmBits)); } |
| 891 inline Register RtField() const { return static_cast<Register>( | 904 inline Register RtField() const { return static_cast<Register>( |
| 892 Bits(kRtShift, kRtBits)); } | 905 Bits(kRtShift, kRtBits)); } |
| 893 inline Register Rt2Field() const { return static_cast<Register>( | 906 inline Register Rt2Field() const { return static_cast<Register>( |
| 894 Bits(kRt2Shift, kRt2Bits)); } | 907 Bits(kRt2Shift, kRt2Bits)); } |
| 908 inline Register RsField() const { return static_cast<Register>( |
| 909 Bits(kRsShift, kRsBits)); } |
| 895 | 910 |
| 896 inline VRegister VdField() const { return static_cast<VRegister>( | 911 inline VRegister VdField() const { return static_cast<VRegister>( |
| 897 Bits(kVdShift, kVdBits)); } | 912 Bits(kVdShift, kVdBits)); } |
| 898 inline VRegister VnField() const { return static_cast<VRegister>( | 913 inline VRegister VnField() const { return static_cast<VRegister>( |
| 899 Bits(kVnShift, kVnBits)); } | 914 Bits(kVnShift, kVnBits)); } |
| 900 inline VRegister VmField() const { return static_cast<VRegister>( | 915 inline VRegister VmField() const { return static_cast<VRegister>( |
| 901 Bits(kVmShift, kVmBits)); } | 916 Bits(kVmShift, kVmBits)); } |
| 902 inline VRegister VtField() const { return static_cast<VRegister>( | 917 inline VRegister VtField() const { return static_cast<VRegister>( |
| 903 Bits(kVtShift, kVtBits)); } | 918 Bits(kVtShift, kVtBits)); } |
| 904 | 919 |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1074 static Instr* At(uword pc) { return reinterpret_cast<Instr*>(pc); } | 1089 static Instr* At(uword pc) { return reinterpret_cast<Instr*>(pc); } |
| 1075 | 1090 |
| 1076 private: | 1091 private: |
| 1077 DISALLOW_ALLOCATION(); | 1092 DISALLOW_ALLOCATION(); |
| 1078 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr); | 1093 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr); |
| 1079 }; | 1094 }; |
| 1080 | 1095 |
| 1081 } // namespace dart | 1096 } // namespace dart |
| 1082 | 1097 |
| 1083 #endif // VM_CONSTANTS_ARM64_H_ | 1098 #endif // VM_CONSTANTS_ARM64_H_ |
| OLD | NEW |