From: kevinb Date: Fri, 9 May 2003 05:13:42 +0000 (+0000) Subject: * linux-target.c (mips_singlestep): Don't interpret all coprocessor X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=0598f64704a9431b815b76f2f9a93effb00ef4b2;p=pf3gnuchains%2Fpf3gnuchains3x.git * linux-target.c (mips_singlestep): Don't interpret all coprocessor instructions as conditional branches. --- diff --git a/rda/unix/ChangeLog b/rda/unix/ChangeLog index 88c43d603b..fbcb209ca4 100644 --- a/rda/unix/ChangeLog +++ b/rda/unix/ChangeLog @@ -1,3 +1,8 @@ +2003-05-08 Kevin Buettner + + * linux-target.c (mips_singlestep): Don't interpret all coprocessor + instructions as conditional branches. + 2003-04-10 Kevin Buettner * linux-target.c (NUM_REGS) [MIPS_LINUX_TARGET, MIPS64_LINUX_TARGET]: diff --git a/rda/unix/linux-target.c b/rda/unix/linux-target.c index 26572b3950..7f0122dd6d 100644 --- a/rda/unix/linux-target.c +++ b/rda/unix/linux-target.c @@ -2640,6 +2640,15 @@ mips_singlestep (struct gdbserv *serv, pid_t pid, int sig) targ |= (insn.j_format.target << 2); break; + /* Some cop instructions are conditional... */ + case cop0_op: + case cop1_op: + case cop2_op: + if (insn.i_format.rs != bc_op) + break; + else + ; /* fall through... */ + /* * These are conditional. */ @@ -2651,9 +2660,6 @@ mips_singlestep (struct gdbserv *serv, pid_t pid, int sig) case blezl_op: case bgtz_op: case bgtzl_op: - case cop0_op: - case cop1_op: - case cop2_op: case cop1x_op: is_branch = is_cond = 1; targ += 4 + (insn.i_format.simmediate << 2);