From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 89865 invoked by alias); 8 Nov 2017 11:13:58 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 89851 invoked by uid 89); 8 Nov 2017 11:13:56 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-23.4 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=r20, UD:dtd, DOCTYPE, !DOCTYPE X-HELO: smtprelay.synopsys.com Received: from smtprelay.synopsys.com (HELO smtprelay.synopsys.com) (198.182.47.9) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 08 Nov 2017 11:13:50 +0000 Received: from mailhost.synopsys.com (mailhost3.synopsys.com [10.12.238.238]) by smtprelay.synopsys.com (Postfix) with ESMTP id 349FD24E150A for ; Wed, 8 Nov 2017 03:13:49 -0800 (PST) Received: from mailhost.synopsys.com (localhost [127.0.0.1]) by mailhost.synopsys.com (Postfix) with ESMTP id 0481A613 for ; Wed, 8 Nov 2017 03:13:49 -0800 (PST) Received: from US01WEHTC3.internal.synopsys.com (us01wehtc3.internal.synopsys.com [10.15.84.232]) by mailhost.synopsys.com (Postfix) with ESMTP id E2388612 for ; Wed, 8 Nov 2017 03:13:48 -0800 (PST) Received: from DE02WEHTCB.internal.synopsys.com (10.225.19.94) by US01WEHTC3.internal.synopsys.com (10.15.84.232) with Microsoft SMTP Server (TLS) id 14.3.266.1; Wed, 8 Nov 2017 03:13:48 -0800 Received: from DE02WEMBXB.internal.synopsys.com ([fe80::95ce:118a:8321:a099]) by DE02WEHTCB.internal.synopsys.com ([::1]) with mapi id 14.03.0266.001; Wed, 8 Nov 2017 12:13:46 +0100 From: Anton Kolesov To: "gdb-patches@sourceware.org" CC: Francois Bedard Subject: RE: [PATCH v2 1/4] arc: Migrate to new target features Date: Wed, 08 Nov 2017 11:13:00 -0000 Deferred-Delivery: Wed, 8 Nov 2017 11:12:27 +0000 Message-ID: <39A54937CC95F24AA2F794E2D2B66B1358970382@DE02WEMBXB.internal.synopsys.com> References: <20171012012859.GJ8425@1170ee0b50d5> <20171026114020.10213-1-Anton.Kolesov@synopsys.com> In-Reply-To: <20171026114020.10213-1-Anton.Kolesov@synopsys.com> x-dg-ref: =?us-ascii?Q?PG1ldGE+PGF0IG5tPSJib2R5LnR4dCIgcD0iYzpcdXNlcnNcYWtvbGVzb3Yu?= =?us-ascii?Q?c3lub3BzeXNcYXBwZGF0YVxyb2FtaW5nXDA5ZDg0OWI2LTMyZDMtNGE0MC04?= =?us-ascii?Q?NWVlLTZiODRiYTI5ZTM1Ylxtc2dzXG1zZy02YmQ3ZGY0ZS1jNDc1LTExZTct?= =?us-ascii?Q?YTgyZS00ODUxYjc3ZTlhOTVcYW1lLXRlc3RcNmJkN2RmNTAtYzQ3NS0xMWU3?= =?us-ascii?Q?LWE4MmUtNDg1MWI3N2U5YTk1Ym9keS50eHQiIHN6PSI0NDc5NCIgdD0iMTMx?= =?us-ascii?Q?NTQ2MTMwMjY3Nzc4MTcwIiBoPSIzYVhwRjkxa0wwWVZDVGRXTUNERk5nNEZ6?= =?us-ascii?Q?MWc9IiBpZD0iIiBibD0iMCIgYm89IjEiIGNpPSJjQUFBQUVSSFUxUlNSVUZO?= =?us-ascii?Q?Q2dVQUFCUUpBQUI2TERBdWdsalRBWXhleGtXV2gyd0ZqRjdHUlphSGJBVU9B?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSEFBQUFDa0NBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBRUFBUUFCQUFBQWZmT0g1UUFBQUFBQUFBQUFBQUFBQUo0?= =?us-ascii?Q?QUFBQm1BR2tBYmdCaEFHNEFZd0JsQUY4QWNBQnNBR0VBYmdCdUFHa0FiZ0Ju?= =?us-ascii?Q?QUY4QWR3QmhBSFFBWlFCeUFHMEFZUUJ5QUdzQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFFQUFBQUFBQUFBQWdBQUFBQUFuZ0FBQUdZQWJ3QjFBRzRB?= =?us-ascii?Q?WkFCeUFIa0FYd0J3QUdFQWNnQjBBRzRBWlFCeUFITUFYd0JuQUdZQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFB?= =?us-ascii?Q?QUFBQUFBQUNBQUFBQUFDZUFBQUFaZ0J2QUhVQWJnQmtBSElBZVFCZkFIQUFZ?= =?us-ascii?Q?UUJ5QUhRQWJnQmxBSElBY3dCZkFITUFZUUJ0QUhNQWRRQnVBR2NBWHdCakFH?= =?us-ascii?Q?OEFiZ0JtQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFJQUFBQUFB?= =?us-ascii?Q?SjRBQUFCbUFHOEFkUUJ1QUdRQWNnQjVBRjhBY0FCaEFISUFkQUJ1QUdVQWNn?= =?us-ascii?Q?QnpBRjhBY3dCaEFHMEFjd0IxQUc0QVp3QmZBSElBWlFCekFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBZ0FBQUFBQW5nQUFBR1lBYndCMUFH?= =?us-ascii?Q?NEFaQUJ5QUhrQVh3QndBR0VBY2dCMEFHNEFaUUJ5QUhNQVh3QnpBRzBBYVFC?= =?us-ascii?Q?akFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFR?= =?us-ascii?Q?QUFBQUFBQUFBQ0FBQUFBQUNlQUFBQVpnQnZBSFVBYmdCa0FISUFlUUJmQUhB?= =?us-ascii?Q?QVlRQnlBSFFBYmdCbEFISUFjd0JmQUhNQWRBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQUlBQUFB?= =?us-ascii?Q?QUFKNEFBQUJtQUc4QWRRQnVBR1FBY2dCNUFGOEFjQUJoQUhJQWRBQnVBR1VB?= =?us-ascii?Q?Y2dCekFGOEFkQUJ6QUcwQVl3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFnQUFBQUFBbmdBQUFHWUFid0Ix?= =?us-ascii?Q?QUc0QVpBQnlBSGtBWHdCd0FHRUFjZ0IwQUc0QVpRQnlBSE1BWHdCMUFHMEFZ?= =?us-ascii?Q?d0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QVFBQUFBQUFBQUFDQUFBQUFBQ2VBQUFBWndCMEFITUFYd0J3QUhJQWJ3QmtB?= =?us-ascii?Q?SFVBWXdCMEFGOEFkQUJ5QUdFQWFRQnVBR2tBYmdCbkFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBSUFB?= =?us-ascii?Q?QUFBQUo0QUFBQnpBR0VBYkFCbEFITUFYd0JoQUdNQVl3QnZBSFVBYmdCMEFG?= =?us-ascii?Q?OEFjQUJzQUdFQWJnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQWdBQUFBQUFuZ0FBQUhNQVlR?= =?us-ascii?Q?QnNBR1VBY3dCZkFIRUFkUUJ2QUhRQVpRQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBUUFBQUFBQUFBQUNBQUFBQUFDZUFBQUFjd0J1QUhBQWN3QmZBR3dBYVFC?= =?us-ascii?Q?akFHVUFiZ0J6QUdVQVh3QmhBSFVBZEFCb0FBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFJ?= =?us-ascii?Q?QUFBQUFBSjRBQUFCekFHNEFjQUJ6QUY4QWJBQnBBR01BWlFCdUFITUFaUUJm?= =?us-ascii?Q?QUhNQWRBQmhBSElBZEFCZkFHUUFZUUIwQUdVQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBZ0FBQUFBQW5nQUFBSE1B?= =?us-ascii?Q?YmdCd0FITUFYd0JzQUdrQVl3QmxBRzRBY3dCbEFGOEFkQUJsQUhJQWJRQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFRQUFBQUFBQUFBQ0FBQUFBQUE9Ii8+PC9tZXRhPg=3D=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-SW-Source: 2017-11/txt/msg00167.txt.bz2 Ping. Anton > -----Original Message----- > From: Anton Kolesov [mailto:Anton.Kolesov@synopsys.com] > Sent: Thursday, October 26, 2017 14:40 > To: gdb-patches@sourceware.org > Cc: Anton Kolesov ; Francois Bedard > > Subject: [PATCH v2 1/4] arc: Migrate to new target features >=20 > Changes in V2: >=20 > - Removed regformats .dat from this series. > - Removed selection of Linux-specific target description from arc-tdep.c.= It is > now happens in appropriate locations in arc-linux-tdep.c and arc-linux-= nat.c. > (with migration to new target description those files only specify if t= arget > is Linux or not). > - Use new mechanism to manage target description on per feature basis. >=20 > -- >=20 > This patch replaces usage of target descriptions in ARC, where the whole > description is fixed in XML, with new target descriptions where XML > describes individual features, and GDB assembles those features into actu= al > target description. >=20 > gdb/ChangeLog: > yyyy-mm-dd Anton Kolesov >=20 > * Makefile.in: Add arch/arc.o > * configure.tgt: Likewise. > * arc-tdep.c (arc_tdesc_init): Use arc_create_target_description. > (_initialize_arc_tdep): Don't initialize old target descriptions. > * arch/arc.c: New file. > * arch/arc.h: Likewise. > * features/Makefile: Replace old target descriptions with new. > * features/arc-arcompact.c: Remove. > * features/arc-arcompact.xml: Likewise. > * features/arc-v2.c: Likewise > * features/arc-v2.xml: Likewise > * features/arc/aux-arcompact.xml: New file. > * features/arc/aux-v2.xml: Likewise. > * features/arc/core-arcompact.xml: Likewise. > * features/arc/core-v2.xml: Likewise. > * features/arc/aux-arcompact.c: Generate. > * features/arc/aux-v2.c: Likewise. > * features/arc/core-arcompact.c: Likewise. > * features/arc/core-v2.c: Likewise. > * target-descriptions (maint_print_c_tdesc_cmd): Support ARC > features. > --- > gdb/Makefile.in | 3 ++ > gdb/arc-tdep.c | 23 ++-------- > gdb/arch/arc.c | 71 ++++++++++++++++++++++++++++ > gdb/arch/arc.h | 21 +++++++++ > gdb/configure.tgt | 2 +- > gdb/features/Makefile | 9 ++-- > gdb/features/arc-arcompact.c | 75 ------------------------------ > gdb/features/arc-arcompact.xml | 85 -------------------------------= --- > gdb/features/arc-v2.c | 79 ------------------------------- > gdb/features/arc-v2.xml | 92 -------------------------------= ------ > gdb/features/arc/aux-arcompact.c | 32 +++++++++++++ > gdb/features/arc/aux-arcompact.xml | 28 +++++++++++ > gdb/features/arc/aux-v2.c | 36 +++++++++++++++ > gdb/features/arc/aux-v2.xml | 32 +++++++++++++ > gdb/features/arc/core-arcompact.c | 47 +++++++++++++++++++ > gdb/features/arc/core-arcompact.xml | 58 +++++++++++++++++++++++ > gdb/features/arc/core-v2.c | 47 +++++++++++++++++++ > gdb/features/arc/core-v2.xml | 61 ++++++++++++++++++++++++ > gdb/target-descriptions.c | 4 +- > 19 files changed, 450 insertions(+), 355 deletions(-) create mode 100644 > gdb/arch/arc.c create mode 100644 gdb/arch/arc.h delete mode 100644 > gdb/features/arc-arcompact.c delete mode 100644 gdb/features/arc- > arcompact.xml delete mode 100644 gdb/features/arc-v2.c delete mode > 100644 gdb/features/arc-v2.xml create mode 100644 gdb/features/arc/aux- > arcompact.c create mode 100644 gdb/features/arc/aux-arcompact.xml > create mode 100644 gdb/features/arc/aux-v2.c create mode 100644 > gdb/features/arc/aux-v2.xml create mode 100644 gdb/features/arc/core- > arcompact.c create mode 100644 gdb/features/arc/core-arcompact.xml > create mode 100644 gdb/features/arc/core-v2.c create mode 100644 > gdb/features/arc/core-v2.xml >=20 > diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 6cb0970..60d049a 100= 644 > --- a/gdb/Makefile.in > +++ b/gdb/Makefile.in > @@ -795,6 +795,7 @@ ALL_64_TARGET_OBS =3D \ # All other target- > dependent objects files (used with --enable-targets=3Dall). > ALL_TARGET_OBS =3D \ > arc-tdep.o \ > + arch/arc.o \ > arch/arm.o \ > arch/arm-get-next-pcs.o \ > arch/arm-linux.o \ > @@ -1043,6 +1044,7 @@ SFILES =3D \ > agent.c \ > annotate.c \ > arch-utils.c \ > + arch/arc.c \ > arch/i386.c \ > auto-load.c \ > auxv.c \ > @@ -1515,6 +1517,7 @@ HFILES_NO_SRCDIR =3D \ > xml-tdesc.h \ > xtensa-tdep.h \ > arch/aarch64-insn.h \ > + arch/arc.h \ > arch/arm.h \ > arch/i386.h \ > cli/cli-cmds.h \ > diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c index 09572ac..6ed30da 100644 > --- a/gdb/arc-tdep.c > +++ b/gdb/arc-tdep.c > @@ -28,21 +28,20 @@ > #include "gdbcore.h" > #include "gdbcmd.h" > #include "objfiles.h" > +#include "osabi.h" > #include "prologue-value.h" > +#include "target-descriptions.h" > #include "trad-frame.h" >=20 > /* ARC header files. */ > #include "opcode/arc.h" > #include "opcodes/arc-dis.h" > #include "arc-tdep.h" > +#include "arch/arc.h" >=20 > /* Standard headers. */ > #include >=20 > -/* Default target descriptions. */ > -#include "features/arc-v2.c" > -#include "features/arc-arcompact.c" > - > /* The frame unwind cache for ARC. */ >=20 > struct arc_frame_cache > @@ -1793,18 +1792,7 @@ arc_tdesc_init (struct gdbarch_info info, const > struct target_desc **tdesc, > /* If target doesn't provide a description - use default one. */ > if (!tdesc_has_registers (tdesc_loc)) > { > - if (is_arcv2) > - { > - tdesc_loc =3D tdesc_arc_v2; > - if (arc_debug) > - debug_printf ("arc: Using default register set for ARC v2.\n"); > - } > - else > - { > - tdesc_loc =3D tdesc_arc_arcompact; > - if (arc_debug) > - debug_printf ("arc: Using default register set for ARCompact.\n"); > - } > + tdesc_loc =3D arc_create_target_description (arc_debug, is_arcv2); > } > else > { > @@ -2166,9 +2154,6 @@ _initialize_arc_tdep (void) { > gdbarch_register (bfd_arch_arc, arc_gdbarch_init, arc_dump_tdep); >=20 > - initialize_tdesc_arc_v2 (); > - initialize_tdesc_arc_arcompact (); > - > /* Register ARC-specific commands with gdb. */ >=20 > /* Add root prefix command for "maintenance print arc" commands. */ d= iff > --git a/gdb/arch/arc.c b/gdb/arch/arc.c new file mode 100644 index > 0000000..8f0d8d6 > --- /dev/null > +++ b/gdb/arch/arc.c > @@ -0,0 +1,71 @@ > +/* Copyright (C) 2017 Free Software Foundation, Inc. > + > + This file is part of GDB. > + > + This program is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 3 of the License, or > + (at your option) any later version. > + > + This program is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with this program. If not, see > + . */ > + > + > +#include "common-defs.h" > +#include > + > +#include "arc.h" > + > +/* Target description features. */ > +#include "features/arc/core-v2.c" > +#include "features/arc/aux-v2.c" > +#include "features/arc/core-arcompact.c" > +#include "features/arc/aux-arcompact.c" > + > +/* Create target description for a target with specified parameters. > + PRINT_DEBUG defines whether to print debug messages to the stderr > stream. > + IS_ARCV2 defines if this is an ARCv2 (ARC EM or ARC HS) target or > ARCompact > + (ARC600 or ARC700); there is no use for more specific information abo= ut > + target processor. */ > + > +target_desc * > +arc_create_target_description (bool print_debug, bool is_arcv2) { > + target_desc *tdesc =3D allocate_target_description (); > + > + if (print_debug) > + debug_printf ("arc: Creating target description, " > + "is_arcv2=3D%i\n", is_arcv2); > + > + long regnum =3D 0; > + > +#ifndef IN_PROCESS_AGENT > + if (is_arcv2) > + { > + set_tdesc_architecture (tdesc, "arc:ARCv2"); > + } > + else > + { > + set_tdesc_architecture (tdesc, "arc:ARC700"); > + } > +#endif > + > + if (is_arcv2) > + { > + regnum =3D create_feature_arc_core_v2 (tdesc, regnum); > + regnum =3D create_feature_arc_aux_v2 (tdesc, regnum); > + } > + else > + { > + regnum =3D create_feature_arc_core_arcompact (tdesc, regnum); > + regnum =3D create_feature_arc_aux_arcompact (tdesc, regnum); > + } > + > + return tdesc; > +} > + > diff --git a/gdb/arch/arc.h b/gdb/arch/arc.h new file mode 100644 index > 0000000..2d1828e > --- /dev/null > +++ b/gdb/arch/arc.h > @@ -0,0 +1,21 @@ > +/* Copyright (C) 2017 Free Software Foundation, Inc. > + > + This file is part of GDB. > + > + This program is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 3 of the License, or > + (at your option) any later version. > + > + This program is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with this program. If not, see > + . */ > + > +#include "tdesc.h" > + > +target_desc *arc_create_target_description (bool print_debug, bool > +is_arcv2); > + > diff --git a/gdb/configure.tgt b/gdb/configure.tgt index 1fce079..8d26526 > 100644 > --- a/gdb/configure.tgt > +++ b/gdb/configure.tgt > @@ -55,7 +55,7 @@ alpha*-*-*) >=20 > arc*-*-*) > # Target: Unidentified ARC target > - cpu_obs=3D"arc-tdep.o" > + cpu_obs=3D"arc-tdep.o arch/arc.o" > ;; >=20 > arm*-*-*) > diff --git a/gdb/features/Makefile b/gdb/features/Makefile index > 2d8e3fe..e30a8bd 100644 > --- a/gdb/features/Makefile > +++ b/gdb/features/Makefile > @@ -120,8 +120,6 @@ OUTPUTS =3D $(patsubst %,$(outdir)/%.dat,$(WHICH)) > # to make on the command line. > XMLTOC =3D \ > aarch64.xml \ > - arc-v2.xml \ > - arc-arcompact.xml \ > arm/arm-with-iwmmxt.xml \ > arm/arm-with-m-fpa-layout.xml \ > arm/arm-with-m-vfp-d16.xml \ > @@ -207,7 +205,12 @@ $(outdir)/%.dat: %.xml number-regs.xsl sort-regs.xsl > gdbserver-regs.xsl > $(XSLTPROC) gdbserver-regs.xsl - >> $(outdir)/$*.tmp > sh ../../move-if-change $(outdir)/$*.tmp $(outdir)/$*.dat >=20 > -FEATURE_XMLFILES =3D i386/32bit-core.xml \ > +FEATURE_XMLFILES =3D \ > + arc/core-v2.xml \ > + arc/aux-v2.xml \ > + arc/core-arcompact.xml \ > + arc/aux-arcompact.xml \ > + i386/32bit-core.xml \ > i386/32bit-sse.xml \ > i386/32bit-linux.xml \ > i386/32bit-avx.xml \ > diff --git a/gdb/features/arc-arcompact.c b/gdb/features/arc-arcompact.c > deleted file mode 100644 index ea84a40..0000000 > --- a/gdb/features/arc-arcompact.c > +++ /dev/null > @@ -1,75 +0,0 @@ > -/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: > - Original: arc-arcompact.xml */ > - > -#include "defs.h" > -#include "osabi.h" > -#include "target-descriptions.h" > - > -struct target_desc *tdesc_arc_arcompact; -static void - > initialize_tdesc_arc_arcompact (void) -{ > - struct target_desc *result =3D allocate_target_description (); > - set_tdesc_architecture (result, bfd_scan_arch ("ARC700")); > - > - struct tdesc_feature *feature; > - > - feature =3D tdesc_create_feature (result, > "org.gnu.gdb.arc.core.arcompact"); > - tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "gp", 26, 1, NULL, 32, "data_ptr"); > - tdesc_create_reg (feature, "fp", 27, 1, NULL, 32, "data_ptr"); > - tdesc_create_reg (feature, "sp", 28, 1, NULL, 32, "data_ptr"); > - tdesc_create_reg (feature, "ilink1", 29, 1, NULL, 32, "code_ptr"); > - tdesc_create_reg (feature, "ilink2", 30, 1, NULL, 32, "code_ptr"); > - tdesc_create_reg (feature, "blink", 31, 1, NULL, 32, "code_ptr"); > - tdesc_create_reg (feature, "lp_count", 32, 1, NULL, 32, "uint32"); > - tdesc_create_reg (feature, "pcl", 33, 1, "", 32, "code_ptr"); > - > - feature =3D tdesc_create_feature (result, "org.gnu.gdb.arc.aux-minimal= "); > - struct tdesc_type *field_type; > - struct tdesc_type *type; > - type =3D tdesc_create_flags (feature, "status32_type", 4); > - tdesc_add_flag (type, 0, "H"); > - tdesc_add_bitfield (type, "E", 1, 2); > - tdesc_add_bitfield (type, "A", 3, 4); > - tdesc_add_flag (type, 5, "AE"); > - tdesc_add_flag (type, 6, "DE"); > - tdesc_add_flag (type, 7, "U"); > - tdesc_add_flag (type, 8, "V"); > - tdesc_add_flag (type, 9, "C"); > - tdesc_add_flag (type, 10, "N"); > - tdesc_add_flag (type, 11, "Z"); > - tdesc_add_flag (type, 12, "L"); > - tdesc_add_flag (type, 13, "R"); > - tdesc_add_flag (type, 14, "SE"); > - > - tdesc_create_reg (feature, "pc", 34, 1, NULL, 32, "code_ptr"); > - tdesc_create_reg (feature, "status32", 35, 1, NULL, 32, "status32_type= "); > - > - tdesc_arc_arcompact =3D result; > -} > diff --git a/gdb/features/arc-arcompact.xml b/gdb/features/arc- > arcompact.xml deleted file mode 100644 index 295e635..0000000 > --- a/gdb/features/arc-arcompact.xml > +++ /dev/null > @@ -1,85 +0,0 @@ > - > - > - > - - > - arc:ARC700 > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > diff --git a/gdb/features/arc-v2.c b/gdb/features/arc-v2.c deleted file m= ode > 100644 index 1eefc24..0000000 > --- a/gdb/features/arc-v2.c > +++ /dev/null > @@ -1,79 +0,0 @@ > -/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: > - Original: arc-v2.xml */ > - > -#include "defs.h" > -#include "osabi.h" > -#include "target-descriptions.h" > - > -struct target_desc *tdesc_arc_v2; > -static void > -initialize_tdesc_arc_v2 (void) > -{ > - struct target_desc *result =3D allocate_target_description (); > - set_tdesc_architecture (result, bfd_scan_arch ("ARCv2")); > - > - struct tdesc_feature *feature; > - > - feature =3D tdesc_create_feature (result, "org.gnu.gdb.arc.core.v2"); > - tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "int"); > - tdesc_create_reg (feature, "gp", 26, 1, NULL, 32, "data_ptr"); > - tdesc_create_reg (feature, "fp", 27, 1, NULL, 32, "data_ptr"); > - tdesc_create_reg (feature, "sp", 28, 1, NULL, 32, "data_ptr"); > - tdesc_create_reg (feature, "ilink", 29, 1, NULL, 32, "code_ptr"); > - tdesc_create_reg (feature, "r30", 30, 1, "", 32, "int"); > - tdesc_create_reg (feature, "blink", 31, 1, NULL, 32, "code_ptr"); > - tdesc_create_reg (feature, "lp_count", 32, 1, NULL, 32, "uint32"); > - tdesc_create_reg (feature, "pcl", 33, 1, "", 32, "code_ptr"); > - > - feature =3D tdesc_create_feature (result, "org.gnu.gdb.arc.aux-minimal= "); > - struct tdesc_type *field_type; > - struct tdesc_type *type; > - type =3D tdesc_create_flags (feature, "status32_type", 4); > - tdesc_add_flag (type, 0, "H"); > - tdesc_add_bitfield (type, "E", 1, 4); > - tdesc_add_flag (type, 5, "AE"); > - tdesc_add_flag (type, 6, "DE"); > - tdesc_add_flag (type, 7, "U"); > - tdesc_add_flag (type, 8, "V"); > - tdesc_add_flag (type, 9, "C"); > - tdesc_add_flag (type, 10, "N"); > - tdesc_add_flag (type, 11, "Z"); > - tdesc_add_flag (type, 12, "L"); > - tdesc_add_flag (type, 13, "DZ"); > - tdesc_add_flag (type, 14, "SC"); > - tdesc_add_flag (type, 15, "ES"); > - tdesc_add_bitfield (type, "RB", 16, 18); > - tdesc_add_flag (type, 19, "AD"); > - tdesc_add_flag (type, 20, "US"); > - tdesc_add_flag (type, 31, "IE"); > - > - tdesc_create_reg (feature, "pc", 34, 1, NULL, 32, "code_ptr"); > - tdesc_create_reg (feature, "status32", 35, 1, NULL, 32, "status32_type= "); > - > - tdesc_arc_v2 =3D result; > -} > diff --git a/gdb/features/arc-v2.xml b/gdb/features/arc-v2.xml deleted fi= le > mode 100644 index 4f8c9a0..0000000 > --- a/gdb/features/arc-v2.xml > +++ /dev/null > @@ -1,92 +0,0 @@ > - > - > - > - - > - arc:ARCv2 > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > diff --git a/gdb/features/arc/aux-arcompact.c b/gdb/features/arc/aux- > arcompact.c > new file mode 100644 > index 0000000..cf85ea8 > --- /dev/null > +++ b/gdb/features/arc/aux-arcompact.c > @@ -0,0 +1,32 @@ > +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: > + Original: aux-arcompact.xml */ > + > +#include "arch/tdesc.h" > + > +static int > +create_feature_arc_aux_arcompact (struct target_desc *result, long > +regnum) { > + struct tdesc_feature *feature; > + > + feature =3D tdesc_create_feature (result, > + "org.gnu.gdb.arc.aux-minimal", "aux-arcompact.xml"); struct > + tdesc_type *field_type; struct tdesc_type *type; type =3D > + tdesc_create_flags (feature, "status32_type", 4); tdesc_add_flag > + (type, 0, "H"); tdesc_add_bitfield (type, "E", 1, 2); > + tdesc_add_bitfield (type, "A", 3, 4); tdesc_add_flag (type, 5, "AE"); > + tdesc_add_flag (type, 6, "DE"); tdesc_add_flag (type, 7, "U"); > + tdesc_add_flag (type, 8, "V"); tdesc_add_flag (type, 9, "C"); > + tdesc_add_flag (type, 10, "N"); tdesc_add_flag (type, 11, "Z"); > + tdesc_add_flag (type, 12, "L"); tdesc_add_flag (type, 13, "R"); > + tdesc_add_flag (type, 14, "SE"); > + > + tdesc_create_reg (feature, "pc", regnum++, 1, NULL, 32, "code_ptr"); > + tdesc_create_reg (feature, "status32", regnum++, 1, NULL, 32, > +"status32_type"); > + return regnum; > +} > diff --git a/gdb/features/arc/aux-arcompact.xml b/gdb/features/arc/aux- > arcompact.xml > new file mode 100644 > index 0000000..d9c2f74 > --- /dev/null > +++ b/gdb/features/arc/aux-arcompact.xml > @@ -0,0 +1,28 @@ > + > + > + > + +name=3D"org.gnu.gdb.arc.aux-minimal"> > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > diff --git a/gdb/features/arc/aux-v2.c b/gdb/features/arc/aux-v2.c new fi= le > mode 100644 index 0000000..f59d759 > --- /dev/null > +++ b/gdb/features/arc/aux-v2.c > @@ -0,0 +1,36 @@ > +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: > + Original: aux-v2.xml */ > + > +#include "arch/tdesc.h" > + > +static int > +create_feature_arc_aux_v2 (struct target_desc *result, long regnum) { > + struct tdesc_feature *feature; > + > + feature =3D tdesc_create_feature (result, > + "org.gnu.gdb.arc.aux-minimal", "aux-v2.xml"); struct tdesc_type > + *field_type; struct tdesc_type *type; type =3D tdesc_create_flags > + (feature, "status32_type", 4); tdesc_add_flag (type, 0, "H"); > + tdesc_add_bitfield (type, "E", 1, 4); tdesc_add_flag (type, 5, "AE"); > + tdesc_add_flag (type, 6, "DE"); tdesc_add_flag (type, 7, "U"); > + tdesc_add_flag (type, 8, "V"); tdesc_add_flag (type, 9, "C"); > + tdesc_add_flag (type, 10, "N"); tdesc_add_flag (type, 11, "Z"); > + tdesc_add_flag (type, 12, "L"); tdesc_add_flag (type, 13, "DZ"); > + tdesc_add_flag (type, 14, "SC"); tdesc_add_flag (type, 15, "ES"); > + tdesc_add_bitfield (type, "RB", 16, 18); tdesc_add_flag (type, 19, > + "AD"); tdesc_add_flag (type, 20, "US"); tdesc_add_flag (type, 31, > + "IE"); > + > + tdesc_create_reg (feature, "pc", regnum++, 1, NULL, 32, "code_ptr"); > + tdesc_create_reg (feature, "status32", regnum++, 1, NULL, 32, > +"status32_type"); > + return regnum; > +} > diff --git a/gdb/features/arc/aux-v2.xml b/gdb/features/arc/aux-v2.xml new > file mode 100644 index 0000000..558a171 > --- /dev/null > +++ b/gdb/features/arc/aux-v2.xml > @@ -0,0 +1,32 @@ > + > + > + > + +name=3D"org.gnu.gdb.arc.aux-minimal"> > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > diff --git a/gdb/features/arc/core-arcompact.c b/gdb/features/arc/core- > arcompact.c > new file mode 100644 > index 0000000..e08763a > --- /dev/null > +++ b/gdb/features/arc/core-arcompact.c > @@ -0,0 +1,47 @@ > +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: > + Original: core-arcompact.xml */ > + > +#include "arch/tdesc.h" > + > +static int > +create_feature_arc_core_arcompact (struct target_desc *result, long > +regnum) { > + struct tdesc_feature *feature; > + > + feature =3D tdesc_create_feature (result, > +"org.gnu.gdb.arc.core.arcompact", "core-arcompact.xml"); > + tdesc_create_reg (feature, "r0", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r1", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r2", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r3", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r4", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r5", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r6", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r7", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r8", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r9", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r10", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r11", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r12", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r13", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r14", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r15", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r16", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r17", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r18", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r19", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r20", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r21", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r22", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r23", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r24", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r25", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "gp", regnum++, 1, NULL, 32, "data_ptr"); > + tdesc_create_reg (feature, "fp", regnum++, 1, NULL, 32, "data_ptr"); > + tdesc_create_reg (feature, "sp", regnum++, 1, NULL, 32, "data_ptr"); > + tdesc_create_reg (feature, "ilink1", regnum++, 1, NULL, 32, > +"code_ptr"); > + tdesc_create_reg (feature, "ilink2", regnum++, 1, NULL, 32, > +"code_ptr"); > + tdesc_create_reg (feature, "blink", regnum++, 1, NULL, 32, > +"code_ptr"); > + tdesc_create_reg (feature, "lp_count", regnum++, 1, NULL, 32, > +"uint32"); > + tdesc_create_reg (feature, "pcl", regnum++, 1, "", 32, "code_ptr"); > + return regnum; > +} > diff --git a/gdb/features/arc/core-arcompact.xml b/gdb/features/arc/core- > arcompact.xml > new file mode 100644 > index 0000000..55b566a > --- /dev/null > +++ b/gdb/features/arc/core-arcompact.xml > @@ -0,0 +1,58 @@ > + > + > + > + +name=3D"org.gnu.gdb.arc.core.arcompact"> > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + + bitsize=3D"32" type=3D"data_ptr"/> + type=3D"data_ptr"/> > + > + > + + bitsize=3D"32" type=3D"code_ptr"/> + type=3D"code_ptr"/> > + > + > + > + > + > + > + > + > + > + > + > + > diff --git a/gdb/features/arc/core-v2.c b/gdb/features/arc/core-v2.c new = file > mode 100644 index 0000000..ebe33be > --- /dev/null > +++ b/gdb/features/arc/core-v2.c > @@ -0,0 +1,47 @@ > +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: > + Original: core-v2.xml */ > + > +#include "arch/tdesc.h" > + > +static int > +create_feature_arc_core_v2 (struct target_desc *result, long regnum) { > + struct tdesc_feature *feature; > + > + feature =3D tdesc_create_feature (result, "org.gnu.gdb.arc.core.v2", > +"core-v2.xml"); > + tdesc_create_reg (feature, "r0", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r1", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r2", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r3", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r4", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r5", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r6", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r7", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r8", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r9", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r10", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r11", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r12", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r13", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r14", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r15", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r16", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r17", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r18", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r19", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r20", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r21", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r22", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r23", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r24", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "r25", regnum++, 1, NULL, 32, "int"); > + tdesc_create_reg (feature, "gp", regnum++, 1, NULL, 32, "data_ptr"); > + tdesc_create_reg (feature, "fp", regnum++, 1, NULL, 32, "data_ptr"); > + tdesc_create_reg (feature, "sp", regnum++, 1, NULL, 32, "data_ptr"); > + tdesc_create_reg (feature, "ilink", regnum++, 1, NULL, 32, > +"code_ptr"); > + tdesc_create_reg (feature, "r30", regnum++, 1, "", 32, "int"); > + tdesc_create_reg (feature, "blink", regnum++, 1, NULL, 32, > +"code_ptr"); > + tdesc_create_reg (feature, "lp_count", regnum++, 1, NULL, 32, > +"uint32"); > + tdesc_create_reg (feature, "pcl", regnum++, 1, "", 32, "code_ptr"); > + return regnum; > +} > diff --git a/gdb/features/arc/core-v2.xml b/gdb/features/arc/core-v2.xml > new file mode 100644 index 0000000..8c8ad39 > --- /dev/null > +++ b/gdb/features/arc/core-v2.xml > @@ -0,0 +1,61 @@ > + > + > + > + +name=3D"org.gnu.gdb.arc.core.v2"> > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + + bitsize=3D"32" type=3D"data_ptr"/> + type=3D"data_ptr"/> > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c index > 4f5e9d6..414c8b1 100644 > --- a/gdb/target-descriptions.c > +++ b/gdb/target-descriptions.c > @@ -2327,7 +2327,9 @@ maint_print_c_tdesc_cmd (const char *args, int > from_tty) > counterparts. */ > if (startswith (filename_after_features.c_str (), "i386/32bit-") > || startswith (filename_after_features.c_str (), "i386/64bit-") > - || startswith (filename_after_features.c_str (), "i386/x32-core.xm= l")) > + || startswith (filename_after_features.c_str (), "i386/x32-core.xm= l") > + || startswith (filename_after_features.c_str (), "arc/core-") > + || startswith (filename_after_features.c_str (), "arc/aux-")) > { > print_c_feature v (filename_after_features); >=20 > -- > 2.8.3