| 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_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 605 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 616 EmitFPImm(FMOVDI, vd, imm8); | 616 EmitFPImm(FMOVDI, vd, imm8); |
| 617 return true; | 617 return true; |
| 618 } | 618 } |
| 619 void fmovdr(VRegister vd, Register rn) { | 619 void fmovdr(VRegister vd, Register rn) { |
| 620 EmitFPIntCvtOp(FMOVDR, static_cast<Register>(vd), rn); | 620 EmitFPIntCvtOp(FMOVDR, static_cast<Register>(vd), rn); |
| 621 } | 621 } |
| 622 void fmovrd(Register rd, VRegister vn) { | 622 void fmovrd(Register rd, VRegister vn) { |
| 623 EmitFPIntCvtOp(FMOVRD, rd, static_cast<Register>(vn)); | 623 EmitFPIntCvtOp(FMOVRD, rd, static_cast<Register>(vn)); |
| 624 } | 624 } |
| 625 | 625 |
| 626 void fldrd(VRegister vt, Address a) { |
| 627 ASSERT(a.type() != Address::PCOffset); |
| 628 EmitLoadStoreReg(FLDR, static_cast<Register>(vt), a, kDoubleWord); |
| 629 } |
| 630 void fstrd(VRegister vt, Address a) { |
| 631 ASSERT(a.type() != Address::PCOffset); |
| 632 EmitLoadStoreReg(FSTR, static_cast<Register>(vt), a, kDoubleWord); |
| 633 } |
| 634 |
| 626 // Aliases. | 635 // Aliases. |
| 627 void mov(Register rd, Register rn) { | 636 void mov(Register rd, Register rn) { |
| 628 if ((rd == SP) || (rn == SP)) { | 637 if ((rd == SP) || (rn == SP)) { |
| 629 add(rd, rn, Operand(0)); | 638 add(rd, rn, Operand(0)); |
| 630 } else { | 639 } else { |
| 631 orr(rd, ZR, Operand(rn)); | 640 orr(rd, ZR, Operand(rn)); |
| 632 } | 641 } |
| 633 } | 642 } |
| 634 void mvn(Register rd, Register rm) { | 643 void mvn(Register rd, Register rm) { |
| 635 orr(rd, ZR, Operand(rm)); | 644 orr(rd, ZR, Operand(rm)); |
| (...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1160 Register value, | 1169 Register value, |
| 1161 Label* no_update); | 1170 Label* no_update); |
| 1162 | 1171 |
| 1163 DISALLOW_ALLOCATION(); | 1172 DISALLOW_ALLOCATION(); |
| 1164 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1173 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 1165 }; | 1174 }; |
| 1166 | 1175 |
| 1167 } // namespace dart | 1176 } // namespace dart |
| 1168 | 1177 |
| 1169 #endif // VM_ASSEMBLER_ARM64_H_ | 1178 #endif // VM_ASSEMBLER_ARM64_H_ |
| OLD | NEW |