| 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 #ifndef VM_CONSTANTS_ARM_H_ | 5 #ifndef VM_CONSTANTS_ARM_H_ |
| 6 #define VM_CONSTANTS_ARM_H_ | 6 #define VM_CONSTANTS_ARM_H_ |
| 7 | 7 |
| 8 namespace dart { | 8 namespace dart { |
| 9 | 9 |
| 10 // We support both VFPv3-D16 and VFPv3-D32 profiles, but currently only one at | 10 // We support both VFPv3-D16 and VFPv3-D32 profiles, but currently only one at |
| (...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 485 inline DRegister DnField() const { | 485 inline DRegister DnField() const { |
| 486 return static_cast<DRegister>(Bits(kRnShift, kRnBits) + (Bit(7) << 4)); | 486 return static_cast<DRegister>(Bits(kRnShift, kRnBits) + (Bit(7) << 4)); |
| 487 } | 487 } |
| 488 inline DRegister DdField() const { | 488 inline DRegister DdField() const { |
| 489 return static_cast<DRegister>(Bits(kRdShift, kRdBits) + (Bit(22) << 4)); | 489 return static_cast<DRegister>(Bits(kRdShift, kRdBits) + (Bit(22) << 4)); |
| 490 } | 490 } |
| 491 inline DRegister DmField() const { | 491 inline DRegister DmField() const { |
| 492 return static_cast<DRegister>(Bits(kRmShift, kRmBits) + (Bit(5) << 4)); | 492 return static_cast<DRegister>(Bits(kRmShift, kRmBits) + (Bit(5) << 4)); |
| 493 } | 493 } |
| 494 | 494 |
| 495 inline bool IsDivision() const { |
| 496 ASSERT(ConditionField() != kSpecialCondition); |
| 497 ASSERT(TypeField() == 3); |
| 498 return ((Bit(4) == 1) && (Bits(5, 3) == 0) && |
| 499 (Bit(20) == 1) && (Bits(22, 3) == 4)); |
| 500 } |
| 501 |
| 495 // Test for VFP data processing or single transfer instructions of type 7. | 502 // Test for VFP data processing or single transfer instructions of type 7. |
| 496 inline bool IsVFPDataProcessingOrSingleTransfer() const { | 503 inline bool IsVFPDataProcessingOrSingleTransfer() const { |
| 497 ASSERT(ConditionField() != kSpecialCondition); | 504 ASSERT(ConditionField() != kSpecialCondition); |
| 498 ASSERT(TypeField() == 7); | 505 ASSERT(TypeField() == 7); |
| 499 return ((Bit(24) == 0) && (Bits(9, 3) == 5)); | 506 return ((Bit(24) == 0) && (Bits(9, 3) == 5)); |
| 500 // Bit(4) == 0: Data Processing | 507 // Bit(4) == 0: Data Processing |
| 501 // Bit(4) == 1: 8, 16, or 32-bit Transfer between ARM Core and VFP | 508 // Bit(4) == 1: 8, 16, or 32-bit Transfer between ARM Core and VFP |
| 502 } | 509 } |
| 503 | 510 |
| 504 // Test for VFP 64-bit transfer instructions of type 6. | 511 // Test for VFP 64-bit transfer instructions of type 6. |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 550 Instr* Next() { return this + kInstrSize; } | 557 Instr* Next() { return this + kInstrSize; } |
| 551 | 558 |
| 552 private: | 559 private: |
| 553 DISALLOW_ALLOCATION(); | 560 DISALLOW_ALLOCATION(); |
| 554 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr); | 561 DISALLOW_IMPLICIT_CONSTRUCTORS(Instr); |
| 555 }; | 562 }; |
| 556 | 563 |
| 557 } // namespace dart | 564 } // namespace dart |
| 558 | 565 |
| 559 #endif // VM_CONSTANTS_ARM_H_ | 566 #endif // VM_CONSTANTS_ARM_H_ |
| OLD | NEW |