| 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 666 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 677 EmitUnconditionalBranchRegOp(BLR, rn); | 677 EmitUnconditionalBranchRegOp(BLR, rn); |
| 678 } | 678 } |
| 679 void ret(Register rn = R30) { | 679 void ret(Register rn = R30) { |
| 680 EmitUnconditionalBranchRegOp(RET, rn); | 680 EmitUnconditionalBranchRegOp(RET, rn); |
| 681 } | 681 } |
| 682 | 682 |
| 683 // Exceptions. | 683 // Exceptions. |
| 684 void hlt(uint16_t imm) { | 684 void hlt(uint16_t imm) { |
| 685 EmitExceptionGenOp(HLT, imm); | 685 EmitExceptionGenOp(HLT, imm); |
| 686 } | 686 } |
| 687 void brk(uint16_t imm) { |
| 688 EmitExceptionGenOp(BRK, imm); |
| 689 } |
| 687 | 690 |
| 688 // Double floating point. | 691 // Double floating point. |
| 689 bool fmovdi(VRegister vd, double immd) { | 692 bool fmovdi(VRegister vd, double immd) { |
| 690 int64_t imm64 = bit_cast<int64_t, double>(immd); | 693 int64_t imm64 = bit_cast<int64_t, double>(immd); |
| 691 const uint8_t bit7 = imm64 >> 63; | 694 const uint8_t bit7 = imm64 >> 63; |
| 692 const uint8_t bit6 = (~(imm64 >> 62)) & 0x1; | 695 const uint8_t bit6 = (~(imm64 >> 62)) & 0x1; |
| 693 const uint8_t bit54 = (imm64 >> 52) & 0x3; | 696 const uint8_t bit54 = (imm64 >> 52) & 0x3; |
| 694 const uint8_t bit30 = (imm64 >> 48) & 0xf; | 697 const uint8_t bit30 = (imm64 >> 48) & 0xf; |
| 695 const uint8_t imm8 = (bit7 << 7) | (bit6 << 6) | (bit54 << 4) | bit30; | 698 const uint8_t imm8 = (bit7 << 7) | (bit6 << 6) | (bit54 << 4) | bit30; |
| 696 const int64_t expimm8 = Instr::VFPExpandImm(imm8); | 699 const int64_t expimm8 = Instr::VFPExpandImm(imm8); |
| (...skipping 973 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1670 Register value, | 1673 Register value, |
| 1671 Label* no_update); | 1674 Label* no_update); |
| 1672 | 1675 |
| 1673 DISALLOW_ALLOCATION(); | 1676 DISALLOW_ALLOCATION(); |
| 1674 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1677 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 1675 }; | 1678 }; |
| 1676 | 1679 |
| 1677 } // namespace dart | 1680 } // namespace dart |
| 1678 | 1681 |
| 1679 #endif // VM_ASSEMBLER_ARM64_H_ | 1682 #endif // VM_ASSEMBLER_ARM64_H_ |
| OLD | NEW |