Handle media instructions in arm software single step.
authorYao Qi <yao.qi@linaro.org>
Tue, 30 Jun 2015 08:24:43 +0000 (09:24 +0100)
committerYao Qi <yao.qi@linaro.org>
Tue, 30 Jun 2015 08:24:43 +0000 (09:24 +0100)
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.

gdb/ChangeLog
gdb/arm-tdep.c

index 74a88dbc895b9d8735292d35845172fb41c05838..8a961c61e7d35f939a8f5c739cb78d4b8f663f50 100644 (file)
@@ -1,3 +1,9 @@
+2015-06-30  Yao Qi  <yao.qi@linaro.org>
+
+       PR tdep/18605
+       * arm-tdep.c (arm_get_next_pc_raw): Break for media
+       instructions.
+
 2015-06-29  Kevin Buettner  <kevinb@redhat.com>
 
         * rx-tdep.c (RX_PSW_REGNUM): New enum constant.
index c99f2a97d292e1c03908481a185dec9e6fe29290..527bd01875d337e8786f3d8f21cdef3a5d79fce9 100644 (file)
@@ -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 */