From patchwork Fri Oct 20 19:15:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 78283 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 481E7385C6F3 for ; Fri, 20 Oct 2023 19:16:16 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-il1-x136.google.com (mail-il1-x136.google.com [IPv6:2607:f8b0:4864:20::136]) by sourceware.org (Postfix) with ESMTPS id 3A3AA3858C54 for ; Fri, 20 Oct 2023 19:16:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3A3AA3858C54 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3A3AA3858C54 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::136 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697829361; cv=none; b=pnya/MEBmoVKZxwfXkXW25Rhec2mwIVrlwh26RiK/Jh8LSmBZvyuCUn7BKQAOjjAYyD4TixA4bCPja8ao8qdlWRNZte6IViRpEeLDQLBOimNw5NtNXj8kSGy+sSspVcAnOcmZCm6TnW3/wGl7/jXPQcyilJCWa+sFIam5hBI7nw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697829361; c=relaxed/simple; bh=y61SYO00SBeBe4ztV9jVF8KGNBUOpmzLKJTY2QHpEmQ=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=wFl406UhfgJFTUEYjBvIQmkXSRvtqpPJ9VfkKdkY8Am5vzeeOW0aeTxJAwImVfk8h87u8N5FT7Z8HcfQ3EFt5y4NEtspgtq4bVf8EuGZlvsPip//GA+uE7/zVZE89eH59uqtAtMgBY3kiPU/QrHC+CfL13sTf5ojIcpZpDjG/pI= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-il1-x136.google.com with SMTP id e9e14a558f8ab-35754465cb3so4260495ab.0 for ; Fri, 20 Oct 2023 12:16:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1697829359; x=1698434159; darn=sourceware.org; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=uWZM4DVX4kIvbi4O9EnDHwieyiC5vjj1c7sElWpxgLI=; b=TcSFth/ksh1RBrJjYMVhI82OcGZSbJFs8CUfqOg1nP66Bf6ZDwc/fu13VPRDeir/d7 2FqmlhxNKBplGfelU711f99jczCKdve+4FkPQBuLmAoyQ9aj9FGpxbAx2sR2kY681X0A EtDiowCRq4oxd8epp71I/FT/AX437y3Dk9Lhrdh22a0Vi8TU95AUhm0Y8Gr0LLQLbMGL fcQJMUA/EroVtfFzzAo9MfMqlBcybzcZLhaLzo5AhwsJYt9/vpjivZ5WgS7IKlWUh0A+ Xff1T83Ju0vJW5DGqdw3thIodsbY/v3A5HDs0rAHvCoJkuk9EWDIwH6+kkgAom3EfduL o7Lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697829359; x=1698434159; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uWZM4DVX4kIvbi4O9EnDHwieyiC5vjj1c7sElWpxgLI=; b=R4ygs6I5qMUw5jZ5x43Uep9DL/5lq19zxoJ4Jq8QJlzSvXKtNShtz/98EppUanD8F8 3eq3QGyR8tvCeP/tw4jmpJbHA1QbeAc8V4Zgu0Ccl6fEXulrhubL49j4kij1AF9Qw8A7 cgBnsDG7zzu34twKEmW512u81J89RCmSh3IkJpEmzSNnUkvYy9nIvT4dcoSpy304wOuZ fzPGbN8YRnNRUpTEyobrDtiqEJYsnpDe4ea8eutnVYP1ps2/KdaeVDLbK7Jx89NnPZeD vA1xp+P3112PG4SQeQXmVfSW+0s/Lo81wq7KdcImilgdlcqlCByRdIlxN59Esa2HTH0/ BwWQ== X-Gm-Message-State: AOJu0Ywbg1yjs5LZclPFbWr/6pFmOdTBoP+ZLiK3ILq1XBZBQ+Y2ztuA nWpUBIM/StfWn+GokE5t36vwcYbiXRk0UwZZao8+8Q== X-Google-Smtp-Source: AGHT+IHfU6JmulqE04i/QOwsnjUUzsX//22k10urAzY/uoV/t9gf5Rj9kcssCF4XNkEpmVH7bSm8mg== X-Received: by 2002:a05:6e02:1ba8:b0:351:4f0c:b95d with SMTP id n8-20020a056e021ba800b003514f0cb95dmr3807084ili.22.1697829359475; Fri, 20 Oct 2023 12:15:59 -0700 (PDT) Received: from localhost.localdomain (97-122-77-73.hlrn.qwest.net. [97.122.77.73]) by smtp.gmail.com with ESMTPSA id q15-20020a0566380ecf00b00430bb70004dsm701765jas.103.2023.10.20.12.15.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Oct 2023 12:15:59 -0700 (PDT) From: Tom Tromey Date: Fri, 20 Oct 2023 13:15:52 -0600 Subject: [PATCH 1/5] Fix calls with small integers on ARM MIME-Version: 1.0 Message-Id: <20231020-arm-params-v1-1-19d4c89c11b6@adacore.com> References: <20231020-arm-params-v1-0-19d4c89c11b6@adacore.com> In-Reply-To: <20231020-arm-params-v1-0-19d4c89c11b6@adacore.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.3 X-Spam-Status: No, score=-11.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP 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 On big-endian ARM, an inferior call with a small integer will pass the wrong value. This patch fixes the problem. Because the code here works using scalar values, and not just bytes, left-shifting is unnecessary. --- gdb/arm-tdep.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index a0ad1fb7a82..97d7c5140d2 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -4824,9 +4824,6 @@ arm_push_dummy_call (struct gdbarch *gdbarch, struct value *function, { /* The argument is being passed in a general purpose register. */ - if (byte_order == BFD_ENDIAN_BIG) - regval <<= (ARM_INT_REGISTER_SIZE - partial_len) * 8; - arm_debug_printf ("arg %d in %s = 0x%s", argnum, gdbarch_register_name (gdbarch, argreg), phex (regval, ARM_INT_REGISTER_SIZE)); From patchwork Fri Oct 20 19:15:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 78284 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 13BA6387103E for ; Fri, 20 Oct 2023 19:16:20 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-io1-xd2c.google.com (mail-io1-xd2c.google.com [IPv6:2607:f8b0:4864:20::d2c]) by sourceware.org (Postfix) with ESMTPS id 3035838582A3 for ; Fri, 20 Oct 2023 19:16:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3035838582A3 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3035838582A3 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::d2c ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697829362; cv=none; b=VcRCT199dWiNKvMED2BNzMqRQpdsn/og6Z2V9yDEfklENdPmfqRVmRCIFduADQs9FpkxHhXse4jghaAQzWlAIqWI2NDhYOoHR59qWyeGy/iFxyoDdzigULitwlm5sl8TuDvwzzEwOTTSkdt9dU3k8DZ6SInAQCHKNe+dFr6X62A= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697829362; c=relaxed/simple; bh=CBjjn/CRwuTUlnWGUbusOzATsGI6Lwd9q7/fRx4KVRY=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=AD1IUJ40DMEw2BNXQnX+mVOX0ZwOKuXuSUZmahFlIJ2pkGlE8GDVFMwoqAWfV5mpwoxSt2eumUrfKC61388om10BS03+pxhv+2QjRFw3ZWHvmPIGf5eSfrTxKiunzI6KLCBFFFo8q5bGOsolWc6fQeZ94r295RGaf/0UDsKHvGI= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-io1-xd2c.google.com with SMTP id ca18e2360f4ac-7a66a7fc2d4so42755039f.0 for ; Fri, 20 Oct 2023 12:16:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1697829360; x=1698434160; darn=sourceware.org; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=SHYP4gHBmXnTpYc3bMI7qzPcd8sBeTuFZparPOWEPRs=; b=aGpxiLkoqDRjvaGafLSG5FAFsPAtGmp98fibXzWNDcDiB6BZLfOeqFH9kDGiSXLg/g oAWFy4GiMTaZZ7lPschqKqwTFhLcjgD1ZnrH1MvLC6HdMz079G15OYxOQmRNH9RX41ce +8Vt7aW5+04pkx/t0uHVttNsgLaEDIZVNC18byPnd3fchGvlrAqtZ2hs02BIyRU+vMh7 31ePQ2tVQ1N9baCv8HhtKN9+7OjIP1AdJKZTUKN/UxkwuSl/5fSxEmA4dbwk/fNAFZsE 18LDhQrtAzguDl3zMcwomzO79jFv4or4PNS7y+DmXd+LVPUflGLm1HofibWdYuoBkGmv Z2NQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697829360; x=1698434160; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SHYP4gHBmXnTpYc3bMI7qzPcd8sBeTuFZparPOWEPRs=; b=klgaSYVvV4wfz5xhRhFB1IZUoEmhmi48uo2mzXtjKyz4luPVGCAO3gTvmljnuw8unC kJIYkzAZz9OddYLpuYx9vb4bq3iPE4hDSz9HEZusR5NtzlEa+htYSToC2EImkiNGb8qV w3hnxjto5I8URVMAUOOkdIHW2GFM3jM9qLhnOxVqUlbR2xDxqaP5R4zmnoA7O7SQiSFu SA758+DM6ZK558SEG0dXipxmzhZpsI2L6bLMjBJlyVDXTHKfJ7evVhuNepEvxWWumC1z 90GGJ1gGaRFl2YHDz6kG/elIPJOJZ2HqXM8vnIEtmnjEIi7iLQYLx4i7+6ncgJ5h3CJR wEIw== X-Gm-Message-State: AOJu0YweJPWYdZP07xQVzMXryENDP3PADMDozfLlWJaOUf6hfq1NcS97 v9+nEdu4NDfJqxqwsThEvU9VvkkEBEJvrlQswO42lg== X-Google-Smtp-Source: AGHT+IEv2sh/1zs2zo+1lvgaQaNZ7RAAzr9tL1m84P/susFFv9eFtRg7Rp4tm0/vFMMIn+P5xnh/hw== X-Received: by 2002:a05:6602:15c2:b0:791:1e87:b47e with SMTP id f2-20020a05660215c200b007911e87b47emr3654850iow.15.1697829360084; Fri, 20 Oct 2023 12:16:00 -0700 (PDT) Received: from localhost.localdomain (97-122-77-73.hlrn.qwest.net. [97.122.77.73]) by smtp.gmail.com with ESMTPSA id q15-20020a0566380ecf00b00430bb70004dsm701765jas.103.2023.10.20.12.15.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Oct 2023 12:15:59 -0700 (PDT) From: Tom Tromey Date: Fri, 20 Oct 2023 13:15:53 -0600 Subject: [PATCH 2/5] Fix "finish" with range types on ARM MIME-Version: 1.0 Message-Id: <20231020-arm-params-v1-2-19d4c89c11b6@adacore.com> References: <20231020-arm-params-v1-0-19d4c89c11b6@adacore.com> In-Reply-To: <20231020-arm-params-v1-0-19d4c89c11b6@adacore.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.3 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP 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 On ARM (I tested big-endian but it may not matter), "finish" can sometimes print the wrong result when the return type is a range type. Range types should really be treated as their underlying type (normally integer, but sometimes fixed-point). This patch implements this. --- gdb/arm-tdep.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 97d7c5140d2..ab0df0f16a8 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -8915,6 +8915,9 @@ arm_extract_return_value (struct type *type, struct regcache *regs, enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); arm_gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); + while (type->code () == TYPE_CODE_RANGE) + type = check_typedef (type->target_type ()); + if (TYPE_CODE_FLT == type->code ()) { switch (tdep->fp_model) From patchwork Fri Oct 20 19:15:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 78286 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 EDA57386076C for ; Fri, 20 Oct 2023 19:16:32 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-io1-xd34.google.com (mail-io1-xd34.google.com [IPv6:2607:f8b0:4864:20::d34]) by sourceware.org (Postfix) with ESMTPS id 807523857722 for ; Fri, 20 Oct 2023 19:16:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 807523857722 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 807523857722 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::d34 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697829363; cv=none; b=YryfYP6/wBnE+K0NRtUmNq5Wt/ZnHr19+PK5TvacjPtP08GvH0kGYDteIo/73hYOwh79HGcYxRAx4rXrgbuBth2B6+57OG7PYQFjHoILKQIDzYgf71WLzIrFq2SVJuoEoT/YCVM1vMCeYXH0ROV3BmA0AWxPvvP8o1F9Kk3iN3s= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697829363; c=relaxed/simple; bh=82Txg0l21DZ6S3ITLNUUi0NK1Gp1MNlFK7KkF3U8klc=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=bBR5KlBww95id5oXV5WImL80imPY4vcN5qscVBS3ztWrmCnZh7V+t859QWRJWPX7BIva93xFzqajTpYUIZFT4uUMVCc+HbGhmIrNNpIQGsninwxoE1rdseSnmiCRm2e9C48hfIeohOgDbacPvDQWVHSM/8Gxpaw4JEnsd60NEOA= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-io1-xd34.google.com with SMTP id ca18e2360f4ac-7a694a365d9so45821539f.0 for ; Fri, 20 Oct 2023 12:16:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1697829360; x=1698434160; darn=sourceware.org; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Q2KwESGVE8n28M3782IUtntX6P8Xu7wUzmJCy4fZjBc=; b=hJ2OKn1o+5x+me8M/NvN7icF4vsI8xO2eKIxxjQ4QrqsNU/2KjJEKeGlKYxjw+gTgQ 9m8aY4Gx9UuxJwOMoiAO93cAAB38SwjEoDs0CEixII/3IAyTtCMPmikzKPpTob9HCyfv PJcdVX7DQESYsyeG5azH3123en3SixkceYXG0TdjTEsGNfbOW9rR7ARztHLUCkgdxrO6 VNvpwLPcH21Dx6pW3Fmy59xm5vChqGMWpJbXaFPfvVSrdpmuc7nvy6L5qgRaDOWKb10t qJtISh8D/3MJ25aXgHNUapmsLEizFoJMnJN/1ed32opruhA+Wcx30/Puw6PuL/RfqB6y CQgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697829360; x=1698434160; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Q2KwESGVE8n28M3782IUtntX6P8Xu7wUzmJCy4fZjBc=; b=FCIRq7RnLD2gXsPqy8viCc6PU8mawBINJ8YeXc4R8W3zg1oKxGtX6KJCVNWoNntG+q 7t9xcJnRUHOkKA0DZXY/BOBp2coyZOD5V9TrI4Ue3bnNzW9Q92tfb1RMADBSdVugojTE NQIN5CjyptvY27bzfuAt8CSp9t9TNX4KLmRK8qmjURVR9/1sHE1I4F+AzcMZZf1D/zZk OrrFI4G3F2+cW8GNAoPwxMT/xC3IctkO+uAdse+0sBD0WbdNUL0hqm8l8RMcHWSu6dLp FkuYrzomqYIhW1utzvK8acO4V6kCJciwBdcobM0aVCSa/18gEeMOnWVmD0Tv2fcPM8g3 ITbw== X-Gm-Message-State: AOJu0YxyXyYoexxT4imDnTYzhutpJM7StvCvtzxHCe4ZhimscI9Gspql R43PGxfJGHjbqsdBuW2z5KGREmgWG8Se6e+hKhRw9A== X-Google-Smtp-Source: AGHT+IFqTQkGsIkrUfOD1yDTakzOx7gopjnyLQ9KizLMQBqWqPB/elxCOgwOgbcgTC6VuKnrPxEkwA== X-Received: by 2002:a05:6602:2c42:b0:798:3e95:274f with SMTP id x2-20020a0566022c4200b007983e95274fmr3688379iov.19.1697829360659; Fri, 20 Oct 2023 12:16:00 -0700 (PDT) Received: from localhost.localdomain (97-122-77-73.hlrn.qwest.net. [97.122.77.73]) by smtp.gmail.com with ESMTPSA id q15-20020a0566380ecf00b00430bb70004dsm701765jas.103.2023.10.20.12.16.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Oct 2023 12:16:00 -0700 (PDT) From: Tom Tromey Date: Fri, 20 Oct 2023 13:15:54 -0600 Subject: [PATCH 3/5] Fix "finish" for vector types on ARM MIME-Version: 1.0 Message-Id: <20231020-arm-params-v1-3-19d4c89c11b6@adacore.com> References: <20231020-arm-params-v1-0-19d4c89c11b6@adacore.com> In-Reply-To: <20231020-arm-params-v1-0-19d4c89c11b6@adacore.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.3 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP 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 On a big-endian ARM system, "finish" printed the wrong value when finishing from a function that returned a vector type. Similarly, calls to a function also resulted in the wrong value being passed. I think both the read- and write-functions here should ignore the endian-ness. I tested this using the AdaCore internal test suite; the test case that caught this is identical to gdb.base/gnu_vector.exp. --- gdb/arm-tdep.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index ab0df0f16a8..493e5b84758 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -9777,29 +9777,22 @@ arm_neon_quad_read (struct gdbarch *gdbarch, readable_regcache *regcache, { char name_buf[4]; gdb_byte reg_buf[8]; - int offset, double_regnum; + int double_regnum; enum register_status status; xsnprintf (name_buf, sizeof (name_buf), "d%d", regnum << 1); double_regnum = user_reg_map_name_to_regnum (gdbarch, name_buf, strlen (name_buf)); - /* d0 is always the least significant half of q0. */ - if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG) - offset = 8; - else - offset = 0; - status = regcache->raw_read (double_regnum, reg_buf); if (status != REG_VALID) return status; - memcpy (buf + offset, reg_buf, 8); + memcpy (buf, reg_buf, 8); - offset = 8 - offset; status = regcache->raw_read (double_regnum + 1, reg_buf); if (status != REG_VALID) return status; - memcpy (buf + offset, reg_buf, 8); + memcpy (buf + 8, reg_buf, 8); return REG_VALID; } @@ -9874,21 +9867,14 @@ arm_neon_quad_write (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, const gdb_byte *buf) { char name_buf[4]; - int offset, double_regnum; + int double_regnum; xsnprintf (name_buf, sizeof (name_buf), "d%d", regnum << 1); double_regnum = user_reg_map_name_to_regnum (gdbarch, name_buf, strlen (name_buf)); - /* d0 is always the least significant half of q0. */ - if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG) - offset = 8; - else - offset = 0; - - regcache->raw_write (double_regnum, buf + offset); - offset = 8 - offset; - regcache->raw_write (double_regnum + 1, buf + offset); + regcache->raw_write (double_regnum, buf); + regcache->raw_write (double_regnum + 1, buf + 8); } /* Store the contents of BUF to the MVE pseudo register REGNUM. */ From patchwork Fri Oct 20 19:15:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 78285 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 796F138654B4 for ; Fri, 20 Oct 2023 19:16:24 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-il1-x136.google.com (mail-il1-x136.google.com [IPv6:2607:f8b0:4864:20::136]) by sourceware.org (Postfix) with ESMTPS id 0CB58385783F for ; Fri, 20 Oct 2023 19:16:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0CB58385783F Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 0CB58385783F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::136 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697829363; cv=none; b=dg072fih+DLS/Okve97KVHzOMfBE+RgEzquwqsZ6OfRm5ZCPghDcuPAa+ZCt+Jexb2GxalTK67Fuiz7sN0nbdfpBJr43ZpoplI/JiwGyGAX3n7AVBnpuFCaljsbtEez135UkN7wZEQ/AZDElIvOJ1EoUxeZmPa74lOxvgt8exvA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697829363; c=relaxed/simple; bh=swmHcrknpth0W5CS33OAYJIdr5TbBx1VkEhheWDG1bc=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=AaqxSf4Eql5HBqEis79Bb0Lki8C7eiLyxMKTuAL1CXy5YwKs54JIpva9AKbPXUPnIebUN85hM1gSApn7uW+KIbO/saTNtlrK5lUI1W7rqk4eoKaWAuU0M5F/wBZ/pKQLy7yDkRi3hLPPa+GfCpBfIRjoTVGUMoMrnjFRl54oBKY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-il1-x136.google.com with SMTP id e9e14a558f8ab-3574f99d260so4204825ab.3 for ; Fri, 20 Oct 2023 12:16:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1697829361; x=1698434161; darn=sourceware.org; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=bNUov1dI5IbI2FSIhf4o17hZ0e2ttVPkyiVwCwdpQkk=; b=Tyhu5JDRkb261urPoxvi3nbIsnta10IE4zQEgOZsQ4ZnUpt+Cq/af5pCzOMuH5Aoy5 BgQyrah5Be2MFu4iyFyfzVtYLg1234rC62pW/Pzr3FfFUAtkBGI0q01jZABxYK6U8wZj JZmx6nzZPbHcRHOqw4JbEZQ1+WYuMo865cjd0XS2TKfEN7fcHe9kbR2kCplTMMpoBhQ0 Fosme4GLX17LEKHNq+OVg2AMVzA/0/Gn1yIkf2xa4JfoNDIZiRW3wJMdH52ZAg5jbJ+r NdozFtegx27CsOc0gJ6/MKSncRb8lgHB7Omtu9vijmnhupAoKyLUPFKGGBI45BPQCNSO XZWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697829361; x=1698434161; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bNUov1dI5IbI2FSIhf4o17hZ0e2ttVPkyiVwCwdpQkk=; b=s9cOqLtpZtZslKNggvRT6ixIfSD4zpqJl4ak+zEnBpWyaZIfEY6rKav0DDAJ/ZCqeB Vzbh9DYW4zp7mgaXDWGDy91kASXfx9Cxq8Yr9ZgSmDBD7wq0JgxWrLt6eg+KNkk2pbv1 Hp6GCySzuUwU75Eh46HYs36ivn/Cl8ah6sjMNsrzqND+5AVe51EdjurS/TnaMve+YByp RgrvBDPaqjzDSgOC6uWgHqtn2Sl78I/1Ua4xZwrswFpFmnUaqTovr22eaCClgyL4FDsu 63W5JfAjvSJmmry0gEX3roZ3QnvEk5Swxr/FzdCky7ea39RWNW+oyDTghw4uZtraqnT8 8cGQ== X-Gm-Message-State: AOJu0YwNxAm0XLmAG5X0ZkibsDPkHlhftDEb+KhGBlHncZb6W4q+pELr nbWdpazd/z0KHRUp6gYOaJXIcAuR75HRl0lKqhIxUA== X-Google-Smtp-Source: AGHT+IEnFDH+BGA2ub0jGc2ZOJf0Kn0oIhoDDHxloWXYqF12t6uQD+cTabUsvdW95bU5bUieRGodSQ== X-Received: by 2002:a92:cf45:0:b0:351:98a:16c6 with SMTP id c5-20020a92cf45000000b00351098a16c6mr3018011ilr.27.1697829361361; Fri, 20 Oct 2023 12:16:01 -0700 (PDT) Received: from localhost.localdomain (97-122-77-73.hlrn.qwest.net. [97.122.77.73]) by smtp.gmail.com with ESMTPSA id q15-20020a0566380ecf00b00430bb70004dsm701765jas.103.2023.10.20.12.16.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Oct 2023 12:16:00 -0700 (PDT) From: Tom Tromey Date: Fri, 20 Oct 2023 13:15:55 -0600 Subject: [PATCH 4/5] Fix range-type "return" command on ARM MIME-Version: 1.0 Message-Id: <20231020-arm-params-v1-4-19d4c89c11b6@adacore.com> References: <20231020-arm-params-v1-0-19d4c89c11b6@adacore.com> In-Reply-To: <20231020-arm-params-v1-0-19d4c89c11b6@adacore.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.3 X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP 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 On big-endian ARM, "return"ing from a function that returned a range type did not work. This patch strips the range type to treat the function as though it were returning the underlying type instead. --- gdb/arm-tdep.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 493e5b84758..62412d92f85 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -9132,6 +9132,9 @@ arm_store_return_value (struct type *type, struct regcache *regs, struct gdbarch *gdbarch = regs->arch (); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); + while (type->code () == TYPE_CODE_RANGE) + type = check_typedef (type->target_type ()); + if (type->code () == TYPE_CODE_FLT) { gdb_byte buf[ARM_FP_REGISTER_SIZE]; From patchwork Fri Oct 20 19:15:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 78287 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 362CC3852764 for ; Fri, 20 Oct 2023 19:16:39 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-io1-xd2d.google.com (mail-io1-xd2d.google.com [IPv6:2607:f8b0:4864:20::d2d]) by sourceware.org (Postfix) with ESMTPS id C35B13857031 for ; Fri, 20 Oct 2023 19:16:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C35B13857031 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C35B13857031 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::d2d ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697829364; cv=none; b=K21BgBlEKrjDqG00k9TSc+Hynno4SpuEc0943h5D3BsgTFoDmaBQSvhE9azlD6EpfPyJ75HH8Zo8ltXXnUckEcE9DMe51H4OJ70TYKl/43l88WAljqVeQkvGUc1HE6hOabjFRpaYCLSDxlpKzEnZiYr0P1/QbUGWUKIjV1jBg5Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697829364; c=relaxed/simple; bh=UlXyaUB6KcHspkqM5i7e4y3JdK7k1Sn6JwTUXshvgDM=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=o1gMU/nb67oqO0M3WZ5wxHFqdAVvdJohX5S6a1Ma5IQ+1iiQO7RuAQRauCupQkjwo21K/Ld/EOUa4D6sZBFtS+CKje/XSI6g1s7VQ2p8UBsZJPxM7ZPnSIE/gAV/z7Hh/q/1KWUeWRPDQEhav7meeBIuM4puqGy/IcjwuUQZutE= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-io1-xd2d.google.com with SMTP id ca18e2360f4ac-7a696f358bbso42054439f.2 for ; Fri, 20 Oct 2023 12:16:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1697829362; x=1698434162; darn=sourceware.org; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ZVy3x+Yx0c/AClGDDaFX3+f93DT1qFSojepfkUE0VqU=; b=E6FmX2AGBlGqCTgggrrgLbabficrjRwK4J8Qeo3jLovo84ivyNN/8X0xTYndQTt0Sg GwSd35bjZbvJtua/TWI6uDjyEHBH24Omhihl6klaxrCuQxGlIn85l917SFlY83Q3m8YT Q77ATEWufuGdCNkyaXYG+UKpvCoQ11HndiXh7P6A3QkDwVPpbKyJbWHeQ9wRf648XhQ/ ziOG1JWuhGAwS/AzQLgOeglI1htrSdouRdD06D3nMhFTzxMnCrhHmfZ0U7LjxWwDbsB/ +6ztRf7yrEjM2+9SQf4CZKoSYZrRo12jk432d1uzPRatyIP/o3LUPFkNkpFKwYPEAJxx UJjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697829362; x=1698434162; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZVy3x+Yx0c/AClGDDaFX3+f93DT1qFSojepfkUE0VqU=; b=YotfJuyDcvcEQ+l2y8DgPIJCox7mD4QBgjnqUHsjc+hNSYXCSXQt4hDQ8kQz3ZKgTt eMWJpnRcLrYBSm3xuxjOrdNU2C/e4feWuVztQ73VNVh5FUa4XOq2YRBYfDR4Ay4SCWXl 1E2sOgg6kq0YqP7lpONEJMdOFGH1z/hv8uKsyjFj3qzOJd67Lp4gQHS+U++hFuur+aIU DVIXcNgByn+nGvzmaEAjlb5wv7Bj/kom/MjJDo1PQ1yhjGpAtrf6YhiWv2jgGLBM6C81 zjQo1xx7bI1R3PvyDZtzGheW3CbSngWSXf+cZ4HXrwpRpJeTfRWED5o3+uCjcm2R+efF Z1ug== X-Gm-Message-State: AOJu0YwCuM/GpM9z2Ss/MngEJHdb8UvFcYVAreee56NaR0CaAyW04otA K8/5DzBWU6eY7XNS3THfIGZIoBR43p4dzEiC1dQ/Tg== X-Google-Smtp-Source: AGHT+IGh4YmLhS2EsbStXx3sB67NNpj4HpnssougaGDWNbnVcR+RqVG5FVQva0YxhPk6ojDRjqYbmg== X-Received: by 2002:a05:6602:2dc5:b0:786:cc36:360c with SMTP id l5-20020a0566022dc500b00786cc36360cmr3615324iow.8.1697829361929; Fri, 20 Oct 2023 12:16:01 -0700 (PDT) Received: from localhost.localdomain (97-122-77-73.hlrn.qwest.net. [97.122.77.73]) by smtp.gmail.com with ESMTPSA id q15-20020a0566380ecf00b00430bb70004dsm701765jas.103.2023.10.20.12.16.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Oct 2023 12:16:01 -0700 (PDT) From: Tom Tromey Date: Fri, 20 Oct 2023 13:15:56 -0600 Subject: [PATCH 5/5] Fix fixed-point "return" on ARM MIME-Version: 1.0 Message-Id: <20231020-arm-params-v1-5-19d4c89c11b6@adacore.com> References: <20231020-arm-params-v1-0-19d4c89c11b6@adacore.com> In-Reply-To: <20231020-arm-params-v1-0-19d4c89c11b6@adacore.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.3 X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP 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 On a big-endian ARM machine, the "return" command resulted in the wrong value being returned when the function had a fixed-point return type. This patch fixes the problem by unpacking and repacking the fixed-point type appropriately. --- gdb/arm-tdep.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 62412d92f85..a9c43b27265 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -9170,16 +9170,28 @@ arm_store_return_value (struct type *type, struct regcache *regs, || type->code () == TYPE_CODE_BOOL || type->code () == TYPE_CODE_PTR || TYPE_IS_REFERENCE (type) - || type->code () == TYPE_CODE_ENUM) + || type->code () == TYPE_CODE_ENUM + || is_fixed_point_type (type)) { if (type->length () <= 4) { /* Values of one word or less are zero/sign-extended and returned in r0. */ bfd_byte tmpbuf[ARM_INT_REGISTER_SIZE]; - LONGEST val = unpack_long (type, valbuf); - store_signed_integer (tmpbuf, ARM_INT_REGISTER_SIZE, byte_order, val); + if (is_fixed_point_type (type)) + { + gdb_mpz unscaled; + unscaled.read (gdb::make_array_view (valbuf, type->length ()), + byte_order, type->is_unsigned ()); + unscaled.write (gdb::make_array_view (tmpbuf, sizeof (tmpbuf)), + byte_order, type->is_unsigned ()); + } + else + { + LONGEST val = unpack_long (type, valbuf); + store_signed_integer (tmpbuf, ARM_INT_REGISTER_SIZE, byte_order, val); + } regs->cooked_write (ARM_A1_REGNUM, tmpbuf); } else