This is the mail archive of the gdb-cvs@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]

[binutils-gdb] [AArch64] Fix incorrect mask when decoding b.cond instruction


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=4d50586db70d366d7d9eaf42062bf23bb6073695

commit 4d50586db70d366d7d9eaf42062bf23bb6073695
Author: Pierre Langlois <pierre.langlois@arm.com>
Date:   Fri Sep 11 16:47:20 2015 +0100

    [AArch64] Fix incorrect mask when decoding b.cond instruction
    
    The encoding of the b.cond instruction is described in the architecture
    reference manual as:
    
    b.cond  0101 0100 iiii iiii iiii iiii iii0 cccc
    
    So the mask should be 0xff000010.
    
    gdb/ChangeLog:
    
    	* aarch64-tdep.c (decode_bcond): Fix incorrect mask.

Diff:
---
 gdb/ChangeLog      | 4 ++++
 gdb/aarch64-tdep.c | 3 ++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 705b7eb..0942986 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2015-09-11  Pierre Langlois  <pierre.langlois@arm.com>
+
+	* aarch64-tdep.c (decode_bcond): Fix incorrect mask.
+
 2015-09-11  Mihail-Marian Nistor  <mihail.nistor@freescale.com>
 
 	PR gdb/18947
diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c
index 9a44446..a4d8186 100644
--- a/gdb/aarch64-tdep.c
+++ b/gdb/aarch64-tdep.c
@@ -339,7 +339,8 @@ decode_b (CORE_ADDR addr, uint32_t insn, int *is_bl, int32_t *offset)
 static int
 decode_bcond (CORE_ADDR addr, uint32_t insn, unsigned *cond, int32_t *offset)
 {
-  if (decode_masked_match (insn, 0xfe000000, 0x54000000))
+  /* b.cond  0101 0100 iiii iiii iiii iiii iii0 cccc */
+  if (decode_masked_match (insn, 0xff000010, 0x54000000))
     {
       *cond = (insn >> 0) & 0xf;
       *offset = extract_signed_bitfield (insn, 19, 5) << 2;


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