From nobody Wed Apr 8 04:41:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1773184949; cv=none; d=zohomail.com; s=zohoarc; b=kGPW7gjfxN59sFa32sWGV9cMNYBrKK666NYxGrK+tvPMcXvhtgQYaz9C5YsLSffRygAAv3yleTWjr0AjL1bGLHxssjDE763/ztVOwm05rAxskNn5ZrvUdfA54/fGOjth/XlCgPuuxeobBRsboGoimroweGgYc860BzZb0RWaWo0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773184949; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Y1rfBVikTwv8UKl9/GEItZIIiz4modSUfC3Li8tbgj8=; b=Bn2bO1AZ32Okk0KgMs+T/vr7EgFB6JljohDv8r0/21v+9JiuumbEuiNrFDr46miQ5MoDn09ZMKrIdGC8QbUO9Dgn0EwzTlH7pKogW31TNHy783aU6rcT0FPObKkpxWj3BqGBKKhPShzbHuPLNhY8H/D6VmW6DzU9cwXjhXnfy7M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773184949697257.3258721839676; Tue, 10 Mar 2026 16:22:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w06P6-0002nW-7y; Tue, 10 Mar 2026 19:22:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w06P1-0002cU-Q1 for qemu-devel@nongnu.org; Tue, 10 Mar 2026 19:22:16 -0400 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w06P0-0000G4-4m for qemu-devel@nongnu.org; Tue, 10 Mar 2026 19:22:15 -0400 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-483487335c2so113202315e9.2 for ; Tue, 10 Mar 2026 16:22:13 -0700 (PDT) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4854b5f6c24sm7302335e9.5.2026.03.10.16.22.11 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 10 Mar 2026 16:22:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773184932; x=1773789732; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Y1rfBVikTwv8UKl9/GEItZIIiz4modSUfC3Li8tbgj8=; b=uZ+Zq/LgdfFl8NvQEJGfhvcf5wOBZN0+SoAXweeM90JVqt1esysdzJkxF646W3t/c+ lDbNmEPQwUNPpfarmiOny7EbKYYu/c5T+03TKiNf9KO2MMuQinhAlbzqHX3KT8lJqFmG 901/y2qAerUf7z3/6tDx8BgJCp/Ljf84Tv04G+A28LPX8Q7dayFTJx7P7H76dPYnwP0O d7EcZO8Ce0TriNxcmSka6z/0WJQbkkSPHppOUSpHI9v4DzQhx7jgcVu1sQiKLil30A4s z9klSMTlTSphnRSJcMWyivqIHCKUWlUd+GvrNHR3s63c0+pmynw6w4k5BOEhMSRDVPU9 74Ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773184932; x=1773789732; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Y1rfBVikTwv8UKl9/GEItZIIiz4modSUfC3Li8tbgj8=; b=W9L/kqPBAN9bG3bWScaPIcBSyzfupMmiiHJrH5XW1HX8pEQYhjIqKmNjuW6hbQoLGp DSuuQDH2gu/4i2YtZkAB0Yda5MQdrXesxvO59rUM/Wsf/X4M+MyqQoYyrJki2ByIFOe0 GJ+fVffJY40/PAcTazyCnPqgA+mrHP9TUtq/GYLmtBN//sKi5MUrn74NSykSQAH3RWDQ qNuXP8kOo6BQAhZ8ev9wyOUax4VOey6zUr11wF9a1bUaSiu41GoZvcppGZ+HXLyeAeBy 8D9kr2scvyFnEDEEN9PARKH/f+fAnkZpG6Rfn35wdZyMkfF2ZIWUTj23RhCGAslDMqSi 5RPg== X-Gm-Message-State: AOJu0YwxsvX3+/fDih3rrDzmGzhHblawrrdTQ8vBRW8YzNfCZBpFuRBX 4wRuEKhCw5SZcFNGgwQ3hMO17LaPNXN9ePuhRplWj6nwD5R++vAH+zCXVBJiks3JCtNb1vbBH6T 1QdYYuzI= X-Gm-Gg: ATEYQzyFVVeivbEoXVBObfzsmDKd5t6J7lxRvNZo9cmdLRDFjEvCxY/dyDm7KkuYflc okbS/Ngm4cmv3xFB0o6chVqUvD0NEWA9Bjthc4y3WIk4KX2maQb/5IXniF28xFiiMDk0i0mI/Rh A98BwyTt3VMvoyM/OXWktTmh3YxJdTTqHyN6S40j+j/QtSRy1J8sokep7trWIrNGYHSCOyRyihz XSwrOxKuPgKxTwNtwEBq4mKJQ73Clz5ePGr4sZjcYoiA/mzCwJ4lesAN3H2koOrQc4FgLkDUiU/ Pu+UXrJNjBWcihpjceqyETzRwYT/AldZC+m+ePBQ4dMjCe+xht6pcWLPWUgPnS7+Py2R9KObYaH YFBkDab0iDwb9zja8hvweVzG9chRkdjf2iLM4AkYgnyh7x6ifqhvPI4J/4dz/HV7G8jXZforxcA xSZTKvvnNPYT6cRPqXwDEwM0kem2QT/FG5wpvJwmvdJ7orydNBJhzAs/BUhxeKtux5sEsoEsAQc m4Mvc7h8RE= X-Received: by 2002:a05:600c:3b02:b0:485:3c41:360b with SMTP id 5b1f17b1804b1-4854b14f5aamr7759315e9.35.1773184932231; Tue, 10 Mar 2026 16:22:12 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Florian Hofhammer , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Pierrick Bouvier , Akihiko Odaki Subject: [PATCH v4 12/16] gdbstub: Consider GDBFeature::base_reg in gdb_register_coprocessor() Date: Wed, 11 Mar 2026 00:20:40 +0100 Message-ID: <20260310232045.58440-13-philmd@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260310232045.58440-1-philmd@linaro.org> References: <20260310232045.58440-1-philmd@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32d; envelope-from=philmd@linaro.org; helo=mail-wm1-x32d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1773184951506158500 When a feature XML file provides a "regnum=3D" tag to indicate the registers base index, respect it, as it might not be the same as our current number of registered entries, in particular when there are gaps. This fixes a bug with the "power-fpu.xml" file [*] which was loaded at index 70 while the base register is 71. This latent bug was exposed by commit 1ec0fbe2dda ("target/ppc: Fix CPUClass::gdb_num_core_regs value"). [*] https://lore.kernel.org/qemu-devel/e44df309-d40d-46f0-88a8-7ac55f9a3634= @fhofhammer.de/ Reported-by: Florian Hofhammer Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Tested-by: Pierrick Bouvier --- gdbstub/gdbstub.c | 6 ++++++ gdbstub/trace-events | 1 + 2 files changed, 7 insertions(+) diff --git a/gdbstub/gdbstub.c b/gdbstub/gdbstub.c index 69038c66f2b..c3c944e965b 100644 --- a/gdbstub/gdbstub.c +++ b/gdbstub/gdbstub.c @@ -601,6 +601,7 @@ void gdb_init_cpu(CPUState *cpu) if (xmlfile) { assert(!cc->gdb_num_core_regs); feature =3D gdb_find_static_feature(xmlfile); + assert(feature->base_reg =3D=3D 0); gdb_register_feature(cpu, 0, cc->gdb_read_register, cc->gdb_write_register, feature); @@ -630,6 +631,11 @@ void gdb_register_coprocessor(CPUState *cpu, } } =20 + if (base_reg < feature->base_reg) { + trace_gdbxml_register_coprocessor_gap(base_reg, + feature->base_reg); + base_reg =3D feature->base_reg; + } gdb_register_feature(cpu, base_reg, get_reg, set_reg, feature); =20 /* Add to end of list. */ diff --git a/gdbstub/trace-events b/gdbstub/trace-events index 8caee36c242..5bc83946743 100644 --- a/gdbstub/trace-events +++ b/gdbstub/trace-events @@ -29,6 +29,7 @@ gdbstub_err_checksum_incorrect(uint8_t expected, uint8_t = got) "got command packe gdbstub_err_unexpected_runpkt(uint8_t ch) "unexpected packet (0x%02x) whil= e target running" =20 gdbxml_init_cpu(const char *typename, unsigned id, unsigned gdb_num_regs, = unsigned gdb_num_g_regs, unsigned gdb_num_core_regs) "%s:%d regs:%u g_regs:= %u core_regs:%u" +gdbxml_register_coprocessor_gap(unsigned gdb_num_regs, unsigned base_reg) = "regs %u -> %u" gdbxml_register_feature(const char *featname, const char *xmlname, unsigne= d base_reg, unsigned num_regs) "%s (%s) @%u +%u" gdbxml_feature_builder_header(const char *name, const char *xmlname, int n= um_regs) "%s (%s) regs:%d" gdbxml_feature_builder_content(const char *xml) "%s" --=20 2.53.0