| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 // This is forked from Dart revision df52deea9f25690eb8b66c5995da92b70f7ac1fe | 5 // This is forked from Dart revision df52deea9f25690eb8b66c5995da92b70f7ac1fe |
| 6 // Please update the (git) revision if we merge changes from Dart. | 6 // Please update the (git) revision if we merge changes from Dart. |
| 7 // https://code.google.com/p/dart/wiki/GettingTheSource | 7 // https://code.google.com/p/dart/wiki/GettingTheSource |
| 8 | 8 |
| 9 #include "vm/globals.h" // NOLINT | 9 #include "vm/globals.h" // NOLINT |
| 10 #if defined(TARGET_ARCH_ARM) | 10 #if defined(TARGET_ARCH_ARM) |
| (...skipping 739 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 750 ASSERT(sd != kNoSRegister); | 750 ASSERT(sd != kNoSRegister); |
| 751 ASSERT(cond != kNoCondition); | 751 ASSERT(cond != kNoCondition); |
| 752 int32_t encoding = (static_cast<int32_t>(cond) << kConditionShift) | | 752 int32_t encoding = (static_cast<int32_t>(cond) << kConditionShift) | |
| 753 B27 | B26 | B24 | B20 | | 753 B27 | B26 | B24 | B20 | |
| 754 ((static_cast<int32_t>(sd) & 1)*B22) | | 754 ((static_cast<int32_t>(sd) & 1)*B22) | |
| 755 ((static_cast<int32_t>(sd) >> 1)*B12) | | 755 ((static_cast<int32_t>(sd) >> 1)*B12) | |
| 756 B11 | B9 | ad.vencoding(); | 756 B11 | B9 | ad.vencoding(); |
| 757 Emit(encoding); | 757 Emit(encoding); |
| 758 } | 758 } |
| 759 | 759 |
| 760 | 760 #if 0 |
| 761 // Moved to Arm32::AssemblerARM32::vstrs() |
| 761 void Assembler::vstrs(SRegister sd, Address ad, Condition cond) { | 762 void Assembler::vstrs(SRegister sd, Address ad, Condition cond) { |
| 762 ASSERT(TargetCPUFeatures::vfp_supported()); | 763 ASSERT(TargetCPUFeatures::vfp_supported()); |
| 763 ASSERT(static_cast<Register>(ad.encoding_ & (0xf << kRnShift)) != PC); | 764 ASSERT(static_cast<Register>(ad.encoding_ & (0xf << kRnShift)) != PC); |
| 764 ASSERT(sd != kNoSRegister); | 765 ASSERT(sd != kNoSRegister); |
| 765 ASSERT(cond != kNoCondition); | 766 ASSERT(cond != kNoCondition); |
| 766 int32_t encoding = (static_cast<int32_t>(cond) << kConditionShift) | | 767 int32_t encoding = (static_cast<int32_t>(cond) << kConditionShift) | |
| 767 B27 | B26 | B24 | | 768 B27 | B26 | B24 | |
| 768 ((static_cast<int32_t>(sd) & 1)*B22) | | 769 ((static_cast<int32_t>(sd) & 1)*B22) | |
| 769 ((static_cast<int32_t>(sd) >> 1)*B12) | | 770 ((static_cast<int32_t>(sd) >> 1)*B12) | |
| 770 B11 | B9 | ad.vencoding(); | 771 B11 | B9 | ad.vencoding(); |
| 771 Emit(encoding); | 772 Emit(encoding); |
| 772 } | 773 } |
| 774 #endif |
| 773 | 775 |
| 774 | 776 #if 0 |
| 777 // Moved to Arm32::AssemblerARM32::vstrd() |
| 775 void Assembler::vldrd(DRegister dd, Address ad, Condition cond) { | 778 void Assembler::vldrd(DRegister dd, Address ad, Condition cond) { |
| 776 ASSERT(TargetCPUFeatures::vfp_supported()); | 779 ASSERT(TargetCPUFeatures::vfp_supported()); |
| 777 ASSERT(dd != kNoDRegister); | 780 ASSERT(dd != kNoDRegister); |
| 778 ASSERT(cond != kNoCondition); | 781 ASSERT(cond != kNoCondition); |
| 779 int32_t encoding = (static_cast<int32_t>(cond) << kConditionShift) | | 782 int32_t encoding = (static_cast<int32_t>(cond) << kConditionShift) | |
| 780 B27 | B26 | B24 | B20 | | 783 B27 | B26 | B24 | B20 | |
| 781 ((static_cast<int32_t>(dd) >> 4)*B22) | | 784 ((static_cast<int32_t>(dd) >> 4)*B22) | |
| 782 ((static_cast<int32_t>(dd) & 0xf)*B12) | | 785 ((static_cast<int32_t>(dd) & 0xf)*B12) | |
| 783 B11 | B9 | B8 | ad.vencoding(); | 786 B11 | B9 | B8 | ad.vencoding(); |
| 784 Emit(encoding); | 787 Emit(encoding); |
| 785 } | 788 } |
| 786 | 789 #endif |
| 787 | 790 |
| 788 void Assembler::vstrd(DRegister dd, Address ad, Condition cond) { | 791 void Assembler::vstrd(DRegister dd, Address ad, Condition cond) { |
| 789 ASSERT(TargetCPUFeatures::vfp_supported()); | 792 ASSERT(TargetCPUFeatures::vfp_supported()); |
| 790 ASSERT(static_cast<Register>(ad.encoding_ & (0xf << kRnShift)) != PC); | 793 ASSERT(static_cast<Register>(ad.encoding_ & (0xf << kRnShift)) != PC); |
| 791 ASSERT(dd != kNoDRegister); | 794 ASSERT(dd != kNoDRegister); |
| 792 ASSERT(cond != kNoCondition); | 795 ASSERT(cond != kNoCondition); |
| 793 int32_t encoding = (static_cast<int32_t>(cond) << kConditionShift) | | 796 int32_t encoding = (static_cast<int32_t>(cond) << kConditionShift) | |
| 794 B27 | B26 | B24 | | 797 B27 | B26 | B24 | |
| 795 ((static_cast<int32_t>(dd) >> 4)*B22) | | 798 ((static_cast<int32_t>(dd) >> 4)*B22) | |
| 796 ((static_cast<int32_t>(dd) & 0xf)*B12) | | 799 ((static_cast<int32_t>(dd) & 0xf)*B12) | |
| (...skipping 2893 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3690 | 3693 |
| 3691 | 3694 |
| 3692 const char* Assembler::FpuRegisterName(FpuRegister reg) { | 3695 const char* Assembler::FpuRegisterName(FpuRegister reg) { |
| 3693 ASSERT((0 <= reg) && (reg < kNumberOfFpuRegisters)); | 3696 ASSERT((0 <= reg) && (reg < kNumberOfFpuRegisters)); |
| 3694 return fpu_reg_names[reg]; | 3697 return fpu_reg_names[reg]; |
| 3695 } | 3698 } |
| 3696 | 3699 |
| 3697 } // namespace dart | 3700 } // namespace dart |
| 3698 | 3701 |
| 3699 #endif // defined TARGET_ARCH_ARM | 3702 #endif // defined TARGET_ARCH_ARM |
| OLD | NEW |