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 2/5] arc: Set section to ".text" when disassembling


ARC disassembler requires that disassemble_info->section is valid - it will be
used to access program headers of ELF files that is needed to distinguish
between ARC EM and HS (ARC600, ARC700 and ARC v2 can be distinguished by BFD's
`mach` attribute).  Without this information disassembler will default to ARC
EM for ARC v2 targets, and it will not recognize instructions specific to ARC
HS, for example, double-word store and load.

gdb/ChangeLog:

yyyy-mm-dd  Anton Kolesov  <anton.kolesov@synopsys.com>

	* arc-tdep.c (arc_delayed_print_insn): Set info->section.
---
 gdb/arc-tdep.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c
index f78e3a9..e4b2e7a 100644
--- a/gdb/arc-tdep.c
+++ b/gdb/arc-tdep.c
@@ -705,6 +705,16 @@ arc_delayed_print_insn (bfd_vma addr, struct disassemble_info *info)
      will handle NULL value gracefully.  */
   print_insn = arc_get_disassembler (exec_bfd);
   gdb_assert (print_insn != NULL);
+
+  /* ARC disassembler requires that info->section is valid - it will be used to
+     access program headers of ELF files that is needed to distinguish between
+     ARC EM and HS (ARC600, ARC700 and ARC v2 can be distinguished by BFD's
+     `mach` attribute).  Without this information disassembler will default to
+     ARC EM for ARC v2 targets, and it will not recognize instructions specific
+     to ARC HS, for example, double-word store and load.  */
+  if (exec_bfd != NULL)
+    info->section = bfd_get_section_by_name (exec_bfd, ".text");
+
   return print_insn (addr, info);
 }
 
-- 
2.8.3


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