This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] PR tdep/9390: Fix possible typo on xstorxstormy16-tdep.c


This patch (probably) 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.
---
 gdb/ChangeLog        | 6 ++++++
 gdb/xstormy16-tdep.c | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8216274..622976d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
 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.
+
+2014-09-16  Sergio Durigan Junior  <sergiodj@redhat.com>
+
 	* objc-lang.c (find_implementation_from_class): Remove dead code.
 
 2014-09-16  Sergio Durigan Junior  <sergiodj@redhat.com>
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.  */
-- 
1.9.3


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]