aboutsummaryrefslogtreecommitdiff
path: root/gdb/arm-tdep.h
diff options
context:
space:
mode:
authorYao Qi <yao@codesourcery.com>2011-03-02 05:33:37 +0000
committerYao Qi <yao@codesourcery.com>2011-03-02 05:33:37 +0000
commit4db71c0b79ff7e89a392f903f39251faa795d69c (patch)
tree26ddf74e3e17c971de0a18e454e8ca45c1762326 /gdb/arm-tdep.h
parentb123da992dccc40b825d0967f7701f31b0f7e82a (diff)
downloadgdb-4db71c0b79ff7e89a392f903f39251faa795d69c.zip
gdb-4db71c0b79ff7e89a392f903f39251faa795d69c.tar.gz
gdb-4db71c0b79ff7e89a392f903f39251faa795d69c.tar.bz2
2011-03-02 Yao Qi <yao@codesourcery.com>
* arm-tdep.h (struct displaced_step_closure): Add two new fields is_thumb and insn_size. * arm-tdep.c (displaced_read_reg): Adjust correct pipeline offset on both ARM and Thumb mode. (arm_process_displaced_insn): Set is_thumb and insn_size. (arm_displaced_init_closure): Handle both 16-bit and 32-bit. (arm_displaced_step_fixup): Likewise.
Diffstat (limited to 'gdb/arm-tdep.h')
-rw-r--r--gdb/arm-tdep.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/gdb/arm-tdep.h b/gdb/arm-tdep.h
index de3f6cc..362be2e 100644
--- a/gdb/arm-tdep.h
+++ b/gdb/arm-tdep.h
@@ -262,6 +262,17 @@ struct displaced_step_closure
struct displaced_step_closure *dsc);
} svc;
} u;
+
+ /* The size of original instruction, 2 or 4. */
+ unsigned int insn_size;
+ /* True if the original insn (and thus all replacement insns) are Thumb
+ instead of ARM. */
+ unsigned int is_thumb;
+
+ /* The slots in the array is used in this way below,
+ - ARM instruction occupies one slot,
+ - Thumb 16 bit instruction occupies one slot,
+ - Thumb 32-bit instruction occupies *two* slots, one part for each. */
unsigned long modinsn[DISPLACED_MODIFIED_INSNS];
int numinsns;
CORE_ADDR insn_addr;