From patchwork Wed Feb 28 20:20:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sven Schnelle X-Patchwork-Id: 86554 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2E72E3858413 for ; Wed, 28 Feb 2024 20:21:17 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from catfish.pear.relay.mailchannels.net (catfish.pear.relay.mailchannels.net [23.83.216.32]) by sourceware.org (Postfix) with ESMTPS id 6D3643858C52 for ; Wed, 28 Feb 2024 20:20:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6D3643858C52 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=stackframe.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=stackframe.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 6D3643858C52 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=23.83.216.32 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1709151651; cv=pass; b=CNl/PyVg2FEaymwPogZGMX53Z/wj7OOlhdTK1EAnImI986Y110LXSloMvwz07vJGzM95Bo+g6OhhD1nXbCkYCZgF7tOQ/y3VJEZtIG77bZlnQHzD4gZoGgXFaybor20juWaaKUS/OExkrWUR4juMktY6s6qMQ5nbTCIKaNIOA50= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1709151651; c=relaxed/simple; bh=kapZU4c1yJUTDqw8uU8VT5heA/SllQahpxGpP4Qua3k=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:From:To:Subject:Date: Message-ID:MIME-Version; b=sOyRQAV3NRqXvCq/h5yXaFFgda1Mu7pXVs5WbL1UxzQmN63Xd5rYo8vpsaz/sLZwCzmMELetCXowlMU+QEYQR9t6I5ug28XaPM/gBYPffjmTzOD3scSiL5+bx4+0a0My9VSoEjyJgk1JuALRCdSsSV6kCTPgxVvN3jE1pZKtHKQ= ARC-Authentication-Results: i=3; server2.sourceware.org X-Sender-Id: _forwarded-from|134.3.94.10 Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 7CD942C2115 for ; Wed, 28 Feb 2024 20:20:48 +0000 (UTC) Received: from outbound5b.eu.mailhop.org (unknown [127.0.0.6]) (Authenticated sender: duocircle) by relay.mailchannels.net (Postfix) with ESMTPA id 80DB22C135F for ; Wed, 28 Feb 2024 20:20:47 +0000 (UTC) ARC-Seal: i=2; s=arc-2022; d=mailchannels.net; t=1709151647; a=rsa-sha256; cv=pass; b=b9KbTjM1PVef7IYF+9ToexNZ9xYp+QzGfz08QcnKnUYO7PYrw2tZAU4ex431nPIfIJ7mC0 Xdoh9z3hiQtY+xTmpSQCwDdlfTiA1cpsQ7oZhvOFIGdnk9K9XczWkdQrHbbbw7mPcieQQD DNkFl+1rbHqfy0New6fM0i1csPdkkiR/4nkSG0hW8nVZLx67MRswlRtj0XLZB+0htZ2GMX Xy1mm0k/uxuhTK4arlFBMm5b28R7ZppPW/Jh8MftjOW0hozMu2aVnnsMoRS70WrLPqeWTJ xFx12MIrIPiGgrsQ48Tc/nRqfJjp43i1+OLqjMHOKaBpiPy4vxCTPjjJspEtQw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1709151647; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:dkim-signature; bh=t/+5GQGn214BEdXBZoKcbrUdRr3fqpVGE/0kSLq9AHE=; b=gRPjzvx5+w+bDn2GmCC26+1DbIiSmgVSe4Hk8w8zy6j01DGivUKOI1SJmWAP3kWW3KcUiN U+2qAMg0VIV+9LNLVvDyi/xlGA6wbuNo+y5V/U/AJkTsRcgEZEEV1D357aD1Eh9wbNSIp2 cZ6Oy/rC/TK3JM4QuH/Fk3qWyOt0PJZE9rhnj02GwR/WXJtaBhmyAt0mMEgQQ3Ru1f33Af o8yImOjuM7XGMSo3ayKwBOszniwVA6DLoQZOIC2xhVASYsF2kjMkOLP4O2J7vZc4e/ZIgE Wqjlrq/PEVgniA+LjslUkxksKRNjI8dcPhkkwXBMKLuEktCa4CoFumsVMd8QtA== ARC-Authentication-Results: i=2; rspamd-55b4bfd7cb-zdc5v; arc=pass ("outbound.mailhop.org:s=arc-outbound20181012:i=1"); auth=pass smtp.auth=duocircle smtp.mailfrom=svens@stackframe.org X-Sender-Id: _forwarded-from|134.3.94.10 X-MC-Relay: Forwarding X-MailChannels-SenderId: _forwarded-from|134.3.94.10 X-MailChannels-Auth-Id: duocircle X-Print-Callous: 6dd6e9d74f7a62b9_1709151648218_1617342685 X-MC-Loop-Signature: 1709151648218:992518988 X-MC-Ingress-Time: 1709151648217 Received: from outbound5b.eu.mailhop.org (outbound5b.eu.mailhop.org [3.125.66.160]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.124.220.170 (trex/6.9.2); Wed, 28 Feb 2024 20:20:48 +0000 ARC-Seal: i=1; a=rsa-sha256; t=1709151615; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=EqeK8YMzyj1rA/q29oWlC4rodNgOfe2UWNc0NE7sNCu9WwEb3c3IcQAj1YzMsiXjfdppCzZnvzFOK qABS2CyArcgCcBGsc9/2HjgvS3A8lw45vmL9EzLYa0qz8M/tba9aopcMdfuVv4pCV3v0TS/KCH50wG 7IWSQ4yFHhZJUzpCl/QH/nRZUaoipFnIdbL0mk1aLZsWF8yIip5GazmhdvlEweWkarsScYOMASpjy9 QNZKaw+mdJ2A9Bggew0Rb0G9FBLNUWF+Un/lL2x25/W9T+y6g6fe3wi/WDGIy+LmHMG+wRqcw1Eiva GH9yf3U30wTpHGLUMD53mcVtBrtT6Dg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=arc-outbound20181012; h=content-transfer-encoding:mime-version:message-id:date:subject:cc:to:from: dkim-signature:dkim-signature:dkim-signature:from; bh=t/+5GQGn214BEdXBZoKcbrUdRr3fqpVGE/0kSLq9AHE=; b=XwLRqr3e47UpSEs3sZjVL4wAqiVy6PdDTUo0t0qML4EoqPcDiQ/FeANTVA+NkBb0/Nb6WlDKfr7mL eMxscOUKALs2QgnDychvBf/RRssdnyb5iopp36NebNFPdkM/jwrCjiAGalY78NJnhODLAia9HJl9ll y+xI3UTEbGouUgdtJJhiMiwphODG8FkqK6RJU104eKWzhd3qMWxa4fiwruM0Cgx+hIlIggWsHqLWqN mIq4Bk5kacXMlQwQ6k9FRVsi4JlG7w9kjCNZV9E9rkW6peUnv3xBjCrw2LmzWXyEIOuLRuPNiY8iUV zy6yLOGhdatLXlLpk2heQHlTFC9mUFA== ARC-Authentication-Results: i=1; outbound3.eu.mailhop.org; spf=pass smtp.mailfrom=stackframe.org smtp.remote-ip=130.180.31.158; dkim=pass header.d=stackframe.org header.s=dkim1 header.a=rsa-sha256 header.b=FuCK1QFa; dmarc=none header.from=stackframe.org; arc=none header.oldest-pass=0; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stackframe.org; s=duo-1634547266507-560c42ae; h=content-transfer-encoding:mime-version:message-id:date:subject:cc:to:from: from; bh=t/+5GQGn214BEdXBZoKcbrUdRr3fqpVGE/0kSLq9AHE=; b=FPs2HbK+SQsBKHlhFhYQgxZjy5DCHWITxUyfmzl9arSxF3D9Z1h2nxxXdv8Z54gSOjuVV8BsyRnHM gxoJw1BHg+EyeyuUz9zYugXUXxccT1tvFCTrDkQOfmeD+DlQ65e7ASqnIMf4dkgj7bMaFZP2SybhZ9 CTSDhDJKpHMn4HFQ= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=dkim-high; h=content-transfer-encoding:mime-version:message-id:date:subject:cc:to:from: from; bh=t/+5GQGn214BEdXBZoKcbrUdRr3fqpVGE/0kSLq9AHE=; b=AM7UzRMh0ux0Zw65lfV0VJoS1owO/q6JJmjk4IMn0jiCe6DSV6NXIDU8cOkfpoRi7cQJq5GAQrPFG OrT8CJFltpjTpjCU7BhOYRUaZDw0KIk8jNj8J6OKEd2OJfN7Hiw0laE3ZPpOOYsVElrpLqgQDLFGz6 k9lUx+rPOInN0RbTmuHYupXCwIuWUfonQNCIZ0+GX36YJIi1F+3HmsQj8RMjPyOZa1F0lSwkaBk6hZ GavvkUBXYZ6yucc00gP6zDg7Pyt0uHxXody5Ir2IYswKbSHbIM3WbWJaSF/DcNsjEzuXvTb5BiajeM ed+xb75NPw57QkZ/Nejqlh6LkqxUCRQ== X-Originating-IP: 130.180.31.158 X-MHO-RoutePath: dG9ta2lzdG5lcm51 X-MHO-User: c6bf9579-d676-11ee-af94-eda7e384987e X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Mail-Handler: DuoCircle Outbound SMTP Received: from mail.duncanthrax.net (mail.duncanthrax.net [130.180.31.158]) by outbound3.eu.mailhop.org (Halon) with ESMTPSA id c6bf9579-d676-11ee-af94-eda7e384987e; Wed, 28 Feb 2024 20:20:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=stackframe.org; s=dkim1; h=Content-Transfer-Encoding:MIME-Version: Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=t/+5GQGn214BEdXBZoKcbrUdRr3fqpVGE/0kSLq9AHE=; b=FuCK1QFarSnJeUTDOSCcJGbP// wYg/U9C00jFaWPKgx3c6aw60LpycwEdBFGE//bUYEMnwTxHrhJRN/By5nFL3G2pwaw/ajabh5MAR/ Jb28MsXaVQCYUIBB2CA92EQxPXXTXoQr3IJr54f/OmIMkz8pDOZmeyg8D+1+VCKhqABLSxNbsuxaw 6IHXtMx3yr+o631MDHNuuot3FZkDc2Loa9wWSSg0YkP4A8sxBKPQknHuxq409lfk/KDhefRdzwA8G Hn4thh04IKwRdEWB3dB79kBEAs2gZ9UxRr0yY88c2TSqeXUMf1aN7vjr1+Pk/NrJQPz6POeoHFMfu 05aH9ERQ==; Received: from ip-134-003-094-010.um41.pools.vodafone-ip.de ([134.3.94.10] helo=t14.stackframe.org) by mail.duncanthrax.net with esmtpa (Exim 4.96) (envelope-from ) id 1rfQPr-000DnO-3C; Wed, 28 Feb 2024 21:20:36 +0100 From: Sven Schnelle To: gdb-patches@sourceware.org Cc: deller@gmx.de, Richard Henderson , Sven Schnelle Subject: [PATCH] gdb/hppa: guess g packet size Date: Wed, 28 Feb 2024 21:20:28 +0100 Message-ID: <20240228202028.1517040-1-svens@stackframe.org> X-Mailer: git-send-email 2.43.2 MIME-Version: 1.0 X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org With qemu supporting 64 bit now, add some code to determine the register size of a hppa remote target. This first checks the PROPERTY_GP32/PROPERTY_GP64 flags in target_desc, and uses bfd_arch_info as fallback. Signed-off-by: Sven Schnelle --- gdb/hppa-tdep.c | 47 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 5 deletions(-) diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c index 30128bafac4..d501e8470b6 100644 --- a/gdb/hppa-tdep.c +++ b/gdb/hppa-tdep.c @@ -34,6 +34,8 @@ #include "frame-unwind.h" #include "frame-base.h" +#include "remote.h" +#include "target-descriptions.h" #include "gdbcore.h" #include "gdbcmd.h" #include "gdbtypes.h" @@ -43,6 +45,14 @@ static bool hppa_debug = false; +/* Properties (for struct target_desc) describing the g/G packet + layout. */ +#define PROPERTY_GP32 "internal: transfers-32bit-registers" +#define PROPERTY_GP64 "internal: transfers-64bit-registers" + +struct target_desc *hppa_tdesc32; +struct target_desc *hppa_tdesc64; + /* Some local constants. */ static const int hppa32_num_regs = 128; static const int hppa64_num_regs = 96; @@ -2978,6 +2988,17 @@ hppa_skip_trampoline_code (const frame_info_ptr &frame, CORE_ADDR pc) -- chastain 2003-12-18 */ +static void +hppa_register_g_packet_guesses (struct gdbarch *gdbarch) +{ + /* If the size matches the set of 32-bit or 64-bit integer registers, + assume that's what we've got. */ + register_remote_g_packet_guess (gdbarch, hppa32_num_regs * 4, hppa_tdesc32); + register_remote_g_packet_guess (gdbarch, hppa64_num_regs * 8, hppa_tdesc64); + + /* Otherwise we don't have a useful guess. */ +} + static struct gdbarch * hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) { @@ -2991,14 +3012,24 @@ hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) = gdbarch_alloc (&info, gdbarch_tdep_up (new hppa_gdbarch_tdep)); hppa_gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); - /* Determine from the bfd_arch_info structure if we are dealing with - a 32 or 64 bits architecture. If the bfd_arch_info is not available, - then default to a 32bit machine. */ - if (info.bfd_arch_info != NULL) + /* Determine from the target description if we are dealing with + a 32 or 64 bits architecture. If the target description is not + available, then check whether bfd_arch_info could be used. + Otherwise default to a 32bit machine. + */ + if (info.target_desc != NULL) { + if (tdesc_property (info.target_desc, PROPERTY_GP64) != NULL) + tdep->bytes_per_address = 8; + else if (tdesc_property (info.target_desc, PROPERTY_GP32) != NULL) + tdep->bytes_per_address = 4; + } else if (info.bfd_arch_info != NULL) { tdep->bytes_per_address = info.bfd_arch_info->bits_per_address / info.bfd_arch_info->bits_per_byte; - else + } else { tdep->bytes_per_address = 4; + } + + hppa_register_g_packet_guesses (gdbarch); tdep->find_global_pointer = hppa_find_global_pointer; @@ -3125,6 +3156,12 @@ _initialize_hppa_tdep () { gdbarch_register (bfd_arch_hppa, hppa_gdbarch_init, hppa_dump_tdep); + hppa_tdesc32 = allocate_target_description ().release (); + set_tdesc_property (hppa_tdesc32, PROPERTY_GP32, ""); + + hppa_tdesc64 = allocate_target_description ().release (); + set_tdesc_property (hppa_tdesc64, PROPERTY_GP64, ""); + add_cmd ("unwind", class_maintenance, unwind_command, _("Print unwind table entry at given address."), &maintenanceprintlist);