diff options
Diffstat (limited to 'gdb/arch/arm.h')
-rw-r--r-- | gdb/arch/arm.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gdb/arch/arm.h b/gdb/arch/arm.h index a054776..1a877bc 100644 --- a/gdb/arch/arm.h +++ b/gdb/arch/arm.h @@ -58,6 +58,36 @@ enum gdb_regnum { ARM_LAST_FP_ARG_REGNUM = ARM_F3_REGNUM }; +/* Instruction condition field values. */ +#define INST_EQ 0x0 +#define INST_NE 0x1 +#define INST_CS 0x2 +#define INST_CC 0x3 +#define INST_MI 0x4 +#define INST_PL 0x5 +#define INST_VS 0x6 +#define INST_VC 0x7 +#define INST_HI 0x8 +#define INST_LS 0x9 +#define INST_GE 0xa +#define INST_LT 0xb +#define INST_GT 0xc +#define INST_LE 0xd +#define INST_AL 0xe +#define INST_NV 0xf + +#define FLAG_N 0x80000000 +#define FLAG_Z 0x40000000 +#define FLAG_C 0x20000000 +#define FLAG_V 0x10000000 + +#define CPSR_T 0x20 + +#define XPSR_T 0x01000000 + +/* Size of integer registers. */ +#define INT_REGISTER_SIZE 4 + /* Addresses for calling Thumb functions have the bit 0 set. Here are some macros to test, set, or clear bit 0 of addresses. */ #define IS_THUMB_ADDR(addr) ((addr) & 1) @@ -68,4 +98,10 @@ enum gdb_regnum { first halfword is INST1. */ int thumb_insn_size (unsigned short inst1); +/* Returns true if the condition evaluates to true. */ +int condition_true (unsigned long cond, unsigned long status_reg); + +/* Return number of 1-bits in VAL. */ +int bitcount (unsigned long val); + #endif |