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

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

Issue 12459005: Adds muls, sdiv, udiv instructions to ARM simulator, assembler, disassembler (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 9 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 | « runtime/vm/assembler_arm_test.cc ('k') | runtime/vm/disassembler_arm.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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_
OLDNEW
« no previous file with comments | « runtime/vm/assembler_arm_test.cc ('k') | runtime/vm/disassembler_arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698