aboutsummaryrefslogtreecommitdiff
path: root/gdb/arm-tdep.c
diff options
context:
space:
mode:
authorYao Qi <yao.qi@linaro.org>2015-06-30 09:24:43 +0100
committerYao Qi <yao.qi@linaro.org>2015-06-30 09:24:43 +0100
commit7b9be803fed8f500b512d5685773c84fffcdf63f (patch)
tree98f1c2cc2a8d75fe034622053b4570efb72bfe98 /gdb/arm-tdep.c
parentfd6e021d8c989905bbb234fdf993799db5a18cb9 (diff)
downloadgdb-7b9be803fed8f500b512d5685773c84fffcdf63f.zip
gdb-7b9be803fed8f500b512d5685773c84fffcdf63f.tar.gz
gdb-7b9be803fed8f500b512d5685773c84fffcdf63f.tar.bz2
Handle media instructions in arm software single step.
This patch fixes PR 18605 which is about incorrectly decoding media instructions in software single step. gdb: 2015-06-30 Yao Qi <yao.qi@linaro.org> PR tdep/18605 * arm-tdep.c (arm_get_next_pc_raw): Break for media instructions.
Diffstat (limited to 'gdb/arm-tdep.c')
-rw-r--r--gdb/arm-tdep.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index c99f2a9..527bd01 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -4927,6 +4927,13 @@ arm_get_next_pc_raw (struct frame_info *frame, CORE_ADDR pc)
case 0x5: /* data transfer */
case 0x6:
case 0x7:
+ if (bits (this_instr, 25, 27) == 0x3 && bit (this_instr, 4) == 1)
+ {
+ /* Media instructions and architecturally undefined
+ instructions. */
+ break;
+ }
+
if (bit (this_instr, 20))
{
/* load */