From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id yI8ENy3ojGrbJT4AWB0awg (envelope-from ) for ; Mon, 24 Aug 2026 20:56:13 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=IqgWLzwa; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id C79A21E0A3; Mon, 24 Aug 2026 20:56:13 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::32]) (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 B1F411E09B for ; Mon, 24 Aug 2026 20:56:12 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 88CE84BA9012 for ; Tue, 25 Aug 2026 00:56:05 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 88CE84BA9012 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=IqgWLzwa Received: from mail-pj2-x03.google.com (mail-pj2-x03.google.com [IPv6:2607:f8b0:4864:39::3]) by sourceware.org (Postfix) with ESMTPS id 5B3AD4BA2E31 for ; Tue, 25 Aug 2026 00:55:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5B3AD4BA2E31 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 5B3AD4BA2E31 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:39::3 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787619341; cv=none; b=EjmZm7ca47ygQu1ymHfwJBaEj6tqbULkH6Gw+qEdB6h2fWK2+aaauvhaRQtc6fFv8JDIjYGd2t5x2/p0SRPI201LV1k47HsIy2x0jxZtyIuKP6DAOV60Hx9fOsMLGcwChjeI6H6FiwraVbFFJANfhS3MnzAkjL7xd0cieNDc6dE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1787619341; c=relaxed/simple; bh=2lcqyH0xIJMwTm5O/oj462NDv5otiW6prqm4JLlz3fM=; h=DKIM-Signature:Message-ID:Subject:From:To:Date:MIME-Version; b=MWQvBOh9+pKAZy2yMGstnK2qN9JvtwhbVy41pOuyVfZAtL7CK5MT19soU3X98MAhAaokvvXAjIbtEOR33Z8plXaqtfeBHsuZBqbI6qS1UwQBzQno/rOFkSIRqZp+WS3AyRbA4vQiWb6divU5p2YNA42BwaCA2DWwF9IcLqifGSg= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=IqgWLzwa DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5B3AD4BA2E31 Received: by mail-pj2-x03.google.com with SMTP id 98e67ed59e1d1-3859292bb51so16713a91.1 for ; Mon, 24 Aug 2026 17:55:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787619340; x=1788224140; darn=sourceware.org; h=mime-version:user-agent:content-type:references:in-reply-to:date:to :from:subject:message-id:from:to:cc:subject:date:message-id:reply-to :content-type; bh=NunsohktfOwTw8hGAXcleoJvCGaZ0GYQon5bK9VOMv0=; b=IqgWLzwaItPe4mpqQgVA+2t3z4uPPbK0sncu6Eh82hUvkw55iqpI66O6Yqvw+u961J UXpqqDZWmF/xjQ6NOxC0aSEPqCb0QlAQ8rRXXEH33OgcNW/pjJrgIxUH0C6Z8VJJEmNI +X69OINSORHAXe9PUcsFjePcc3tXg4oFn3jCX21qz2KeElP2l/ocLaEFNl5FU77JaEXf ygkIHeNjG6DQUiyd+xtQy/aWV+5aJ0aB4BaScK6mHpuoMzt/qUzgMbKepC/7KbnVn1Kq 5TrGUXo6sOn/n8CihYJaTW64e1tF/GgoubrSih8nDPtoV/KlxZ7PhH60Zre/sgUdW5Lq 9sfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787619340; x=1788224140; h=mime-version:user-agent:content-type:references:in-reply-to:date:to :from:subject:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=NunsohktfOwTw8hGAXcleoJvCGaZ0GYQon5bK9VOMv0=; b=RCfYZXT2tayOZoeiJmp8qLRdv9kIf7kFPbEyArBjvNQnmJacx0fYB/5AsTMXfv/8Sh Rhsbr4XFgdpvYr8o9bPkJ+7Pyl1/vS7gdsnRJR4b3iANdkbslnlwqv525pFdkNF8syEA COFIIrgX1ozaSLYYbvMUtPiC/yi8WNK/n+awAmFp3z9zIw0jwoBOnC2FZqJ092E6zBf8 BbxQTY0Dalqz41SJghWrYNmoJ3QzBIexD1yHdZfWZZ0vDTSFlW4mZUJ51ocJ2HSlk8L0 b6Mn1HviushRQBEckl8e5iBiIaRkjRMQb/zAByh1l2TKRhs8gcK+g5l/vOPANZlUrFLn rM8g== X-Forwarded-Encrypted: i=1; AHgh+Rq0thc1DtAsRxi4Jj0nG6FHI6nTCrGT5/hz4WBUMD6/aVNtdt31Z9tfG8+0ZS8ZyTX6JGVKRG69iguwRw==@sourceware.org X-Gm-Message-State: AFuF++ladA+AoL0/n6Z8Xf1QeCj5NCbeyFjJwqNArwE9AJlJ3Hn8VMYY d/745XOazjetPdU2HvYdZt1kVkXDf1eXr/R1rRjETx5Tr6BWrukcw2EDkcSthWGYCls= X-Gm-Gg: AR+sD11HEFiOHsrL7kAeTRrx8F98CAooaFyLn637RDplcEcZ3CSif59a2EAtdlNDje7 I/XDbFrCB4tALUOdUYWXOS5kjwBV/yQmZ0nBOIR33V/pV/HD5bX4xqFUR4r/2RzoJjas0QBwKmy f5tGSwdwfVvyC1G5ttZatD3/DZwl7ZF/eMauAcfH5nZSozlw4+jBj3luuQISsR0somRyqCtTT27 MGJwrtpIFp+jNMOXc6hkZjp+zDj10RbCgM4H+Cp5A3rsWm6u8eDlCR+wbDuQuV205S9/pF7HtjG WYv0GiDGL59d/A1PVtwNeE/cYWkzU3ix1WmAeNkBKBpizEjzillePXUWmXngx7HOdZeNHWGRObL 38HzxMJP/XuTU9HzY3UJXJwtVPzycHbXKghQXGRqCmfniZTjYy4d5fiUSW44QPRpSbNycX+bBOs SIEuQWnx6QczSoVJ65w3hae19CnS9P/drYc+W8tThaoJJWvAsjKGL5nyDqiTMeDG7ctsX2sIn8e uk6hq1i X-Received: by 2002:a17:902:cf01:b0:2cf:7db9:e13e with SMTP id d9443c01a7336-2d6dc9b28dcmr33596055ad.3.1787619340027; Mon, 24 Aug 2026 17:55:40 -0700 (PDT) Received: from localhost.localdomain ([2407:c800:3620:e800:7910:9280:8105:5a2]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d6768c65c8sm23162405ad.69.2026.08.24.17.55.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Aug 2026 17:55:38 -0700 (PDT) Message-ID: <415e88e0340cf7552d30d6fb0cb4886a7a5e5faa.camel@gmail.com> Subject: Re: [SH] Fix mac.w insn simulation for SH2 and above From: Oleg Endo To: Andrew Burgess , gdb-patches@sourceware.org Date: Tue, 25 Aug 2026 09:55:37 +0900 In-Reply-To: <871pbnvhx0.fsf@redhat.com> References: <871pbnvhx0.fsf@redhat.com> Content-Type: multipart/mixed; boundary="=-jdz4L0okCmTSx0OW9SMd" User-Agent: Evolution 3.54.3 (3.54.3-2.fc41) MIME-Version: 1.0 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 --=-jdz4L0okCmTSx0OW9SMd Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 2026-08-24 at 13:09 +0100, Andrew Burgess wrote: > Oleg Endo writes: >=20 > > Hi, > >=20 > > The simulator currently implements only the SH1 version of the mac.w > > instruction. On SH1 the MACH:MACL accumulator register is only 42-bit.= It > > was extended to 64-bit on SH2 and every variant that followed after. > >=20 > > The issue probably never showed up because GCC hasn't been able to emit= the > > SH integer mac instructions. I ran into this because I was trying to d= o > > exactly that and while running some tests on sh-sim. > >=20 > > The attached patch uses the bfd_mach field to distinguish between SH1 a= nd > > not-SH1 in the simulation of the mac.w instruction, in a similar way as= it's > > already been done for some SH2A instructions. > >=20 > >=20 > > OK to commit & push? > >=20 > > Best regards, > > Oleg Endo > > From 6b07e3daa73acac1d1800c94cdfae0b83509f2d1 Mon Sep 17 00:00:00 2001 > > From: Oleg Endo > > Date: Sun, 2 Aug 2026 19:37:21 +0900 > > Subject: [PATCH] sim/sh: fix mac.w insn for SH2+ > >=20 > > On SH1 the MACH:MACL accumulator is only 42 bits wide. On SH2 and abov= e it's 64 > > bits wide. Emulate the corresponding behavior based on the bfd_mach fi= eld. > > --- > > sim/sh/interp.c | 7 +++++-- > > 1 file changed, 5 insertions(+), 2 deletions(-) > >=20 > > diff --git a/sim/sh/interp.c b/sim/sh/interp.c > > index c8c2a74..cc4ae2c 100644 > > --- a/sim/sh/interp.c > > +++ b/sim/sh/interp.c > > @@ -1197,8 +1197,11 @@ macw (int *regs, unsigned char *memory, int n, i= nt m, int endianw) > > long mach; > > /* Add to MACH the sign extended product, and carry from low sum= . */ > > mach =3D MACH + (-(prod < 0)) + ((unsigned long) sum < prod); > > - /* Sign extend at 10:th bit in MACH. */ > > - MACH =3D (mach & 0x1ff) | -(mach & 0x200); > > + /* SH1: MACH:MACL is 42 bits wide, sign extend at the 10:th bit= in MACH. >=20 > Could you fix '10:th' to '10th' please. >=20 > > + SH2+: MACH:MACL is 64 bits wide. */ >=20 > This line should be indented with TAB. >=20 > > + if (saved_state.asregs.bfd_mach =3D=3D bfd_mach_sh) > > + mach =3D (mach & 0x1ff) | -(mach & 0x200); > > + MACH =3D mach; > > } >=20 > Is it possible to write a test for this change? I know simulator > testing is very patchy, but if we add tests for things that are fixed > we'll slowly start to build up some decent test coverage. >=20 Added test case and adjusted the other hunks. Updated patch attached. One of my previous sh-sim changes caused a fallout. I've posted a separate patch for that, awaiting feedback. https://marc.info/?l=3Dgdb-patches&m=3D178567807485933&w=3D2 Best regards, Oleg Endo --=-jdz4L0okCmTSx0OW9SMd Content-Disposition: attachment; filename="0001-simsh-fix-macw-insn-for-SH2_1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-simsh-fix-macw-insn-for-SH2_1.patch"; charset="UTF-8" RnJvbSBhZjFiNWJmMzY2NDA2MjcwNjk2ZGRkZDM5OWYzMmFlN2U0OGYxNWE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBPbGVnIEVuZG8gPG9sZWdlbmRvQGdjYy5nbnUub3JnPgpEYXRl OiBTdW4sIDIgQXVnIDIwMjYgMTk6Mzc6MjEgKzA5MDAKU3ViamVjdDogW1BBVENIXSBzaW0vc2g6 IGZpeCBtYWMudyBpbnNuIGZvciBTSDIrCgpPbiBTSDEgdGhlIE1BQ0g6TUFDTCBhY2N1bXVsYXRv ciBpcyBvbmx5IDQyIGJpdHMgd2lkZS4gIE9uIFNIMiBhbmQgYWJvdmUgaXQncyA2NApiaXRzIHdp ZGUuICBFbXVsYXRlIHRoZSBjb3JyZXNwb25kaW5nIGJlaGF2aW9yIGJhc2VkIG9uIHRoZSBiZmRf bWFjaCBmaWVsZC4KLS0tCiBzaW0vc2gvaW50ZXJwLmMgICAgICAgICAgICAgfCAgNyArKysrKy0t CiBzaW0vdGVzdHN1aXRlL3NoL21hY3ctc2gxLnMgfCA0NiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiBzaW0vdGVzdHN1aXRlL3NoL21hY3cucyAgICAgfCAy MSArKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNzIgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzaW0vdGVzdHN1aXRlL3NoL21h Y3ctc2gxLnMKCmRpZmYgLS1naXQgYS9zaW0vc2gvaW50ZXJwLmMgYi9zaW0vc2gvaW50ZXJwLmMK aW5kZXggYzhjMmE3NC4uMzNmODI1YiAxMDA2NDQKLS0tIGEvc2ltL3NoL2ludGVycC5jCisrKyBi L3NpbS9zaC9pbnRlcnAuYwpAQCAtMTE5Nyw4ICsxMTk3LDExIEBAIG1hY3cgKGludCAqcmVncywg dW5zaWduZWQgY2hhciAqbWVtb3J5LCBpbnQgbiwgaW50IG0sIGludCBlbmRpYW53KQogICAgICAg bG9uZyBtYWNoOwogICAgICAgLyogQWRkIHRvIE1BQ0ggdGhlIHNpZ24gZXh0ZW5kZWQgcHJvZHVj dCwgYW5kIGNhcnJ5IGZyb20gbG93IHN1bS4gICovCiAgICAgICBtYWNoID0gTUFDSCArICgtKHBy b2QgPCAwKSkgKyAoKHVuc2lnbmVkIGxvbmcpIHN1bSA8IHByb2QpOwotICAgICAgLyogU2lnbiBl eHRlbmQgYXQgMTA6dGggYml0IGluIE1BQ0guICAqLwotICAgICAgTUFDSCA9IChtYWNoICYgMHgx ZmYpIHwgLShtYWNoICYgMHgyMDApOworICAgICAgLyogU0gxOiAgTUFDSDpNQUNMIGlzIDQyIGJp dHMgd2lkZSwgc2lnbiBleHRlbmQgYXQgdGhlIDEwdGggYml0IGluIE1BQ0guCisJIFNIMis6IE1B Q0g6TUFDTCBpcyA2NCBiaXRzIHdpZGUuICAqLworICAgICAgaWYgKHNhdmVkX3N0YXRlLmFzcmVn cy5iZmRfbWFjaCA9PSBiZmRfbWFjaF9zaCkKKwltYWNoID0gKG1hY2ggJiAweDFmZikgfCAtKG1h Y2ggJiAweDIwMCk7CisgICAgICBNQUNIID0gbWFjaDsKICAgICB9CiAgIE1BQ0wgPSBzdW07CiB9 CmRpZmYgLS1naXQgYS9zaW0vdGVzdHN1aXRlL3NoL21hY3ctc2gxLnMgYi9zaW0vdGVzdHN1aXRl L3NoL21hY3ctc2gxLnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIwNzNk NQotLS0gL2Rldi9udWxsCisrKyBiL3NpbS90ZXN0c3VpdGUvc2gvbWFjdy1zaDEucwpAQCAtMCww ICsxLDQ2IEBACisjIHNoIHRlc3RjYXNlIFNIMSBtYWMudworIyBtYWNoOiBzaAorIyBhcyhzaCk6 CS0taXNhPXNoIC1kZWZzeW0gc2ltX2NwdT0xCisKKyMgLS1pc2E9c2ggbWFya3MgdGhlIHJlc3Vs dGluZyBvYmplY3QgYXMgYmZkX21hY2hfc2gsIGkuZS4gU0gxLgorIyBXaGVuIGV4ZWN1dGluZyBh biBTSDEgb2JqZWN0IHRoZSBzaW11bGF0b3Igc2hvdWxkIGltcGxlbWVudCB0aGUgU0gxIGJlaGF2 aW9yCisjIG9mIHRoZSBuYXJyb3cgNDItYml0IGFjY3VtdWxhdG9yLgorIyBzaW1fY3B1PTEgcHJl dmVudHMgdGVzdHV0aWxzLmluYyBmcm9tIGVtaXR0aW5nIHRoZSBmbG9hdGluZyBwb2ludCBoZWxw ZXJzLAorIyB3aGljaCBTSDEgZG9lcyBub3QgaGF2ZS4KKworCS5pbmNsdWRlICJ0ZXN0dXRpbHMu aW5jIgorCisJc3RhcnQKKwlzZXRfZ3JzX2E1YTUKKworCSMgT24gU0gxIE1BQ0g6TUFDTCBpcyBv bmx5IDQyIGJpdHMgd2lkZS4gIE1BQ0gga2VlcHMgaXRzIGxvdyAxMCBiaXRzCisJIyBhbmQgYml0 IDkgaXMgdGhlIHNpZ24gYml0IG9mIHRoZSBhY2N1bXVsYXRvci4KKworCSMgQml0cyBhYm92ZSBi aXQgOSBhcmUgZHJvcHBlZC4KKwlzZXRfc3JlZwkwLCBtYWNsCisJc2V0X3NyZWcJMHg0NTYsIG1h Y2gKKwltb3ZhCQljb2VmZjAscjAKKwltYWMudwkJQHIwKywgQHIwKworCWFzc2VydF9zcmVnCTB4 NTYsIG1hY2gKKwlhc3NlcnRfc3JlZwk2LCBtYWNsCisKKwkjIEJpdCA5IGlzIHNpZ24gZXh0ZW5k ZWQgaW50byB0aGUgdXBwZXIgYml0cy4KKwlzZXRfc3JlZwkwLCBtYWNsCisJc2V0X3NyZWcJMHgy MDAsIG1hY2gKKwltb3ZhCQljb2VmZjAscjAKKwltYWMudwkJQHIwKywgQHIwKworCWFzc2VydF9z cmVnCTB4ZmZmZmZlMDAsIG1hY2gKKwlhc3NlcnRfc3JlZwk2LCBtYWNsCisKKwlzZXRfZ3JlZwkw eGE1YTVhNWE1LCByMAorCXNldF9ncmVnCTB4YTVhNWE1YTUsIHIxCisKKwl0ZXN0X2dyc19hNWE1 CisKKwlwYXNzCisJZXhpdCAwCisKKwkuYWxpZ24gMgorY29lZmYwOgorCS53b3JkCTIKKwkud29y ZAkzCmRpZmYgLS1naXQgYS9zaW0vdGVzdHN1aXRlL3NoL21hY3cucyBiL3NpbS90ZXN0c3VpdGUv c2gvbWFjdy5zCmluZGV4IDdlM2ViYzAuLmIyNDI0ZDggMTAwNjQ0Ci0tLSBhL3NpbS90ZXN0c3Vp dGUvc2gvbWFjdy5zCisrKyBiL3NpbS90ZXN0c3VpdGUvc2gvbWFjdy5zCkBAIC0zMyw2ICszMywy NCBAQCBkb3VibGVpbmM6CiAJbWFjLncJQHIwKywgQHIwKwogCWFzc2VydHJlZzAgZm91cjAwKzQK IAorYWNjNjQ6CisJIyBPbiBTSDIrIE1BQ0g6TUFDTCBpcyA2NCBiaXRzIHdpZGUuICBDaGVjayB0 aGF0IE1BQ0ggYml0cyA+IDkKKwkjIGFyZSBrZXB0LiAgRm9yIFNIMSBjYXNlIHNlZSBtYWN3LXNo MS5zLgorCXNldF9zcmVnCTAsIG1hY2wKKwlzZXRfc3JlZwkweDQ1NiwgbWFjaAorCW1vdmEJCWNv ZWZmMCxyMAorCW1hYy53CQlAcjArLCBAcjArCisJYXNzZXJ0X3NyZWcJMHg0NTYsIG1hY2gKKwlh c3NlcnRfc3JlZwk2LCBtYWNsCisKKwkjIEJpdCA5IG9mIE1BQ0ggaXMgYW4gb3JkaW5hcnkgZGF0 YSBiaXQgaGVyZSwgbm90IGEgc2lnbiBiaXQuCisJc2V0X3NyZWcJMCwgbWFjbAorCXNldF9zcmVn CTB4MjAwLCBtYWNoCisJbW92YQkJY29lZmYwLHIwCisJbWFjLncJCUByMCssIEByMCsKKwlhc3Nl cnRfc3JlZwkweDIwMCwgbWFjaAorCWFzc2VydF9zcmVnCTYsIG1hY2wKKwogCXNldF9ncmVnCTB4 YTVhNWE1YTUsIHIwCiAJc2V0X2dyZWcJMHhhNWE1YTVhNSwgcjEKIApAQCAtNDgsNiArNjYsOSBA QCBmb3VyMDA6CiBmb3VyMTI6CiAJLndvcmQJMTcKIAkud29yZAkzCitjb2VmZjA6CisJLndvcmQJ MgorCS53b3JkCTMKIAogCiBwZm91cjAwOgotLQpsaWJnaXQyIDEuOS4wCgo= --=-jdz4L0okCmTSx0OW9SMd--