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

Side by Side Diff: runtime/vm/assembler_arm64.h

Issue 616873003: Use UnboxedInt32 and UnboxedUint32 representation for LoadIndexedInstr (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | runtime/vm/assembler_arm64_test.cc » ('j') | runtime/vm/assembler_x64.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_ASSEMBLER_ARM64_H_ 5 #ifndef VM_ASSEMBLER_ARM64_H_
6 #define VM_ASSEMBLER_ARM64_H_ 6 #define VM_ASSEMBLER_ARM64_H_
7 7
8 #ifndef VM_ASSEMBLER_H_ 8 #ifndef VM_ASSEMBLER_H_
9 #error Do not include assembler_arm64.h directly; use assembler.h instead. 9 #error Do not include assembler_arm64.h directly; use assembler.h instead.
10 #endif 10 #endif
(...skipping 822 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 ASSERT(rn != CSP); 833 ASSERT(rn != CSP);
834 const Register crn = ConcreteRegister(rn); 834 const Register crn = ConcreteRegister(rn);
835 EmitFPIntCvtOp(FMOVDR, static_cast<Register>(vd), crn); 835 EmitFPIntCvtOp(FMOVDR, static_cast<Register>(vd), crn);
836 } 836 }
837 void fmovrd(Register rd, VRegister vn) { 837 void fmovrd(Register rd, VRegister vn) {
838 ASSERT(rd != R31); 838 ASSERT(rd != R31);
839 ASSERT(rd != CSP); 839 ASSERT(rd != CSP);
840 const Register crd = ConcreteRegister(rd); 840 const Register crd = ConcreteRegister(rd);
841 EmitFPIntCvtOp(FMOVRD, crd, static_cast<Register>(vn)); 841 EmitFPIntCvtOp(FMOVRD, crd, static_cast<Register>(vn));
842 } 842 }
843 void scvtfd(VRegister vd, Register rn) { 843 void scvtfdx(VRegister vd, Register rn) {
844 ASSERT(rn != R31); 844 ASSERT(rn != R31);
845 ASSERT(rn != CSP); 845 ASSERT(rn != CSP);
846 const Register crn = ConcreteRegister(rn); 846 const Register crn = ConcreteRegister(rn);
847 EmitFPIntCvtOp(SCVTFD, static_cast<Register>(vd), crn); 847 EmitFPIntCvtOp(SCVTFD, static_cast<Register>(vd), crn);
848 } 848 }
849 void scvtfdw(VRegister vd, Register rn) {
850 ASSERT(rn != R31);
851 ASSERT(rn != CSP);
852 const Register crn = ConcreteRegister(rn);
853 EmitFPIntCvtOp(SCVTFD, static_cast<Register>(vd), crn, kWord);
854 }
849 void fcvtzds(Register rd, VRegister vn) { 855 void fcvtzds(Register rd, VRegister vn) {
850 ASSERT(rd != R31); 856 ASSERT(rd != R31);
851 ASSERT(rd != CSP); 857 ASSERT(rd != CSP);
852 const Register crd = ConcreteRegister(rd); 858 const Register crd = ConcreteRegister(rd);
853 EmitFPIntCvtOp(FCVTZDS, crd, static_cast<Register>(vn)); 859 EmitFPIntCvtOp(FCVTZDS, crd, static_cast<Register>(vn));
854 } 860 }
855 void fmovdd(VRegister vd, VRegister vn) { 861 void fmovdd(VRegister vd, VRegister vn) {
856 EmitFPOneSourceOp(FMOVDD, vd, vn); 862 EmitFPOneSourceOp(FMOVDD, vd, vn);
857 } 863 }
858 void fabsd(VRegister vd, VRegister vn) { 864 void fabsd(VRegister vd, VRegister vn) {
(...skipping 934 matching lines...) Expand 10 before | Expand all | Expand 10 after
1793 } 1799 }
1794 1800
1795 void EmitFPImm(FPImmOp op, VRegister vd, uint8_t imm8) { 1801 void EmitFPImm(FPImmOp op, VRegister vd, uint8_t imm8) {
1796 const int32_t encoding = 1802 const int32_t encoding =
1797 op | 1803 op |
1798 (static_cast<int32_t>(vd) << kVdShift) | 1804 (static_cast<int32_t>(vd) << kVdShift) |
1799 (imm8 << kImm8Shift); 1805 (imm8 << kImm8Shift);
1800 Emit(encoding); 1806 Emit(encoding);
1801 } 1807 }
1802 1808
1803 void EmitFPIntCvtOp(FPIntCvtOp op, Register rd, Register rn) { 1809 void EmitFPIntCvtOp(FPIntCvtOp op, Register rd, Register rn,
1810 OperandSize sz = kDoubleWord) {
1811 const int32_t sfield = (sz == kDoubleWord) ? B31 : 0;
zra 2014/10/09 19:21:51 Assert that sz is either kDoubleWord or kWord sinc
Cutch 2014/10/09 20:48:22 Done.
1804 const int32_t encoding = 1812 const int32_t encoding =
1805 op | 1813 op |
1806 (static_cast<int32_t>(rd) << kRdShift) | 1814 (static_cast<int32_t>(rd) << kRdShift) |
1807 (static_cast<int32_t>(rn) << kRnShift); 1815 (static_cast<int32_t>(rn) << kRnShift) |
1816 sfield;
1808 Emit(encoding); 1817 Emit(encoding);
1809 } 1818 }
1810 1819
1811 void EmitFPOneSourceOp(FPOneSourceOp op, VRegister vd, VRegister vn) { 1820 void EmitFPOneSourceOp(FPOneSourceOp op, VRegister vd, VRegister vn) {
1812 const int32_t encoding = 1821 const int32_t encoding =
1813 op | 1822 op |
1814 (static_cast<int32_t>(vd) << kVdShift) | 1823 (static_cast<int32_t>(vd) << kVdShift) |
1815 (static_cast<int32_t>(vn) << kVnShift); 1824 (static_cast<int32_t>(vn) << kVnShift);
1816 Emit(encoding); 1825 Emit(encoding);
1817 } 1826 }
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1873 Register value, 1882 Register value,
1874 Label* no_update); 1883 Label* no_update);
1875 1884
1876 DISALLOW_ALLOCATION(); 1885 DISALLOW_ALLOCATION();
1877 DISALLOW_COPY_AND_ASSIGN(Assembler); 1886 DISALLOW_COPY_AND_ASSIGN(Assembler);
1878 }; 1887 };
1879 1888
1880 } // namespace dart 1889 } // namespace dart
1881 1890
1882 #endif // VM_ASSEMBLER_ARM64_H_ 1891 #endif // VM_ASSEMBLER_ARM64_H_
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/assembler_arm64_test.cc » ('j') | runtime/vm/assembler_x64.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698