[PATCH v4 0/3] arc: Add GNU/Linux support

Shahab Vahedi
2020-07-23T19:35:44Z

From: Shahab Vahedi <shahab@synopsys.com>

This is a series of changes to enable debugging ARC targets that are
running on a native ARC GNU/Linux system. Since this heavily relies
on XML target descriptions provided for different targets, that piece
of code has been refactored to accommodate flexible register support.

After this series, there will come patches that add support for
native ARC gdb/gdbserver.

v4: Latest changes per remarks of Simon [1]
arc-tdep.c
- Surround "=" in 2 assignments with space.
- Put the return type of "mach_type_to_arc_isa ()" on the first line.
- Remove "inline" from "mach_type_to_arc_isa ()".
- Add space between the "if" conditions for readability.
- Use "featues.isa" instead of "features.reg_size" in one occurrence.
- Make "arc_gdbarch_features_init" static
- Rename "arc_gdbarch_features_init" to "arc_gdbarch_features_create".
- Adapt "arc_gdbarch_features_create" to act as a constructor.
arch/arc.c
- Add a constructor for "arc_gdbarch_features".
- Get rid of "ARC_ISA_NONE" now that there is a constructor.
arch/arc.c
- Use simple assignments (instead of append) for "architecture".
- Use "string_sprintf ()".
- Use "target_desc_up" in "arc_tdesc_cache" to avoid memory leakage.
arc-linux-tdep.c
- Two occurrences: compare "resolver.minsym" against "nullptr".

[1] [PATCH v3 1/3] arc: Add ARCv2 XML target along with refactoring
https://sourceware.org/pipermail/gdb-patches/2020-July/170427.html

v3: Changes after Simon's remarks:
The XML files have reduced to minimal comprehensible set.
The code is adjusted to work with new reg sets and be platform agnostic.

v2: Changes after Tom's remarks:
arc-tdep.c
- arc_tdesc_init(): Use "ARC_{R58,R59}_REGNUM" to index "core_regs[]".
- arc_gdbarch_init(): Use "xfree ()" instead of "XDELETE ()"
- arc_gdbarch_init(): return "nullptr" instead of "NULL".
- Use explicit number evaluation, e.g: if (a & b) -> if ((a & b) != 0)
arc-linux-tdep.c
- Use true/false instead of TRUE/FALSE.
- arc_linux_sw_breakpoint_from_kind (): Break long lines into two.
- arc_linux_sw_breakpoint_from_kind (): Remove starting blank line.
- Use explicit number evaluation, e.g: if (a & b) -> if ((a & b) != 0)
gdb/configure.tgt
- arc*-*-linux*): Remove "build_gdbserver=yes".

Anton Kolesov (1):
arc: Add GNU/Linux support for ARC

Shahab Vahedi (2):
arc: Add ARCv2 XML target along with refactoring
arc: Add hardware loop detection

gdb/Makefile.in | 1 +
gdb/arc-linux-tdep.c | 283 ++++++++
gdb/arc-tdep.c | 654 +++++++++++-------
gdb/arc-tdep.h | 27 +-
gdb/arch/arc.c | 108 ++-
gdb/arch/arc.h | 79 ++-
gdb/configure.tgt | 5 +
gdb/doc/gdb.texinfo | 3 +-
gdb/features/Makefile | 8 +-
.../arc/{aux-arcompact.c => v1-aux.c} | 9 +-
.../arc/{aux-arcompact.xml => v1-aux.xml} | 7 +-
.../arc/{core-arcompact.c => v1-core.c} | 8 +-
.../arc/{core-arcompact.xml => v1-core.xml} | 4 +-
gdb/features/arc/{aux-v2.c => v2-aux.c} | 9 +-
gdb/features/arc/{aux-v2.xml => v2-aux.xml} | 5 +-
gdb/features/arc/{core-v2.c => v2-core.c} | 7 +-
gdb/features/arc/{core-v2.xml => v2-core.xml} | 7 +-
17 files changed, 906 insertions(+), 318 deletions(-)
create mode 100644 gdb/arc-linux-tdep.c
rename gdb/features/arc/{aux-arcompact.c => v1-aux.c} (73%)
rename gdb/features/arc/{aux-arcompact.xml => v1-aux.xml} (80%)
rename gdb/features/arc/{core-arcompact.c => v1-core.c} (87%)
rename gdb/features/arc/{core-arcompact.xml => v1-core.xml} (92%)
rename gdb/features/arc/{aux-v2.c => v2-aux.c} (76%)
rename gdb/features/arc/{aux-v2.xml => v2-aux.xml} (86%)
rename gdb/features/arc/{core-v2.c => v2-core.c} (91%)
rename gdb/features/arc/{core-v2.xml => v2-core.xml} (90%)

--
2.27.0