diff options
author | Sergio Durigan Junior <sergiodj@redhat.com> | 2014-10-09 13:45:09 -0400 |
---|---|---|
committer | Sergio Durigan Junior <sergiodj@redhat.com> | 2014-10-09 13:45:09 -0400 |
commit | 3e3286a28ab29052f2169bfce01b3e770d589037 (patch) | |
tree | 507c0d829ae524d9bc15705080d6ae98149814bd | |
parent | 3d68f91c0fb05b426e554004cabd3ded4c91f9c8 (diff) | |
download | gdb-3e3286a28ab29052f2169bfce01b3e770d589037.zip gdb-3e3286a28ab29052f2169bfce01b3e770d589037.tar.gz gdb-3e3286a28ab29052f2169bfce01b3e770d589037.tar.bz2 |
PR tdep/9390: Fix typo on xstorxstormy16-tdep.c
This patch fixes the bug described in PR tdep/9390, which is about a
wrong check in the following code:
...
/* optional copying of args in r2-r7 to r10-r13. */
/* Probably only in optimized case but legal action for prologue. */
else if ((inst & 0xff00) == 0x4600 /* 46SD mov rD, rS */
&& (inst & 0x00f0) >= 0x0020 && (inst & 0x00f0) <= 0x0070
&& (inst & 0x000f) >= 0x00a0 && (inst & 0x000f) <= 0x000d)
^^^^^^^^^^^^^^^^^^^^^^^^^
...
This condition will never trigger, and the fix proposed in the bug
(which made sense to me) was to test against 0x000a. I tried finding
documentation about this target, but couldn't find anything. I don't
even know if it is still used, but decided to submit the fix anyway.
Tested on my x86_64 Fedora 20 GNU/Linux.
gdb/ChangeLog:
2014-09-16 Sergio Durigan Junior <sergiodj@redhat.com>
PR tdep/9390
* xstorxstormy16-tdep.c (xstormy16_analyze_prologue): Fix possible
typo when using logical AND to determine instruction type.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/xstormy16-tdep.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ee82f1f..aeba430 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2014-10-09 Sergio Durigan Junior <sergiodj@redhat.com> + + PR tdep/9390 + * xstorxstormy16-tdep.c (xstormy16_analyze_prologue): Fix possible + typo when using logical AND to determine instruction type. + 2014-10-09 Yao Qi <yao@codesourcery.com> * infrun.c (handle_signal_stop): Remove local variable diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c index af3ff32..9692742 100644 --- a/gdb/xstormy16-tdep.c +++ b/gdb/xstormy16-tdep.c @@ -374,7 +374,7 @@ xstormy16_analyze_prologue (struct gdbarch *gdbarch, /* Probably only in optimized case but legal action for prologue. */ else if ((inst & 0xff00) == 0x4600 /* 46SD mov rD, rS */ && (inst & 0x00f0) >= 0x0020 && (inst & 0x00f0) <= 0x0070 - && (inst & 0x000f) >= 0x00a0 && (inst & 0x000f) <= 0x000d) + && (inst & 0x000f) >= 0x000a && (inst & 0x000f) <= 0x000d) ; /* Optional copying of args in r2-r7 to stack. */ |