Set insn_type for branch instructions on aarch64

Message ID 20230907215413.723039-1-vladimir.mezentsev@oracle.com
State Accepted
Headers
Series Set insn_type for branch instructions on aarch64 |

Checks

Context Check Description
snail/binutils-gdb-check success Github commit url

Commit Message

Vladimir Mezentsev Sept. 7, 2023, 9:54 p.m. UTC
  From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>

gprofng uses insn_type in print_address_func().
But insn_type is always zero on aarch64.

opcodes/ChangeLog:
2023-09-07  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>

	* opcodes/aarch64-dis.c (print_insn_aarch64_word): Set insn_type for
	branch instructions.
---
 opcodes/aarch64-dis.c | 6 ++++++
 1 file changed, 6 insertions(+)
  

Comments

Nick Clifton Sept. 8, 2023, 11:09 a.m. UTC | #1
Hi Vladimir,

> opcodes/ChangeLog:
> 2023-09-07  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
> 
> 	* opcodes/aarch64-dis.c (print_insn_aarch64_word): Set insn_type for
> 	branch instructions.

Approved - please apply.

Cheers
   Nick
  

Patch

diff --git a/opcodes/aarch64-dis.c b/opcodes/aarch64-dis.c
index e1183705537..03bcc372a56 100644
--- a/opcodes/aarch64-dis.c
+++ b/opcodes/aarch64-dis.c
@@ -3846,6 +3846,12 @@  print_insn_aarch64_word (bfd_vma pc,
       break;
     case ERR_OK:
       user_friendly_fixup (&inst);
+      if (inst.opcode->iclass == condbranch
+	  || inst.opcode->iclass == testbranch
+	  || inst.opcode->iclass == compbranch)
+        info->insn_type = dis_condbranch;
+      else if (inst.opcode->iclass == branch_imm)
+        info->insn_type = dis_jsr;
       print_aarch64_insn (pc, &inst, word, info, errors);
       break;
     default: