From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 0XaQGfCdCWmPAh8AWB0awg (envelope-from ) for ; Tue, 04 Nov 2025 01:32:16 -0500 Authentication-Results: simark.ca; dkim=pass (1024-bit key; secure) header.d=stackframe.org header.i=@stackframe.org header.a=rsa-sha256 header.s=duo-1634547266507-560c42ae header.b=mTDkqvVy; dkim=pass (2048-bit key; unprotected) header.d=outbound.mailhop.org header.i=@outbound.mailhop.org header.a=rsa-sha256 header.s=dkim-high header.b=Fr70AEhR; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=stackframe.org header.i=@stackframe.org header.a=rsa-sha256 header.s=dkim1 header.b=j85xov9G; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 650BA1E0BC; Tue, 04 Nov 2025 01:32:16 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_MED,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id C3EC71E057 for ; Tue, 04 Nov 2025 01:32:15 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4D6E83857BBF for ; Tue, 4 Nov 2025 06:32:04 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4D6E83857BBF Authentication-Results: sourceware.org; dkim=pass (1024-bit key, secure) header.d=stackframe.org header.i=@stackframe.org header.a=rsa-sha256 header.s=duo-1634547266507-560c42ae header.b=mTDkqvVy; dkim=pass (2048-bit key, unprotected) header.d=outbound.mailhop.org header.i=@outbound.mailhop.org header.a=rsa-sha256 header.s=dkim-high header.b=Fr70AEhR; dkim=fail reason="signature verification failed" (2048-bit key, secure) header.d=stackframe.org header.i=@stackframe.org header.a=rsa-sha256 header.s=dkim1 header.b=j85xov9G Received: from cheetah.pear.relay.mailchannels.net (cheetah.pear.relay.mailchannels.net [23.83.216.34]) by sourceware.org (Postfix) with ESMTPS id B9AB73858CDA for ; Tue, 4 Nov 2025 06:30:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B9AB73858CDA 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 B9AB73858CDA Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=23.83.216.34 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1762237850; cv=pass; b=j6ZTmMy/lwJwMe2SnVjslUT9t2i/GIf/ewJteueW4IHouXmhQCfSa07EGkFNtSa0ty72q0T96+mfMCvycMCi9t20Rv118I7o9cl4z0VZQWlGYzlHp4OSazmBYiIj/pZ7nCo6+goYWUW3psvuIK4G13qcbEbv2jf4WP5Qa15ljl4= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1762237850; c=relaxed/simple; bh=G5J0Uq6mqwTnYW/Ygb5ZU8XwNyA7BN64ATkAYlzde5g=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:From:To:Subject:Date: Message-ID:MIME-Version; b=Hu8uwLtM0GsH9+5GBBEUaMt9k1X4WXAKTozfFhz9zerfuFVJSXXyQg4/Z/54P8vFRREgVsAhYMb0py1DzqFIFsMXLN6iScy3YN7F0fb1Z997L/J/9NYTJ49YpkgCev10dWIRh2BZH4/oHXFoxolNtsjZuJ1pj0hum19QANVnnAk= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B9AB73858CDA X-Sender-Id: _forwarded-from|130.180.31.158 Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 8C4558C0C19 for ; Tue, 04 Nov 2025 06:30:48 +0000 (UTC) Received: from outbound5d.eu.mailhop.org (trex-green-7.trex.outbound.svc.cluster.local [100.123.217.203]) (Authenticated sender: duocircle) by relay.mailchannels.net (Postfix) with ESMTPA id 79D8B8C12B4 for ; Tue, 04 Nov 2025 06:30:47 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1762237847; a=rsa-sha256; cv=none; b=lsufG06jAa96ko0yQrBGWv/MMQi4psIwKIfqjatYR39Lsc2tYpGrl3Pny5/CbwioF3vbDc +RGEp4c4BO1e5wMv+u2wi8cEc6SMEwmQaR4AHjKs32ywQmT3l04wLcR0BxRkKCuEqhtMzj WftmbuZ1BIgOBffA7ps0K2PABRE9l7Aqr6q3xzeaU4FkADeEC4Lo3reNO7lDjIeK2J3oPQ UK2FIGDEmmGPTJs3vD5Y4uUN3Ma5anY2YRb70mOQGgo+qa/AOY7mTIX1yZCKwNylUd+Ct6 6vdAu25zWUmdfkTgCx9DwqxWj070mBQNsHSOKrAb167gCZ1PAGTN1eVb/qxrxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1762237847; 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=JjcI2GkPR9X2oMgc40DsqNOfx8smxIynEdhmCimQYeQ=; b=5yhcMJy2qy5XLgFmHF8mKdCdg0cHjsHYyWs8/tqrNbVLcQfC1pdchCOfVe1tCooXq7F1gp BYL+pgWh+w3g0Ffb/u18Pf3nJN1/fJmYuNcA7G/IC1znGpbvlMwaKfAuAxSASGd0WVES8d 4Wss0uxTo5opuHC+3pzpHgU1eQWtOJ8s9Ti6kvPAl+fgPf6yXwZX95aLpOFo3CV1HLRlG8 iQnhO9lBPfPrhYu0HsFTp4sO9gUVU9LThdMjF6DLzgMfwIkRv2OjljjP5vQqltpY8v1wPT REHWDe8CjTVGwBlaxh2+iOkJxW+RdDXhSY0a8tD2EZv5PETDLbSVBZFThdk+gQ== ARC-Authentication-Results: i=1; rspamd-77bb85d8d5-49tfw; auth=pass smtp.auth=duocircle smtp.mailfrom=svens@stackframe.org X-Sender-Id: _forwarded-from|130.180.31.158 X-MC-Relay: Forwarding X-MailChannels-SenderId: _forwarded-from|130.180.31.158 X-MailChannels-Auth-Id: duocircle X-Oafish-Occur: 7c964d4e1528f989_1762237848472_4116737819 X-MC-Loop-Signature: 1762237848472:3110002427 X-MC-Ingress-Time: 1762237848471 Received: from outbound5d.eu.mailhop.org (outbound5d.eu.mailhop.org [3.121.156.226]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.123.217.203 (trex/7.1.3); Tue, 04 Nov 2025 06:30:48 +0000 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: cfbl-address:cfbl-feedback-id:from; bh=JjcI2GkPR9X2oMgc40DsqNOfx8smxIynEdhmCimQYeQ=; b=mTDkqvVyUHBmT4foftBIOgaVP5Aw22kwAAcBSt5TJgSqA6uQTjT9O2cxmuPVTfHjDNSqJnxYOE6DA 911OLkm8YEJ7LiXzB6ybMSMGeYFJjSaQScrphQ8q8vCA1tUFL+ZWIJQC+2Y3uVi3dgRRl3J3C+NqT0 gzZwoOKjVrzOVUGU= 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: cfbl-address:cfbl-feedback-id:from; bh=JjcI2GkPR9X2oMgc40DsqNOfx8smxIynEdhmCimQYeQ=; b=Fr70AEhRZMSz44v5lQ4IQMB38c+qrPfji8ZCTjL6KGjk9VGq2DCpJX9R4BiSo1RWLenkhWEZkRfu2 2PBo0jFcwTrj3SZvMqXBqTe1QnVPtAQzzr6fM8vL88a0DxD/cMLogVAaX4oSBstpC4/uM5nxywfYmq WXFicwo8vSNtrPlQ+mCRwGjGKr36D/Nw/991r4Q628t3VAjKRTkcNYzU+JEYnL6wyGDlDUdAYyWP0u RsVLT8OAos0jtFV344Bm1G0zQKxxNfb6LAJXbNN/y/se8HrVtAtSk3FbFKz+wVpHvZy6dhmBHVIIor dyF+xZ0fZJGuO6l5JsuHmGx3dxHGBrA== X-Originating-IP: 130.180.31.158 X-MHO-RoutePath: dG9ta2lzdG5lcm51 X-MHO-User: c9a7bc29-b947-11f0-b7ac-5f56af36decb X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Mail-Handler: DuoCircle Outbound SMTP CFBL-Feedback-ID: c9a7bc29-b947-11f0-b7ac-5f56af36decb:5 CFBL-Address: prvs=0403dc4dd1=abuse@outbound.mailhop.org; report=arf Received: from mail.duncanthrax.net (mail.duncanthrax.net [130.180.31.158]) by outbound3.eu.mailhop.org (Halon) with ESMTPSA id c9a7bc29-b947-11f0-b7ac-5f56af36decb; Tue, 04 Nov 2025 06:30:43 +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=JjcI2GkPR9X2oMgc40DsqNOfx8smxIynEdhmCimQYeQ=; b=j85xov9G9HXXdK+bkaAOvdiuTq I5/4qlPR7hBKBh8XNK7wmGEY+3Qfp8hg7fKhRGfIJkq7dubKpkuEjqchs/Gl0BMDtCfDZEqTh5EJU ErhlP0lDaR1nMi33Ds9pJikgJILbx9YasKvlXd68azydCCGAoxcMi4PKibxSinWCwqIB3yT9hLv2a ekEjy0zSxoUvOE5DSX/J1hms1bP4Dym2PHs2AT4S0bb3hPsOosU/L2LrOct/I5H2rNIJ40jkAZ9/0 7+cNp0oWU7NUsl7KLSZRklEaAefhVs6U0w9rb6+hIsTSaXTklWRgZ/XNxnOzYElQBstJZbtLkC37t pAbV2YMg==; Received: from [134.3.93.166] (helo=debian.stackframe.org) by mail.duncanthrax.net with esmtpa (Exim 4.97) (envelope-from ) id 1vGAZ0-0000000351r-1Lxy; Tue, 04 Nov 2025 07:30:42 +0100 From: Sven Schnelle To: gdb-patches@sourceware.org Cc: Helge Deller , John David Anglin , binutils@sourceware.org, Sven Schnelle Subject: [PATCH v2] gdb/hppa: guess g packet size Date: Tue, 4 Nov 2025 07:30:38 +0100 Message-ID: <20251104063038.62645-1-svens@stackframe.org> X-Mailer: git-send-email 2.51.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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~public-inbox=simark.ca@sourceware.org With qemu supporting 64 bit now, add some code to determine the register size of a hppa remote target. Signed-off-by: Sven Schnelle --- Changes in v2: - adjust coding style - use target_desc_up, make it static - use nullptr instead of NULL gdb/hppa-tdep.c | 51 +++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 6 deletions(-) diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c index 96cb797c023..bd250408951 100644 --- a/gdb/hppa-tdep.c +++ b/gdb/hppa-tdep.c @@ -33,6 +33,8 @@ #include "trad-frame.h" #include "frame-unwind.h" #include "frame-base.h" +#include "remote.h" +#include "target-descriptions.h" #include "gdbcore.h" #include "cli/cli-cmds.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" + +static target_desc_up hppa_tdesc32; +static target_desc_up 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.get()); + register_remote_g_packet_guess (gdbarch, hppa64_num_regs * 8, hppa_tdesc64.get()); + + /* Otherwise we don't have a useful guess. */ +} + static struct gdbarch * hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) { @@ -2991,15 +3012,28 @@ 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) - tdep->bytes_per_address = - info.bfd_arch_info->bits_per_address / info.bfd_arch_info->bits_per_byte; + /* 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 != nullptr) + { + if (tdesc_property (info.target_desc, PROPERTY_GP64) != nullptr) + tdep->bytes_per_address = 8; + else if (tdesc_property (info.target_desc, PROPERTY_GP32) != nullptr) + tdep->bytes_per_address = 4; + } + else if (info.bfd_arch_info != nullptr) + { + tdep->bytes_per_address = + info.bfd_arch_info->bits_per_address / info.bfd_arch_info->bits_per_byte; + } else tdep->bytes_per_address = 4; + hppa_register_g_packet_guesses (gdbarch); + tdep->find_global_pointer = hppa_find_global_pointer; /* Some parts of the gdbarch vector depend on whether we are running @@ -3122,6 +3156,11 @@ hppa_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file) INIT_GDB_FILE (hppa_tdep) { gdbarch_register (bfd_arch_hppa, hppa_gdbarch_init, hppa_dump_tdep); + hppa_tdesc32 = allocate_target_description (); + set_tdesc_property (hppa_tdesc32.get(), PROPERTY_GP32, ""); + + hppa_tdesc64 = allocate_target_description (); + set_tdesc_property (hppa_tdesc64.get(), PROPERTY_GP64, ""); add_cmd ("unwind", class_maintenance, unwind_command, _("Print unwind table entry at given address."), -- 2.51.0