From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) by sourceware.org (Postfix) with ESMTPS id 3F29A386100B for ; Sat, 5 Jun 2021 09:49:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3F29A386100B Received: by mail-ej1-x636.google.com with SMTP id ho18so7269539ejc.8 for ; Sat, 05 Jun 2021 02:49:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=PE6tvCIfcnM/2Jp/wpDyg/RvwzM42r1VttFZYzFclWI=; b=c5YL4llqFMsbl4nb+IAVxkWNkDXKW/ZkcQeYPas1dZ1YZW4rJnsbgjScMqY9xBbZRk t3fmNdrrYCdQ2s4T0mHGRdxT368VZrsAupno4iiUiz1O76YSBq4Ydu7qkEaR4l/htu0Y goV5UEBGUl0rcOlsL7D7PqdGDCR0xrqlacAFQpztUIf+5fDjn6qcXmG6mPxvRGV5ldWp uRNcJ2QTUwF8azaCsQyVnlBZSH2sVLCBnqerTWqNETMEXQvdga30149ftxHDAnzT8ZLQ uyNVgfWAsU6DzTkynrZCcEYdai8+uYyzBTiSnB3eXZOujecwWhBTE4MgSPrGGcw6FZXI nChQ== X-Gm-Message-State: AOAM532SpPK+m46+VVPVspOq39b4sNgAnLXW+WXVpxki9gmXOy/UyFdd FD3SsoIvnXw6NgRkFiAqfFuGtVwnNrAlCQ== X-Google-Smtp-Source: ABdhPJwlMmHqrXTqdmvH21sPIxT2J3Z+rseYC2J+Fkwlogp45v1hdh+1yU/F1b/igx4IDsvW0295gw== X-Received: by 2002:a17:906:c247:: with SMTP id bl7mr8711838ejb.288.1622886594245; Sat, 05 Jun 2021 02:49:54 -0700 (PDT) Received: from atlantis.fritz.box ([2001:983:21dc:1:d8bd:6701:5290:8baf]) by smtp.gmail.com with ESMTPSA id f21sm4591319edr.45.2021.06.05.02.49.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Jun 2021 02:49:53 -0700 (PDT) From: Shahab Vahedi To: gdb-patches@sourceware.org Cc: Shahab Vahedi , Shahab Vahedi , Eli Zaretskii , Tom Tromey , Francois Bedard Subject: [PUSHED] arc: Add 'set disassembler-options' support Date: Sat, 5 Jun 2021 11:50:02 +0200 Message-Id: <20210605095002.11338-1-shahab.vahedi@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210603174247.6999-1-shahab.vahedi@gmail.com> References: <20210603174247.6999-1-shahab.vahedi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-10.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, PDS_OTHER_BAD_TLD, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Jun 2021 09:50:05 -0000 From: Shahab Vahedi Implement ARC target support for passing options to the disassembler through the command interface. e.g.: gdb> set disassembler-options cpu=hs38_linux ... gdb/ChangeLog: * NEWS: Document 'set disassembler-options' support for the ARC target. * arc-tdep.c (arc_gdbarch_init): Set 'gdbarch_valid_disassembler_options'. gdb/doc/ChangeLog: * gdb.texinfo (Source and Machine Code): Document 'set disassembler-options' support for the ARC target. gdb/testsuite/ChangeLog: * gdb.arch/arc-disassembler-options.exp: New test. * gdb.arch/arc-disassembler-options.s: New test source. --- gdb/ChangeLog | 7 +++ gdb/NEWS | 3 ++ gdb/arc-tdep.c | 6 ++- gdb/doc/ChangeLog | 5 +++ gdb/doc/gdb.texinfo | 4 +- gdb/testsuite/ChangeLog | 5 +++ .../gdb.arch/arc-disassembler-options.exp | 45 +++++++++++++++++++ .../gdb.arch/arc-disassembler-options.s | 21 +++++++++ 8 files changed, 92 insertions(+), 4 deletions(-) create mode 100644 gdb/testsuite/gdb.arch/arc-disassembler-options.exp create mode 100644 gdb/testsuite/gdb.arch/arc-disassembler-options.s diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8ebb552123f..9fc2310d144 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2021-06-05 Shahab Vahedi + + * NEWS: Document 'set disassembler-options' support for the ARC + target. + * arc-tdep.c (arc_gdbarch_init): Set + 'gdbarch_valid_disassembler_options'. + 2021-06-04 Tom Tromey * dwarf2/read.h (dwarf2_fetch_die_type_sect_off): Add 'var_name' diff --git a/gdb/NEWS b/gdb/NEWS index ab678acec8b..56743fc9aea 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -3,6 +3,9 @@ *** Changes since GDB 10 +* The 'set disassembler-options' command now supports specifying options + for the ARC target. + * GDB now supports general memory tagging functionality if the underlying architecture supports the proper primitives and hooks. Currently this is enabled only for AArch64 MTE. diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c index ece802545c0..3afbf4264fe 100644 --- a/gdb/arc-tdep.c +++ b/gdb/arc-tdep.c @@ -2434,11 +2434,13 @@ arc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) arc_disassembler_options = NULL; break; } - set_gdbarch_disassembler_options (gdbarch, - &arc_disassembler_options); } } + set_gdbarch_disassembler_options (gdbarch, &arc_disassembler_options); + set_gdbarch_valid_disassembler_options (gdbarch, + disassembler_options_arc ()); + tdesc_use_registers (gdbarch, tdesc, std::move (tdesc_data)); return gdbarch; diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 82bc4f61eba..61d40b92e63 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2021-06-05 Shahab Vahedi + + * gdb.texinfo (Source and Machine Code): Document 'set + disassembler-options' support for the ARC target. + 2021-06-04 Hannes Domani * python.texi (TUI Windows In Python): Document Window.click. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 90d827a50e7..d09b86cda95 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -9879,8 +9879,8 @@ The default value is the empty string. If it is necessary to specify more than one disassembler option, then multiple options can be placed together into a comma separated list. -Currently this command is only supported on targets ARM, MIPS, PowerPC -and S/390. +Currently this command is only supported on targets ARC, ARM, MIPS, +PowerPC and S/390. @kindex show disassembler-options @item show disassembler-options diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 4c07d3ae0ba..d78bf06d62c 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2021-06-05 Shahab Vahedi + + * gdb.arch/arc-disassembler-options.exp: New test. + * gdb.arch/arc-disassembler-options.s: New test source. + 2021-06-04 Tom Tromey * gdb.ada/array_of_symbolic_length.exp: New file. diff --git a/gdb/testsuite/gdb.arch/arc-disassembler-options.exp b/gdb/testsuite/gdb.arch/arc-disassembler-options.exp new file mode 100644 index 00000000000..6bfe06b3d9d --- /dev/null +++ b/gdb/testsuite/gdb.arch/arc-disassembler-options.exp @@ -0,0 +1,45 @@ +# Copyright 2021 Free Software Foundation, Inc. + +# 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 . + +# Test ARC disassembler options. + +if { ![istarget "arc-*-*"] } then { + verbose "Skipping ARC disassembler option test." + return +} + +standard_testfile .s +set objfile [standard_output_file ${testfile}.o] + +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {}] \ + != "" } { + return +} + +clean_restart ${objfile} + +proc arc_disassemble_test { func insn mesg } { + gdb_test "disassemble $func" \ + "Dump of assembler code for function $func:\r\n\ + \[^:\]+:\t$insn\r\nEnd of assembler dump\." \ + $mesg +} + +# Verify defaults. +arc_disassemble_test foo "lr\tr0,\\\[tlbpd0\\\]" "disassemble default" + +# Verify option overrides. +gdb_test "set disassembler-options cpu=arcem" +arc_disassemble_test foo "lr\tr0,\\\[1120\\\]" "disassemble cpu=arcem" diff --git a/gdb/testsuite/gdb.arch/arc-disassembler-options.s b/gdb/testsuite/gdb.arch/arc-disassembler-options.s new file mode 100644 index 00000000000..9f64ce43a43 --- /dev/null +++ b/gdb/testsuite/gdb.arch/arc-disassembler-options.s @@ -0,0 +1,21 @@ +# This test is part of GDB, the GNU debugger. +# +# Copyright 2021 Free Software Foundation, Inc. +# +# 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 . + +.globl foo +foo: + lr r0, [tlbpd0] +.end foo -- 2.31.1