Index: src/arm/constants-arm.h |
=================================================================== |
--- src/arm/constants-arm.h (revision 4358) |
+++ src/arm/constants-arm.h (working copy) |
@@ -151,24 +151,19 @@ |
}; |
-// Some special instructions encoded as a TEQ with S=0 (bit 20). |
-enum Opcode9Bits { |
+// The bits for bit 7-4 for some type 0 miscellaneous instructions. |
+enum MiscInstructionsBits74 { |
+ // With bits 22-21 01. |
BX = 1, |
BXJ = 2, |
BLX = 3, |
- BKPT = 7 |
-}; |
+ BKPT = 7, |
- |
-// Some special instructions encoded as a CMN with S=0 (bit 20). |
-enum Opcode11Bits { |
+ // With bits 22-21 11. |
CLZ = 1 |
}; |
-// S |
- |
- |
// Shifter types for Data-processing operands as defined in section A5.1.2. |
enum Shift { |
no_shift = -1, |
@@ -310,6 +305,14 @@ |
// as well as multiplications). |
inline bool IsSpecialType0() const { return (Bit(7) == 1) && (Bit(4) == 1); } |
+ // Test for miscellaneous instructions encodings of type 0 instructions. |
+ inline bool IsMiscType0() const { return (Bit(24) == 1) |
+ && (Bit(23) == 0) |
+ && (Bit(20) == 0) |
+ && ((Bit(4) == 0) |
+ || ((Bit(7) == 0) |
+ && (Bit(4) == 1))); } |
+ |
// Special accessors that test for existence of a value. |
inline bool HasS() const { return SField() == 1; } |
inline bool HasB() const { return BField() == 1; } |