* s390-tdep.c (s390_displaced_step_fixup): Fix processing of LARL
instruction. Add more diagnostic output.
This commit is contained in:
parent
514f64256c
commit
0161e4b928
2 changed files with 15 additions and 3 deletions
|
@ -1,3 +1,8 @@
|
|||
2011-11-30 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* s390-tdep.c (s390_displaced_step_fixup): Fix processing of LARL
|
||||
instruction. Add more diagnostic output.
|
||||
|
||||
2011-11-29 Andrey Smirnov <andrew.smirnov@gmail.com>
|
||||
|
||||
* MAINTAINERS (Write After Approval): Add myself to the list.
|
||||
|
|
|
@ -1370,9 +1370,9 @@ s390_displaced_step_fixup (struct gdbarch *gdbarch,
|
|||
|
||||
if (debug_displaced)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
"displaced: (s390) fixup (%s, %s) pc %s amode 0x%x\n",
|
||||
"displaced: (s390) fixup (%s, %s) pc %s len %d amode 0x%x\n",
|
||||
paddress (gdbarch, from), paddress (gdbarch, to),
|
||||
paddress (gdbarch, pc), (int) amode);
|
||||
paddress (gdbarch, pc), insnlen, (int) amode);
|
||||
|
||||
/* Handle absolute branch and save instructions. */
|
||||
if (is_rr (insn, op_basr, &r1, &r2)
|
||||
|
@ -1428,9 +1428,11 @@ s390_displaced_step_fixup (struct gdbarch *gdbarch,
|
|||
/* Handle LOAD ADDRESS RELATIVE LONG. */
|
||||
else if (is_ril (insn, op1_larl, op2_larl, &r1, &i2))
|
||||
{
|
||||
/* Update PC. */
|
||||
regcache_write_pc (regs, from + insnlen);
|
||||
/* Recompute output address in R1. */
|
||||
regcache_cooked_write_unsigned (regs, S390_R0_REGNUM + r1,
|
||||
amode | (from + insnlen + i2*2));
|
||||
amode | (from + i2 * 2));
|
||||
}
|
||||
|
||||
/* If we executed a breakpoint instruction, point PC right back at it. */
|
||||
|
@ -1440,6 +1442,11 @@ s390_displaced_step_fixup (struct gdbarch *gdbarch,
|
|||
/* For any other insn, PC points right after the original instruction. */
|
||||
else
|
||||
regcache_write_pc (regs, from + insnlen);
|
||||
|
||||
if (debug_displaced)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
"displaced: (s390) pc is now %s\n",
|
||||
paddress (gdbarch, regcache_read_pc (regs)));
|
||||
}
|
||||
|
||||
/* Normal stack frames. */
|
||||
|
|
Loading…
Add table
Reference in a new issue