From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.51 as permitted sender) client-ip=209.85.221.51; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f51.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037232; cv=none; d=zohomail.com; s=zohoarc; b=bmvWILihIZmyhRyg1HJ93uKVNP73mCEs/53mRmegaW5en7JzuSGzhxqAGuUxAgPDU47rrVK0m510u4peCw93HbMZxTlfbYTDafKUZoRXlc8NWHAYL+JixJ5gs5q/0xLa1htDqRvNEEP9eUNyrJguTyl3Pa41rkFpBBvtruaz4aI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037232; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=AQmgDwB2NZFiGAsM79pRGtZmuEHi29z7ud0aLRyYnZo=; b=cNOHkLoejTemqNkiKNb5FohQH0U3pyl6tcLfL4qcyIQcddwcKknYHrvCyxtkHYeWQFfGWR/2nALiCAyQXR9YkfHacR9l3OuNXgfrV6DUWCXrfVU+xg8M+xnKHrsMA9bcOgml4uASvuuTvR7dn/a/BEiWVemD/m/IjpZV+B289kw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) by mx.zohomail.com with SMTPS id 1626037232098423.62792073908327; Sun, 11 Jul 2021 14:00:32 -0700 (PDT) Received: by mail-wr1-f51.google.com with SMTP id p8so22085783wrr.1 for ; Sun, 11 Jul 2021 14:00:31 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id s24sm12867272wra.33.2021.07.11.14.00.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:00:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=AQmgDwB2NZFiGAsM79pRGtZmuEHi29z7ud0aLRyYnZo=; b=WE9djIeII77bdT2A9/7DJKGgnpJQeTZ1JDXnVVeY5a1c5/H6BYx3+bECLgLYSHkEFD FRJjeusiBqW7uYqH7i1RutdWZg/Qat49JyVm4QmZctQlqB/242MpqH85wKNM3Ldl/nFq 7oeI/ISh3xEAojrw2LacwHFLtJJld1TBZR9fVY5YiCsZ8GoRV9atPGHz9HCOShYkyYcC BQpP3TF7pHUwesJhWExW3Vr1bjxUbOMgw9sxcIqcpanhuzGFSHllx+5YurwE603nVftr hW+EuRlsVhtmxMJ1lv31RQPmpQMT/z/HsTVG4UY+YnuaXIY+ILl4igUjjthvlz5fKX2m /qPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=AQmgDwB2NZFiGAsM79pRGtZmuEHi29z7ud0aLRyYnZo=; b=S66Aj0yHn1m07kkKUdZLFIeGZSQShgzdzwRVD40YH2vLDojOOzTxs1Ai8ffRO7JCen Mgdnz7QBzeFvaw7g8ZbVRuvJtQY0+5AL6f9HcUKQo4NX7jsfNQNnqCsU1aYwiZj1pjb2 z818qXMgTDra0gKm9NqI6gllIiWsbbAYwSN94VkIWImyrpl56pJhKdZUAnHeRPhYzeaL exGgHMpRSDJxyGJauUrtAVadWi/d8mFruy14t4+cBYHzP9yFbHRQPGzokmxpI40L/iKb 9R7kpl5XHphw56g89rdlCU2BdMNuMgpFGChx4wvZoWtrTzQ1xyMkQ47oq4MAovz2R2vK oTiQ== X-Gm-Message-State: AOAM530oYMWgREDvhJcKnY07RYa5AdyNpmmPvL8g0T2qbS2ttWECTh4u S+9L83gZSibkMkwoOhi7UNI= X-Google-Smtp-Source: ABdhPJxbts48yQ0czzgj+0MsBCjkICjtu9Rqg5qXs2BREB4fisSJKhQcgbXs3oTs0fov9QM8Ujo1ag== X-Received: by 2002:adf:b60b:: with SMTP id f11mr35493567wre.203.1626037230383; Sun, 11 Jul 2021 14:00:30 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Gibson Subject: [PULL 01/19] hw/pci-host: Rename Raven ASIC PCI bridge as raven.c Date: Sun, 11 Jul 2021 22:59:58 +0200 Message-Id: <20210711210016.2710100-2-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037234369100001 The ASIC PCI bridge chipset from Motorola is named 'Raven'. This chipset is used in the PowerPC Reference Platform (PReP), but not restricted to it. Rename it accordingly. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: David Gibson Message-Id: <20210417103028.601124-5-f4bug@amsat.org> --- hw/pci-host/{prep.c =3D> raven.c} | 0 MAINTAINERS | 2 +- hw/pci-host/Kconfig | 2 +- hw/pci-host/meson.build | 2 +- hw/ppc/Kconfig | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) rename hw/pci-host/{prep.c =3D> raven.c} (100%) diff --git a/hw/pci-host/prep.c b/hw/pci-host/raven.c similarity index 100% rename from hw/pci-host/prep.c rename to hw/pci-host/raven.c diff --git a/MAINTAINERS b/MAINTAINERS index 40d095dbbde..36eb0cb9c3c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1304,7 +1304,7 @@ S: Maintained F: hw/ppc/prep.c F: hw/ppc/prep_systemio.c F: hw/ppc/rs6000_mc.c -F: hw/pci-host/prep.[hc] +F: hw/pci-host/raven.c F: hw/isa/i82378.c F: hw/isa/pc87312.c F: hw/dma/i82374.c diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig index 79c20bf28bb..84494400b86 100644 --- a/hw/pci-host/Kconfig +++ b/hw/pci-host/Kconfig @@ -6,7 +6,7 @@ config XEN_IGD_PASSTHROUGH default y depends on XEN && PCI_I440FX =20 -config PREP_PCI +config RAVEN_PCI bool select PCI select OR_IRQ diff --git a/hw/pci-host/meson.build b/hw/pci-host/meson.build index 1698d3a1920..4c4f39c15c6 100644 --- a/hw/pci-host/meson.build +++ b/hw/pci-host/meson.build @@ -13,7 +13,7 @@ pci_ss.add(when: 'CONFIG_SH_PCI', if_true: files('sh_pci.c')) =20 # PPC devices -pci_ss.add(when: 'CONFIG_PREP_PCI', if_true: files('prep.c')) +pci_ss.add(when: 'CONFIG_RAVEN_PCI', if_true: files('raven.c')) pci_ss.add(when: 'CONFIG_GRACKLE_PCI', if_true: files('grackle.c')) # NewWorld PowerMac pci_ss.add(when: 'CONFIG_UNIN_PCI', if_true: files('uninorth.c')) diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig index 7fcafec60a4..322a7eb031e 100644 --- a/hw/ppc/Kconfig +++ b/hw/ppc/Kconfig @@ -85,7 +85,7 @@ config PREP imply PCI_DEVICES imply TEST_DEVICES select CS4231A - select PREP_PCI + select RAVEN_PCI select I82378 select LSI_SCSI_PCI select M48T59 --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.41 as permitted sender) client-ip=209.85.128.41; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f41.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.41 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037237; cv=none; d=zohomail.com; s=zohoarc; b=XBbPodkXl9ZU0UdwEHmo0WCqCAZlG09iHfAPA9mqIaPUnte1rPLf+X9mdogrKnOHXloafg4DV7sZ78liYQqJwpHFwzI+uIdpGbuzHHmH+Mef6d0coWJ2bi12k9aGrpQlOfWGcAclIE4tPGWAP5NeHMBGAXf/uzLa4jeyOMhCbE8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037237; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fEfjSQddq0TrVwbGQ3ccMh+OvT1Jy1LGnQdM/7SCR9Y=; b=b9Qit3zy0JumKTESXWsKjg9hzuc9RKblyu4MAZUHObhBV5sWL7c7OZ6nDAafmWvwUaT6jmbFCJO+N3gmfCcmIkGD3e2VeMcv3WTageedZAaYfhZQ+Xn9j2p1Mjkqz5w5D5l+5mt6w+5PPTYceK6OHPNSNSPiEFxUDIxBNFbwMxg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.41 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by mx.zohomail.com with SMTPS id 1626037237027711.3746393145788; Sun, 11 Jul 2021 14:00:37 -0700 (PDT) Received: by mail-wm1-f41.google.com with SMTP id b14-20020a1c1b0e0000b02901fc3a62af78so12877655wmb.3 for ; Sun, 11 Jul 2021 14:00:36 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id p2sm7130595wmg.6.2021.07.11.14.00.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:00:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=fEfjSQddq0TrVwbGQ3ccMh+OvT1Jy1LGnQdM/7SCR9Y=; b=Rz4wfyg38TGS203+CwcF6V5EpU/k9B6cVDyBjaVSoXNHmL0xwZ3bo5ldwM1zxxcpPD 9qYGKk3o8S4tlv5Mbceej6SQKXmikkwg/brUR/2IokR7evHlvMKCUrSZMTdsJslElmPB 0+juz6AG5PfAoT0rmycyUVpW2+Ke2ViSEJ0ytWo7X1zXTwWeOmsxE1/WY86TQoegG4XC NniQ/tEq1seo347O7FMK7x8jpuiae2eLMFVzbBVneiduTKYuL1LioZJiINy8H6Xw3A2O 34QpOYfzs2X8CuyYoyXMFYoaMsAKXxcNnFOvVyOTwLr+5wN+n18np3tSHYdRjJf7lNjZ mieg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=fEfjSQddq0TrVwbGQ3ccMh+OvT1Jy1LGnQdM/7SCR9Y=; b=ZiH9/xbZ9amcdAPheoXZgESDLnGnzcTmfAKF/nGP397OPkh6cViYwxVn2u063+5U2M UL6KIEUXYaelDdaNQQddXfobEaRfikL+pGgc76IKNyvSHEUN+tS4/NDhUW+gpzVzskk7 K/Rdl2Mgwkk5holY8mEdIiU4PKn6idhpghtkEfhwaDuZU55tPJrVZN9L9AKkP5ciwf2Z Wiehztj6l+kMjyY4m5Dk70hadSWx2HGVRb9CGvKJ4L9ON6IlHeZ3kFsfd81co3zeKOEe v+yRC36IVHho8PVZZYRaNhTbn4s7RLsmXAclRe7s2jAXdbvIn6URZO/qCfUPSLx5l5lK oCig== X-Gm-Message-State: AOAM531uYD4cn4ADzRRtgKSvHUHTvrBmhO766OjiDjcMXLtP+UMsyXCV IW75XlYo/3/ZtW/NfTrRgcE= X-Google-Smtp-Source: ABdhPJzsi7u3mSvjZ1+qbVmuyDpTa9itimdchm0DrTjEt+L0vFgXj0XBLnZVJTCAM2eyRXF5zIExSQ== X-Received: by 2002:a05:600c:4fd0:: with SMTP id o16mr10848572wmq.179.1626037235269; Sun, 11 Jul 2021 14:00:35 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Gibson Subject: [PULL 02/19] hw/pci-host/raven: Add PCI_IO_BASE_ADDR definition Date: Sun, 11 Jul 2021 22:59:59 +0200 Message-Id: <20210711210016.2710100-3-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037238785100001 Rather than using the magic 0x80000000 number for the PCI I/O BAR physical address on the main system bus, use a definition. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: David Gibson Message-Id: <20210417103028.601124-6-f4bug@amsat.org> --- hw/pci-host/raven.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/hw/pci-host/raven.c b/hw/pci-host/raven.c index 9fef74fc56c..3be27f0a14d 100644 --- a/hw/pci-host/raven.c +++ b/hw/pci-host/raven.c @@ -81,6 +81,8 @@ struct PRePPCIState { =20 #define BIOS_SIZE (1 * MiB) =20 +#define PCI_IO_BASE_ADDR 0x80000000 /* Physical address on main bus */ + static inline uint32_t raven_pci_io_config(hwaddr addr) { int i; @@ -158,7 +160,7 @@ static uint64_t raven_io_read(void *opaque, hwaddr addr, uint8_t buf[4]; =20 addr =3D raven_io_address(s, addr); - address_space_read(&s->pci_io_as, addr + 0x80000000, + address_space_read(&s->pci_io_as, addr + PCI_IO_BASE_ADDR, MEMTXATTRS_UNSPECIFIED, buf, size); =20 if (size =3D=3D 1) { @@ -190,7 +192,7 @@ static void raven_io_write(void *opaque, hwaddr addr, g_assert_not_reached(); } =20 - address_space_write(&s->pci_io_as, addr + 0x80000000, + address_space_write(&s->pci_io_as, addr + PCI_IO_BASE_ADDR, MEMTXATTRS_UNSPECIFIED, buf, size); } =20 @@ -293,8 +295,9 @@ static void raven_pcihost_initfn(Object *obj) address_space_init(&s->pci_io_as, &s->pci_io, "raven-io"); =20 /* CPU address space */ - memory_region_add_subregion(address_space_mem, 0x80000000, &s->pci_io); - memory_region_add_subregion_overlap(address_space_mem, 0x80000000, + memory_region_add_subregion(address_space_mem, PCI_IO_BASE_ADDR, + &s->pci_io); + memory_region_add_subregion_overlap(address_space_mem, PCI_IO_BASE_ADD= R, &s->pci_io_non_contiguous, 1); memory_region_add_subregion(address_space_mem, 0xc0000000, &s->pci_mem= ory); pci_root_bus_new_inplace(&s->pci_bus, sizeof(s->pci_bus), DEVICE(obj),= NULL, --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.44 as permitted sender) client-ip=209.85.221.44; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f44.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.44 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037241; cv=none; d=zohomail.com; s=zohoarc; b=C+cBKebd08erV9ASBj0qr44hif9+fxIpWiRGnOz7zfIxc6Y1tGiehzG5Gjva+Lk9O1aBdqOlb/IpCO68wObzyFnj5tt1EGWS5L9ORZAwxC24AHi1eKyR6lNy/4K6rMxIMUmq2UORi0BDRa8Gac8FZwV+rtAJjKQSZ+tT8NrlSmY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037241; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ix0ZNByA7PaYvpQ6FepEgQp4kdYoJ33K1BtkJW9E8Xk=; b=EOHhpGowHpcOnZ/ElVr+u33mkPsNX6/rh4bOIZZKjptk+bIe/gQoGf5DyWtbwidsKC6Z66gjqS2X2cjTBbwVkrW5lKoFvHzwmcmUYTsYwtbyrMRwZnzxukO64Glszs3zo9yoI19LyOF33FX5iKiTlM3q/tWLyCwDl1YwAAevbDc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.44 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) by mx.zohomail.com with SMTPS id 1626037241986656.0210054844739; Sun, 11 Jul 2021 14:00:41 -0700 (PDT) Received: by mail-wr1-f44.google.com with SMTP id v5so22073797wrt.3 for ; Sun, 11 Jul 2021 14:00:41 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id f7sm5469311wru.11.2021.07.11.14.00.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:00:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ix0ZNByA7PaYvpQ6FepEgQp4kdYoJ33K1BtkJW9E8Xk=; b=O5N7VwfjhZ0WX7izdmkITCjNeHI341iYtaVFi5pTgm9iVmhiNi/jChIeZ8b0ZAe68x jU215KlpijDmISgMujiNvJOfeAooEnminwnL2vTdKsN+G4fuqNzYUMIoghzD1qifXSw0 zed9i5Ty4PDVTueij7WU6jmQHf8rcstf+A5f5fidan9fkZ7W60Rd7rhuSjpk7s0kFcd9 eG1V1rt5OmB4pOZltqu5Jk9CJ/sZhyUOYVffmzi6M/O/jj7JLFCPsF6YlkDJPs3E0Yy1 h+aPNpA1bLImKQ+UvLSpqYLxOvNKI8I5QkgMjpeDcYvzsMusczhwh02oStEbo5jXP9dJ a32w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=ix0ZNByA7PaYvpQ6FepEgQp4kdYoJ33K1BtkJW9E8Xk=; b=ErYehERT96pSqcO2t1rD1L3ddDq17+jZrAMJF6iA/7m7n+ehOu+gXbuImK+XZ4UEi7 jDrZ5PVGiecClHSqZloN/6f0ZTS9b5mhE6ByEIWPM0oMou8aQvXzKzfDFHUi4edUWg0l tPMTsasnSSk+cJTi31MqlKFr/nMaLgp5+sJoZJqi9wpa28dDgqkYor3BMOQM9Rr2nJGh bkCsM0bZijpblh7xXqRlHSppnou5HOIyxEtadktjNbzCmJ/ERm6sWVa+jgmkghF8AOce EfMuoDamdcwnBR/Z0ChD2Cb1oxKr1wtznCra907Kw4mDanhGGd1WLY4APuWGB0zRjJVn QqUw== X-Gm-Message-State: AOAM531E6VR04ViY8SJJfsE3j0Nd2z2n/6FLI7aOx/qYzw9CLx740M/f 3DW7Kv9zaqDPOJ9ef8EVxBM= X-Google-Smtp-Source: ABdhPJxUFHzIodV0I/+SL5WndIzzAUHwpD99cjaU1fiY/PEluI+PM0v/cnwoz95TgHjJCGYSHaefOQ== X-Received: by 2002:a05:6000:50f:: with SMTP id a15mr48913409wrf.108.1626037240271; Sun, 11 Jul 2021 14:00:40 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson Subject: [PULL 03/19] target/mips/tx79: Introduce PAND/POR/PXOR/PNOR opcodes (parallel logic) Date: Sun, 11 Jul 2021 23:00:00 +0200 Message-Id: <20210711210016.2710100-4-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037242727100001 Introduce the parallel logic opcodes: - PAND (Parallel AND) - POR (Parallel OR) - PXOR (Parallel XOR) - PNOR (Parallel NOR) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-16-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/tcg/tx79.decode | 4 +++ target/mips/tcg/tx79_translate.c | 54 ++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/target/mips/tcg/tx79.decode b/target/mips/tcg/tx79.decode index 0f748b53a64..26c80b9bce5 100644 --- a/target/mips/tcg/tx79.decode +++ b/target/mips/tcg/tx79.decode @@ -32,8 +32,12 @@ MTLO1 011100 ..... 0000000000 00000 010011 = @rs # MMI2 =20 PCPYLD 011100 ..... ..... ..... 01110 001001 @rs_rt_rd +PAND 011100 ..... ..... ..... 10010 001001 @rs_rt_rd +PXOR 011100 ..... ..... ..... 10011 001001 @rs_rt_rd =20 # MMI3 =20 PCPYUD 011100 ..... ..... ..... 01110 101001 @rs_rt_rd +POR 011100 ..... ..... ..... 10010 101001 @rs_rt_rd +PNOR 011100 ..... ..... ..... 10011 101001 @rs_rt_rd PCPYH 011100 00000 ..... ..... 11011 101001 @rt_rd diff --git a/target/mips/tcg/tx79_translate.c b/target/mips/tcg/tx79_transl= ate.c index ad83774b977..00364f10d47 100644 --- a/target/mips/tcg/tx79_translate.c +++ b/target/mips/tcg/tx79_translate.c @@ -2,6 +2,7 @@ * Toshiba TX79-specific instructions translation routines * * Copyright (c) 2018 Fredrik Noring + * Copyright (c) 2021 Philippe Mathieu-Daud=C3=A9 * * SPDX-License-Identifier: GPL-2.0-or-later */ @@ -114,6 +115,35 @@ static bool trans_MTLO1(DisasContext *ctx, arg_rtype *= a) * PSUBUW rd, rs, rt Parallel Subtract with Unsigned saturation Wo= rd */ =20 +static bool trans_parallel_arith(DisasContext *ctx, arg_rtype *a, + void (*gen_logic_i64)(TCGv_i64, TCGv_i64,= TCGv_i64)) +{ + TCGv_i64 ax, bx; + + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + + ax =3D tcg_temp_new_i64(); + bx =3D tcg_temp_new_i64(); + + /* Lower half */ + gen_load_gpr(ax, a->rs); + gen_load_gpr(bx, a->rt); + gen_logic_i64(cpu_gpr[a->rd], ax, bx); + + /* Upper half */ + gen_load_gpr_hi(ax, a->rs); + gen_load_gpr_hi(bx, a->rt); + gen_logic_i64(cpu_gpr_hi[a->rd], ax, bx); + + tcg_temp_free(bx); + tcg_temp_free(ax); + + return true; +} + /* * Min/Max (4 instructions) * ------------------------ @@ -139,6 +169,30 @@ static bool trans_MTLO1(DisasContext *ctx, arg_rtype *= a) * PNOR rd, rs, rt Parallel NOR */ =20 +/* Parallel And */ +static bool trans_PAND(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_arith(ctx, a, tcg_gen_and_i64); +} + +/* Parallel Or */ +static bool trans_POR(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_arith(ctx, a, tcg_gen_or_i64); +} + +/* Parallel Exclusive Or */ +static bool trans_PXOR(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_arith(ctx, a, tcg_gen_xor_i64); +} + +/* Parallel Not Or */ +static bool trans_PNOR(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_arith(ctx, a, tcg_gen_nor_i64); +} + /* * Shift (9 instructions) * ---------------------- --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.43 as permitted sender) client-ip=209.85.128.43; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f43.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037247; cv=none; d=zohomail.com; s=zohoarc; b=bae4C2r6HbWREO/l+NpD7gl6wQssc7/HpxeBDDKMImM98CNV3wLQkmAHxFRBXEwL3MPZA1HTIi5gIHoRUZsv6IihqzMqvA3KaVV/dP3X9G1Mc2YyZts59c6anRZQb0iebzE3q0NqwyTLE6+tMCHjj3YzdjDNkTBSNgj7FT3YF30= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037247; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=viZvhtQVx52mUJR9Wb2zu95/w2DAOaJIT3+YevgQ4qA=; b=PM9CiwCL8xSFEW+WLWJGSFsh7NMYHN1UAK9YdoPzIN21lmJ03xO53OUKxi9Aaaplg+GJZaW9/il5lj3Bhe0BDABo4GIdeAnucS34wJLBV7kupRhw3X9WT0cfHIUuGpXINdjGR64X6QE9+Q9DBfLZZGzFEqtXVhLH+jn2tO7psPo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by mx.zohomail.com with SMTPS id 1626037247060278.75429070952396; Sun, 11 Jul 2021 14:00:47 -0700 (PDT) Received: by mail-wm1-f43.google.com with SMTP id l6so1671282wmq.0 for ; Sun, 11 Jul 2021 14:00:46 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id u12sm12342714wrt.50.2021.07.11.14.00.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:00:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=viZvhtQVx52mUJR9Wb2zu95/w2DAOaJIT3+YevgQ4qA=; b=JsgUtK1S8jcAGv8SHbedhJolyKKz9jve2vG8mAfHNdnQGXXweP5fzCbgM7gJavNYJc iGS4FRtk+jfLrKY/L15jh78ciIh/aJpeut4Up4Yu9AEoPGTpfNOI2Y+U8an+x305DHUd wQNVJ6Aekr9cbPWM8tUR8uQ9Seax2+K3cTM3j59Jrb1KqWdAyQK/BtfGPvBH9NeQuLX2 zVyZdvq1bcQTl3npd9SbrkVisI790bXFIhSFbduUQjO4SsZZ7fbFIamHLktj3HuxXqg3 vh8wTjPwI5fTFLDufMw49r3df/Jk8hC74pB972CPkWVvPMS9f5FqWPC9obIDJC6T+YPy tG8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=viZvhtQVx52mUJR9Wb2zu95/w2DAOaJIT3+YevgQ4qA=; b=tCB2Iy9L+KZiQ5i6muii05OhhBoWeHmoz4LrqkUCiqVZeNiiEUOg44xEaf3S/yt7Ez 57BoP3c4iwyIQnh+IOt9GRGG8exE7kXWilF526fk/MOML2Lr7vMb2Wov4taa/c2tH8R4 V/hknJbS2NUEsc3SRXn4LRzA7NPpAwWdFe9GBxPttny151X75h/gnUYkh7PukKXRvW1b CwFP3vNhXaNxM/X5wWjHBhOBA/fymNwAMDJL835rrGPHawwpUEfiCcU8yWGGiATvpHnv JOgbq+CWPSiPM4qW0WvRw+NPsZ/0nSfuts4mqg6AZbxIrRpH9YnFkoD8iiqgj1qpxlLe fzoA== X-Gm-Message-State: AOAM533n2npK8aif3oKLByRJU0avmu1t+yBFro4KEhx2UnyIv86CCcll nX1lJdkcWK7UPYOGKt9SQ6Q= X-Google-Smtp-Source: ABdhPJy4g0+IuQNtefPuZ1L9k6LX8mTK9Um8JKlgo0ANxcBr+nlHPYQHqqrsshlEj2bg9mVCP+NHng== X-Received: by 2002:a1c:f705:: with SMTP id v5mr10809146wmh.69.1626037245207; Sun, 11 Jul 2021 14:00:45 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson Subject: [PULL 04/19] target/mips/tx79: Introduce PSUB* opcodes (Parallel Subtract) Date: Sun, 11 Jul 2021 23:00:01 +0200 Message-Id: <20210711210016.2710100-5-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037249502100001 Introduce the 'Parallel Subtract' opcodes: - PSUBB (Parallel Subtract Byte) - PSUBH (Parallel Subtract Halfword) - PSUBW (Parallel Subtract Word) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <820210309145653.743937-11-f4bug@amsat.org> --- target/mips/tcg/tx79.decode | 6 ++++++ target/mips/tcg/tx79_translate.c | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/target/mips/tcg/tx79.decode b/target/mips/tcg/tx79.decode index 26c80b9bce5..d1c07c7d901 100644 --- a/target/mips/tcg/tx79.decode +++ b/target/mips/tcg/tx79.decode @@ -29,6 +29,12 @@ MTHI1 011100 ..... 0000000000 00000 010001 = @rs MFLO1 011100 0000000000 ..... 00000 010010 @rd MTLO1 011100 ..... 0000000000 00000 010011 @rs =20 +# MMI0 + +PSUBW 011100 ..... ..... ..... 00001 001000 @rs_rt_rd +PSUBH 011100 ..... ..... ..... 00101 001000 @rs_rt_rd +PSUBB 011100 ..... ..... ..... 01001 001000 @rs_rt_rd + # MMI2 =20 PCPYLD 011100 ..... ..... ..... 01110 001001 @rs_rt_rd diff --git a/target/mips/tcg/tx79_translate.c b/target/mips/tcg/tx79_transl= ate.c index 00364f10d47..3abd1d92e70 100644 --- a/target/mips/tcg/tx79_translate.c +++ b/target/mips/tcg/tx79_translate.c @@ -9,6 +9,7 @@ =20 #include "qemu/osdep.h" #include "tcg/tcg-op.h" +#include "tcg/tcg-op-gvec.h" #include "exec/helper-gen.h" #include "translate.h" =20 @@ -144,6 +145,24 @@ static bool trans_parallel_arith(DisasContext *ctx, ar= g_rtype *a, return true; } =20 +/* Parallel Subtract Byte */ +static bool trans_PSUBB(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_arith(ctx, a, tcg_gen_vec_sub8_i64); +} + +/* Parallel Subtract Halfword */ +static bool trans_PSUBH(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_arith(ctx, a, tcg_gen_vec_sub16_i64); +} + +/* Parallel Subtract Word */ +static bool trans_PSUBW(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_arith(ctx, a, tcg_gen_vec_sub32_i64); +} + /* * Min/Max (4 instructions) * ------------------------ --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.51 as permitted sender) client-ip=209.85.128.51; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f51.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037251; cv=none; d=zohomail.com; s=zohoarc; b=GyjkXJ3A2x2eWaXe+tEvIzMSUOwiO5PihhPTW4Yo/QkGm9sjQNZsPwDjmJfbzNkHcZXP7BjiR5uHvOFt6iFuyZH8Bs99nUSkKB2zEgByG6YVoNdeuSBSwbw74tKQmk2fN5GUtxP7rO1UT3Cj1R/pmmTtYc5uMIcVj1qj4DT5vrA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037251; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mjXB+zPeQIFAsPvYWp38CYfARqfaG/PAvXs8iGg2ke0=; b=V24hKsPxvDlAheueV/i4fszc/m9bPFJnGe2XjPhb6aQCPXuQy4Qs2yhuYXc6irVPh5ypfEM98/+g+XxOAaR5fRV57Qpp4HIAvZCu6Cm5Qe0Vdx/krazO0T2BWKfNN6NudGLlvh186BlYrEeL25JZd+vQ9VS52RmsXqfvmu9y188= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) by mx.zohomail.com with SMTPS id 1626037251845743.6940766083197; Sun, 11 Jul 2021 14:00:51 -0700 (PDT) Received: by mail-wm1-f51.google.com with SMTP id u8-20020a7bcb080000b02901e44e9caa2aso10011349wmj.4 for ; Sun, 11 Jul 2021 14:00:51 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id p9sm11929945wrx.59.2021.07.11.14.00.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:00:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mjXB+zPeQIFAsPvYWp38CYfARqfaG/PAvXs8iGg2ke0=; b=RXBd+hYmH/ZaXCnpLC1xzix/ECIAAuOBeRkAsdcRIAvMwddM0bq2tscm+A5CXQZoVU R4DBtWlCCwCB26e6Bcg5PxDHKdF7IJotUBEkX0wUXY5HwkK7xzUpg36xUzbZ5cvhb5tQ y7cozkxBtUC8KkAO/N2Oq4QVPGCAjdw2IINTMXe4Y/bab3xqSlLFmO5iztvuwQ0iEYPq oPM4sQbg67hpW3SRJINIyyJiBTLyyPUiY1YtnQzuwDlNxTlyFMeXMj57T4VuY8toy4Ht OxG6JpV4h2af8apC3L3WvyWIzGypxBllPLjDixj4V4d31D16npN15dS+o+NzQc8J8Igb 7B8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=mjXB+zPeQIFAsPvYWp38CYfARqfaG/PAvXs8iGg2ke0=; b=g2JD6Hbd2sX8BcQlYpsUZCcyQhJ3gi1PtAVARjCwDzjXY5KDlCB778wBsoeuf3iKgb r3j/pxNVU+t84h3gqTmW9S2FJxvUJ7yGe0WeTW7WSNeLZwga/m1oTekgvDrDJrSLrm8T zBv82tEBfP4fLB3Du6IXKM+/glJmo7SMbw221mYjLBG3sU5p0lEZQ6drVPNtrFpNWq0o kp7/Wm19qsqkKTvpDgGMr4767o0NwAc0GFv3NXrhX21wvEeHx+swOvKqE1/NJLTcodtl n1kWgO4h9toddAX1b2IF/oOH5VBFSuHQMJbX1ULsbhcIzUEZola7gmZbA0oXHbgCpOCa PWiA== X-Gm-Message-State: AOAM530h6uomsirfXx59vMVUTmi+t+bcDGjqiApT6g1QuWvWP5UbrR2Q ueTo2YD7veut76GPsDSHzRYZ6oySA5Yq5hq/ X-Google-Smtp-Source: ABdhPJxjIIARPSlUewWS8PuehoiSim7dJxhpNnrkTxkr5enHlSsAn9z4FOydHPBLqi5gV86hMOujFQ== X-Received: by 2002:a05:600c:4105:: with SMTP id j5mr29919375wmi.49.1626037250137; Sun, 11 Jul 2021 14:00:50 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson Subject: [PULL 05/19] target/mips/tx79: Introduce PEXTUW (Parallel Extend Upper from Word) Date: Sun, 11 Jul 2021 23:00:02 +0200 Message-Id: <20210711210016.2710100-6-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037253383100001 Introduce the PEXTUW opcode (Parallel Extend Upper from Word). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210309145653.743937-12-f4bug@amsat.org> --- target/mips/tcg/tx79.decode | 4 ++++ target/mips/tcg/tx79_translate.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/target/mips/tcg/tx79.decode b/target/mips/tcg/tx79.decode index d1c07c7d901..ead5f8281e5 100644 --- a/target/mips/tcg/tx79.decode +++ b/target/mips/tcg/tx79.decode @@ -35,6 +35,10 @@ PSUBW 011100 ..... ..... ..... 00001 001000 = @rs_rt_rd PSUBH 011100 ..... ..... ..... 00101 001000 @rs_rt_rd PSUBB 011100 ..... ..... ..... 01001 001000 @rs_rt_rd =20 +# MMI1 + +PEXTUW 011100 ..... ..... ..... 10010 101000 @rs_rt_rd + # MMI2 =20 PCPYLD 011100 ..... ..... ..... 01110 001001 @rs_rt_rd diff --git a/target/mips/tcg/tx79_translate.c b/target/mips/tcg/tx79_transl= ate.c index 3abd1d92e70..68c56affc4c 100644 --- a/target/mips/tcg/tx79_translate.c +++ b/target/mips/tcg/tx79_translate.c @@ -290,6 +290,36 @@ static bool trans_PNOR(DisasContext *ctx, arg_rtype *a) * PEXTLW rd, rs, rt Parallel Extend Lower from Word */ =20 +static void gen_pextw(TCGv_i64 dl, TCGv_i64 dh, TCGv_i64 a, TCGv_i64 b) +{ + tcg_gen_deposit_i64(dl, b, a, 32, 32); + tcg_gen_shri_i64(b, b, 32); + tcg_gen_deposit_i64(dh, a, b, 0, 32); +} + +/* Parallel Extend Upper from Word */ +static bool trans_PEXTUW(DisasContext *ctx, arg_rtype *a) +{ + TCGv_i64 ax, bx; + + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + + ax =3D tcg_temp_new_i64(); + bx =3D tcg_temp_new_i64(); + + gen_load_gpr_hi(ax, a->rs); + gen_load_gpr_hi(bx, a->rt); + gen_pextw(cpu_gpr[a->rd], cpu_gpr_hi[a->rd], ax, bx); + + tcg_temp_free(bx); + tcg_temp_free(ax); + + return true; +} + /* * Others (16 instructions) * ------------------------ --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.43 as permitted sender) client-ip=209.85.128.43; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f43.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037256; cv=none; d=zohomail.com; s=zohoarc; b=Aou3hBZyBMkGVMMzudAl7y3uPJh6uOAjATb4FSPwCm+Ach6f2220rNLW7ccTdfmv8QKgBgPXMG52zlEA9ZN/4fpjn1DesEezWPxvwkDbadH/63FrZtpgQImKnI7bANV8EUERORq6AyZA5u31NCdwD9Eo6jzyH57GSeotVI8zvOs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037256; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5XKU4Tkdv/SSZ1Urbjy7D1rDO0a00fPrTd38NNFwCE8=; b=YJsqh4yEHhNKvzipFCKnCV9FrMjtfCJrnvQkU6UtVZnozqbNBImtpC9tgZi9TIEneUmjVzys/kDnwY8SSqX+maSVpj0VWKnHTDU0jGmsLnZnlvKl8yQRNemrb8xAtYAozONv6qfW90bb8hPi+guotCRWOu5XTbAZg/LBJbRiFdM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by mx.zohomail.com with SMTPS id 1626037256675462.3330492582131; Sun, 11 Jul 2021 14:00:56 -0700 (PDT) Received: by mail-wm1-f43.google.com with SMTP id l18-20020a1ced120000b029014c1adff1edso12891729wmh.4 for ; Sun, 11 Jul 2021 14:00:56 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id x19sm10899259wmi.10.2021.07.11.14.00.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:00:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5XKU4Tkdv/SSZ1Urbjy7D1rDO0a00fPrTd38NNFwCE8=; b=aZ/eE8GIIQNHi7+Ql+nI5eDmsET0LtOD6AbcmtjFRBtALCzEPQlesDwp9zSslK98xw LCDb9UzMeC6nfj0gDVf8BRcC7HYwbfviLU3UB/KZ1Yid6sgh+xcecwc7vZNYVYDLvU6G gGMw1qms3EgipkLub8/Bd3JN59SOR3WP4dn2D7hEgtkJtCVaDVA320TjiOYOSuXU5ftt g0e2BZcueIAg3CiLsDgM4yOC5ei3zVYSjc01m8V89kimaltMjsNmkgV5YMHo2jUNsAzo Ipsu4ImEHYnb4NPNOW9/s65PYelMS8OUWN0Q2rv0ujcrVI9Hl5QGXHCOfKONL6TN1LLv ue+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=5XKU4Tkdv/SSZ1Urbjy7D1rDO0a00fPrTd38NNFwCE8=; b=EaE7/S0Vf+g4qWGbktP2d3pDlKyy4aHKRh6pSOyecxAXXeinOFn2eagFCMeiehCNre E47m+HgWYeQu09ZnmQvbWZWGQaCI5+UAVPInNWKyChaSuc6b+gH2D0tLU0co9EIQl4EY cyJzAN1Y1K1VRJRQsmB4zBiDTyRDXbxbihTaQdqB9UZQ/JtCrXkmmKpEciDFn77m+uaD crvsA1MQkrF1Uub7r1ECT9N0PTLNchse7HnI8tvLXTw7UckYaIXGXePptMjD4YGT9bvH 9oe6pQ8UccnEc3tY7YjyMmwWEyChlG63KGkWGgEoQTLHHfFjwWn+MajlISSjg1clY3PR hV5Q== X-Gm-Message-State: AOAM533m2LXJFjKtCagOnC4grS2/YhtAYL5AQr5yT3EnezVMwI99TDdY fd25hMLcCR06DfvPUbbW+Cf+a5eucDdyMCNL X-Google-Smtp-Source: ABdhPJzU1xwEdzki7aTxLcuHhUWEIHxNClpOcTu0YZLij98gG5yn2+jnOPGPVLDCk/qAunEI3wEQew== X-Received: by 2002:a1c:25c6:: with SMTP id l189mr11028790wml.49.1626037254939; Sun, 11 Jul 2021 14:00:54 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson Subject: [PULL 06/19] target/mips/tx79: Introduce PEXTL[BHW] opcodes (Parallel Extend Lower) Date: Sun, 11 Jul 2021 23:00:03 +0200 Message-Id: <20210711210016.2710100-7-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037257696100001 Introduce the 'Parallel Extend Lower' opcodes: - PEXTLB (Parallel Extend Upper from Byte) - PEXTLH (Parallel Extend Upper from Halfword) - PEXTLW (Parallel Extend Upper from Word) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210309145653.743937-13-f4bug@amsat.org> --- target/mips/tcg/tx79.decode | 3 ++ target/mips/tcg/tx79_translate.c | 75 ++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) diff --git a/target/mips/tcg/tx79.decode b/target/mips/tcg/tx79.decode index ead5f8281e5..98f21d33e3f 100644 --- a/target/mips/tcg/tx79.decode +++ b/target/mips/tcg/tx79.decode @@ -34,6 +34,9 @@ MTLO1 011100 ..... 0000000000 00000 010011 @= rs PSUBW 011100 ..... ..... ..... 00001 001000 @rs_rt_rd PSUBH 011100 ..... ..... ..... 00101 001000 @rs_rt_rd PSUBB 011100 ..... ..... ..... 01001 001000 @rs_rt_rd +PEXTLW 011100 ..... ..... ..... 10010 001000 @rs_rt_rd +PEXTLH 011100 ..... ..... ..... 10110 001000 @rs_rt_rd +PEXTLB 011100 ..... ..... ..... 11010 001000 @rs_rt_rd =20 # MMI1 =20 diff --git a/target/mips/tcg/tx79_translate.c b/target/mips/tcg/tx79_transl= ate.c index 68c56affc4c..c4656a4c21d 100644 --- a/target/mips/tcg/tx79_translate.c +++ b/target/mips/tcg/tx79_translate.c @@ -297,6 +297,81 @@ static void gen_pextw(TCGv_i64 dl, TCGv_i64 dh, TCGv_i= 64 a, TCGv_i64 b) tcg_gen_deposit_i64(dh, a, b, 0, 32); } =20 +static bool trans_PEXTLx(DisasContext *ctx, arg_rtype *a, unsigned wlen) +{ + TCGv_i64 ax, bx; + + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + + ax =3D tcg_temp_new_i64(); + bx =3D tcg_temp_new_i64(); + + gen_load_gpr(ax, a->rs); + gen_load_gpr(bx, a->rt); + + /* Lower half */ + for (int i =3D 0; i < 64 / (2 * wlen); i++) { + tcg_gen_deposit_i64(cpu_gpr[a->rd], + cpu_gpr[a->rd], bx, 2 * wlen * i, wlen); + tcg_gen_deposit_i64(cpu_gpr[a->rd], + cpu_gpr[a->rd], ax, 2 * wlen * i + wlen, wlen); + tcg_gen_shri_i64(bx, bx, wlen); + tcg_gen_shri_i64(ax, ax, wlen); + } + /* Upper half */ + for (int i =3D 0; i < 64 / (2 * wlen); i++) { + tcg_gen_deposit_i64(cpu_gpr_hi[a->rd], + cpu_gpr_hi[a->rd], bx, 2 * wlen * i, wlen); + tcg_gen_deposit_i64(cpu_gpr_hi[a->rd], + cpu_gpr_hi[a->rd], ax, 2 * wlen * i + wlen, wl= en); + tcg_gen_shri_i64(bx, bx, wlen); + tcg_gen_shri_i64(ax, ax, wlen); + } + + tcg_temp_free(bx); + tcg_temp_free(ax); + + return true; +} + +/* Parallel Extend Lower from Byte */ +static bool trans_PEXTLB(DisasContext *ctx, arg_rtype *a) +{ + return trans_PEXTLx(ctx, a, 8); +} + +/* Parallel Extend Lower from Halfword */ +static bool trans_PEXTLH(DisasContext *ctx, arg_rtype *a) +{ + return trans_PEXTLx(ctx, a, 16); +} + +/* Parallel Extend Lower from Word */ +static bool trans_PEXTLW(DisasContext *ctx, arg_rtype *a) +{ + TCGv_i64 ax, bx; + + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + + ax =3D tcg_temp_new_i64(); + bx =3D tcg_temp_new_i64(); + + gen_load_gpr(ax, a->rs); + gen_load_gpr(bx, a->rt); + gen_pextw(cpu_gpr[a->rd], cpu_gpr_hi[a->rd], ax, bx); + + tcg_temp_free(bx); + tcg_temp_free(ax); + + return true; +} + /* Parallel Extend Upper from Word */ static bool trans_PEXTUW(DisasContext *ctx, arg_rtype *a) { --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.45 as permitted sender) client-ip=209.85.221.45; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f45.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.45 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037261; cv=none; d=zohomail.com; s=zohoarc; b=Ac6H5om6OlGVOlwDt0HQiYdya7W2/QRqbes++2qPzV4cZOBt54JpiggV92qarDgLdKKZDu8O022yLFV7/znrkVo1ed4xRKePOvS1x+cChU00EH6TKQdRU3wWe5Ecl9Rx01NHFfQEkeQQxAyFeYTGReLRfJOuYUcFr6U+KlwMyHo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037261; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=gWVh4UrhDUncjcNNoap6OjkeUWx2lHe7S0zeQI7wmW0=; b=jR45Rp/f6jNLfJgAtN3XTgibb4/wErkEFF0ebadU680vMJ2cY40tmo7fJneNXx3WjL2yZgjK86GR17iJOxDoOtqH7K76f7Hk7hQBXv1P9wv3PRYgqga8Rb8ueheUDde14guD8YW8nR37UpN6PQUlr6+zG8wIWvh9enoq7ZePkqc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.45 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) by mx.zohomail.com with SMTPS id 1626037261393188.44690928562136; Sun, 11 Jul 2021 14:01:01 -0700 (PDT) Received: by mail-wr1-f45.google.com with SMTP id r11so16821605wro.9 for ; Sun, 11 Jul 2021 14:01:00 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id l22sm3697500wmp.41.2021.07.11.14.00.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:00:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gWVh4UrhDUncjcNNoap6OjkeUWx2lHe7S0zeQI7wmW0=; b=oO/WPOAFavjsDoEjsunZuN9GDc8dbmHXc2hlBXMa5RA3JC7RXULhC53yjZIAEFIBwz UMqmDSDDGt20HFKUX6aEnerzVgckXe7xhEWJpswkaMIStSpNjQiCNtBdcdmSLHdNOl9q gJSEL8lZz4RY6aLEZjocv6WeFToq9CJV1xodh3clSY4PBEg+LEaHN9XIluFPPt3fvqMm iplnZ4gGJrElLbKGwALGI14epPJkTwbYjI9GWwRWZRovqXM6qm5WgGATThUX+SkwjOlo Ovc4C79tzzlgqeNsKZpcK7WUvRH74b8ZAhYze1/0H19fbLyicV7Xh2yoeTIXxj566KYU vy9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=gWVh4UrhDUncjcNNoap6OjkeUWx2lHe7S0zeQI7wmW0=; b=gxowfoxeqAQreJLUPvTIoDjCItnCxu6x+klozuNiJWBvKKFulAsO4N90qoEIP8s0md HvM3+lm8kVEfueOjIF59Kime8YkcjBVMe1bnOY+76SwjpO4IcmA27Bx33sF6dZ3Kw3ng nNa/VgdsY7psIOegNkmScnfCPXyYhcXvu0XV7hqNn6vN01CNpysdsJVLV5d0B1VTZbc+ U1zCVz3MlWhs3ZfcxneilZ3y3wO1SVBRzxWcovCvbZX+hfsHKiBLinxJYpykNtwObB5j 36V7C99QYnoQou5DMUrz3hARfAlxmKY5GvK+Ue63H/w7iBY33cfGD9z5KwX7/Ntyjv6i rVSA== X-Gm-Message-State: AOAM531nKFnqqtAA5mhL7CQkzS+at6BcRFVcapW4eha4bq8Lwuu9aAoL nxYB7TwsK8/qDN74Qhn2eAs= X-Google-Smtp-Source: ABdhPJwui/r0W8c0Qt87PZu6wzfRcZR3MPf1GL9OAlRxxLKcYvIaWSwmMxsIqeliE2PzkYzkYHTOWA== X-Received: by 2002:adf:f50e:: with SMTP id q14mr30943349wro.183.1626037259667; Sun, 11 Jul 2021 14:00:59 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson Subject: [PULL 07/19] target/mips/tx79: Introduce PCEQ* opcodes (Parallel Compare for Equal) Date: Sun, 11 Jul 2021 23:00:04 +0200 Message-Id: <20210711210016.2710100-8-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037262054100003 Introduce the 'Parallel Compare for Equal' opcodes: - PCEQB (Parallel Compare for Equal Byte) - PCEQH (Parallel Compare for Equal Halfword) - PCEQW (Parallel Compare for Equal Word) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210309145653.743937-14-f4bug@amsat.org> --- target/mips/tcg/tx79.decode | 3 ++ target/mips/tcg/tx79_translate.c | 66 ++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/target/mips/tcg/tx79.decode b/target/mips/tcg/tx79.decode index 98f21d33e3f..cfe721755ca 100644 --- a/target/mips/tcg/tx79.decode +++ b/target/mips/tcg/tx79.decode @@ -40,6 +40,9 @@ PEXTLB 011100 ..... ..... ..... 11010 001000 @= rs_rt_rd =20 # MMI1 =20 +PCEQW 011100 ..... ..... ..... 00010 101000 @rs_rt_rd +PCEQH 011100 ..... ..... ..... 00110 101000 @rs_rt_rd +PCEQB 011100 ..... ..... ..... 01010 101000 @rs_rt_rd PEXTUW 011100 ..... ..... ..... 10010 101000 @rs_rt_rd =20 # MMI2 diff --git a/target/mips/tcg/tx79_translate.c b/target/mips/tcg/tx79_transl= ate.c index c4656a4c21d..8dd510c2719 100644 --- a/target/mips/tcg/tx79_translate.c +++ b/target/mips/tcg/tx79_translate.c @@ -237,6 +237,72 @@ static bool trans_PNOR(DisasContext *ctx, arg_rtype *a) * PCEQW rd, rs, rt Parallel Compare for Equal Word */ =20 +static bool trans_parallel_compare(DisasContext *ctx, arg_rtype *a, + TCGCond cond, unsigned wlen) +{ + TCGv_i64 c0, c1, ax, bx, t0, t1, t2; + + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + + c0 =3D tcg_const_tl(0); + c1 =3D tcg_const_tl(0xffffffff); + ax =3D tcg_temp_new_i64(); + bx =3D tcg_temp_new_i64(); + t0 =3D tcg_temp_new_i64(); + t1 =3D tcg_temp_new_i64(); + t2 =3D tcg_temp_new_i64(); + + /* Lower half */ + gen_load_gpr(ax, a->rs); + gen_load_gpr(bx, a->rt); + for (int i =3D 0; i < (64 / wlen); i++) { + tcg_gen_sextract_i64(t0, ax, wlen * i, wlen); + tcg_gen_sextract_i64(t1, bx, wlen * i, wlen); + tcg_gen_movcond_i64(cond, t2, t1, t0, c1, c0); + tcg_gen_deposit_i64(cpu_gpr[a->rd], cpu_gpr[a->rd], t2, wlen * i, = wlen); + } + /* Upper half */ + gen_load_gpr_hi(ax, a->rs); + gen_load_gpr_hi(bx, a->rt); + for (int i =3D 0; i < (64 / wlen); i++) { + tcg_gen_sextract_i64(t0, ax, wlen * i, wlen); + tcg_gen_sextract_i64(t1, bx, wlen * i, wlen); + tcg_gen_movcond_i64(cond, t2, t1, t0, c1, c0); + tcg_gen_deposit_i64(cpu_gpr_hi[a->rd], cpu_gpr_hi[a->rd], t2, wlen= * i, wlen); + } + + tcg_temp_free(t2); + tcg_temp_free(t1); + tcg_temp_free(t0); + tcg_temp_free(bx); + tcg_temp_free(ax); + tcg_temp_free(c1); + tcg_temp_free(c0); + + return true; +} + +/* Parallel Compare for Equal Byte */ +static bool trans_PCEQB(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_compare(ctx, a, TCG_COND_EQ, 8); +} + +/* Parallel Compare for Equal Halfword */ +static bool trans_PCEQH(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_compare(ctx, a, TCG_COND_EQ, 16); +} + +/* Parallel Compare for Equal Word */ +static bool trans_PCEQW(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_compare(ctx, a, TCG_COND_EQ, 32); +} + /* * LZC (1 instruction) * ------------------- --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.45 as permitted sender) client-ip=209.85.128.45; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f45.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.45 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037266; cv=none; d=zohomail.com; s=zohoarc; b=CqzjUwoRFHewPK4pdcQerrwjWNLFpqawnqeJNGs5iPvgKmk/ZJu2YLZBhZWkbZEllONScxbdo7hzoQ7bKohqGyIT5VI7Nr9LFjWLFZI1ycqQsES2HGeI7/rHRxE4/oKW45xfxCFIQYRF2HOfiZoe2s9cj+h8d1BPbzcNElfbe4E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037266; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Efwfkq2SFl4zpYmlFU6CVRGGkXV2ciWxkgqaBGYsCY0=; b=ZFPF3FKw1jwKRHrDxsoUzMjtBZaluu8kPZKcy4US7w5OnBB4bpp+uIfYyC4xeV/F27EYR6YxqhBkiCwC9QfaaeZq+BrFsx5XThtnrjnreFgm0IF5nxuhXK2x2CeYu4zPH89gDHNSTy1aI4deYRP2RshHzgGMNxAafPGJqMaBqFc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.45 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) by mx.zohomail.com with SMTPS id 1626037266390351.2456770919157; Sun, 11 Jul 2021 14:01:06 -0700 (PDT) Received: by mail-wm1-f45.google.com with SMTP id h18-20020a05600c3512b029020e4ceb9588so12917652wmq.5 for ; Sun, 11 Jul 2021 14:01:05 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id f130sm7957156wmf.23.2021.07.11.14.01.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:01:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Efwfkq2SFl4zpYmlFU6CVRGGkXV2ciWxkgqaBGYsCY0=; b=netOxa/youFBqbkxas14rqSVjcWe7onidCALprMrwxV79usZrLqvuQYRDyLxpsstlL nSFh/pxl5Z1uqDuG03IbLffjSK7cg4XCYYlDt0YiXphUgniW6IyP8ZnAJeYPBMMeU7ri kwO7S8/jqkyuENPhG8YAeTxb+eaIBbX3YuNfVi7AFpLotNs1MMOpMJV88xgqGj+5lpGy jlX0qzxr91u+hGma3sLbz5gw46boL8CipGK4POgEfu036wlQdNHz2v/ePlIdlF/ghEgc 0hnw0p0guxYEXleADM4hrkVU9SQI6RSP1SXc3ES+v36jNThY9V6NsWpq7K6lsaFHEHdl XMBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=Efwfkq2SFl4zpYmlFU6CVRGGkXV2ciWxkgqaBGYsCY0=; b=G4+Vc0SARatj+mSovml4/T8LnHkqm/bRVMqMYDD4G58vFkDH7F8VV8kXhaYVfkrVEE eLG6yWr0Xs7F6z21mEyFXsIf+NKCCu65jexijhMVkndvknDU0y5O8L2QVSoh+cMnnMpn 1X20oEbKrfPjwxgHLjriLWEAXwJDhyp3h38DiKbsJ0uuDO8uPb3ZTJW3RJk9DCgPbwp7 lSUki4Uc81RmyNtEpmqIr/se/gcUqEMHO81WYs3/bHtjacDg3v9j7dS5ICPimBtuRdjF Skwx4VBfoOXBfITiOffQwqKuhkd9GZpNW+rXz6vnxzpvq0WwA2sW8G33x+9+UpaPCtbl CQ6Q== X-Gm-Message-State: AOAM531G7TqCfg0PQxTmFZM1uRVfj2jrtjTMVf3AoGo3hAP9h97S8m3c K07Pl1oC6YkMq1X2NbFEjic= X-Google-Smtp-Source: ABdhPJz5JT4Bodz0TINSd4GiFsT1ZOLrTVeDRJkTXiY50KtvHNFKEN5R8MZLkp3YIecIdrDiAbcGug== X-Received: by 2002:a05:600c:2dd0:: with SMTP id e16mr12856742wmh.85.1626037264659; Sun, 11 Jul 2021 14:01:04 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson Subject: [PULL 08/19] target/mips/tx79: Introduce PCGT* (Parallel Compare for Greater Than) Date: Sun, 11 Jul 2021 23:00:05 +0200 Message-Id: <20210711210016.2710100-9-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037268006100001 Introduce the 'Parallel Compare for Greater Than' opcodes: - PCGTB (Parallel Compare for Greater Than Byte) - PCGTH (Parallel Compare for Greater Than Halfword) - PCGTW (Parallel Compare for Greater Than Word) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210309145653.743937-15-f4bug@amsat.org> --- target/mips/tcg/tx79.decode | 3 +++ target/mips/tcg/tx79_translate.c | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/target/mips/tcg/tx79.decode b/target/mips/tcg/tx79.decode index cfe721755ca..63fbe9694bb 100644 --- a/target/mips/tcg/tx79.decode +++ b/target/mips/tcg/tx79.decode @@ -32,8 +32,11 @@ MTLO1 011100 ..... 0000000000 00000 010011 = @rs # MMI0 =20 PSUBW 011100 ..... ..... ..... 00001 001000 @rs_rt_rd +PCGTW 011100 ..... ..... ..... 00010 001000 @rs_rt_rd PSUBH 011100 ..... ..... ..... 00101 001000 @rs_rt_rd +PCGTH 011100 ..... ..... ..... 00110 001000 @rs_rt_rd PSUBB 011100 ..... ..... ..... 01001 001000 @rs_rt_rd +PCGTB 011100 ..... ..... ..... 01010 001000 @rs_rt_rd PEXTLW 011100 ..... ..... ..... 10010 001000 @rs_rt_rd PEXTLH 011100 ..... ..... ..... 10110 001000 @rs_rt_rd PEXTLB 011100 ..... ..... ..... 11010 001000 @rs_rt_rd diff --git a/target/mips/tcg/tx79_translate.c b/target/mips/tcg/tx79_transl= ate.c index 8dd510c2719..f0e3d8c0b66 100644 --- a/target/mips/tcg/tx79_translate.c +++ b/target/mips/tcg/tx79_translate.c @@ -285,18 +285,36 @@ static bool trans_parallel_compare(DisasContext *ctx,= arg_rtype *a, return true; } =20 +/* Parallel Compare for Greater Than Byte */ +static bool trans_PCGTB(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_compare(ctx, a, TCG_COND_GE, 8); +} + /* Parallel Compare for Equal Byte */ static bool trans_PCEQB(DisasContext *ctx, arg_rtype *a) { return trans_parallel_compare(ctx, a, TCG_COND_EQ, 8); } =20 +/* Parallel Compare for Greater Than Halfword */ +static bool trans_PCGTH(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_compare(ctx, a, TCG_COND_GE, 16); +} + /* Parallel Compare for Equal Halfword */ static bool trans_PCEQH(DisasContext *ctx, arg_rtype *a) { return trans_parallel_compare(ctx, a, TCG_COND_EQ, 16); } =20 +/* Parallel Compare for Greater Than Word */ +static bool trans_PCGTW(DisasContext *ctx, arg_rtype *a) +{ + return trans_parallel_compare(ctx, a, TCG_COND_GE, 32); +} + /* Parallel Compare for Equal Word */ static bool trans_PCEQW(DisasContext *ctx, arg_rtype *a) { --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.43 as permitted sender) client-ip=209.85.221.43; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f43.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037271; cv=none; d=zohomail.com; s=zohoarc; b=fEWmZxzaGnO1A/Lw+5iWuntueaQ3cyo3/0C3WQECAGtKhyKB6mWtmnbSKC8k6DVvY7y7h69x6WOMpxEMPXScLhM9pnzUyMQlIIp/nyIvHhzkn+taPmbUvphkY+W1kq6ku4bRcHTYP3gk53KPAi8l935Wzvc0MWwK85J44bv1x1Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037271; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=tHcqs60mfxo/e3jX7K3pLTYrZwZ3U9mqtq1fq2E7FmU=; b=icYSQ7FR2v4b6jpRlYs8RSsiFN1xXuaL4Qh63MYVIZA9lv/hK7TvsW2j0CvFXFJjM9oFkzGBthbDgDFDA815SC5RK80KD4rI7D8H1p55blDx6OKv6JJnFiVEuobJWJf92uRI/krTCypQTfkTeKCzTqiLFcG52f+Dl0NoyYWdaQQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) by mx.zohomail.com with SMTPS id 1626037271600269.6188836091321; Sun, 11 Jul 2021 14:01:11 -0700 (PDT) Received: by mail-wr1-f43.google.com with SMTP id r11so16822357wro.9 for ; Sun, 11 Jul 2021 14:01:11 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id f1sm11819055wri.74.2021.07.11.14.01.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:01:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tHcqs60mfxo/e3jX7K3pLTYrZwZ3U9mqtq1fq2E7FmU=; b=DJlM6GK3XS4YRn6llladplsOp4fGPoWxJKcNwHbwlXcic78iRs2bI2HrIziWaRbOPW nVq58dJPsBlbx5eV5g1Exmo5J07WaM2nxlX1aJHlXTIm88osLZdwCxWS4MNmKUfKFxtq oah4aVxhvpmWvIrksWWK24F96tsuBG6TeXAoUd626gsw0h2Hmo7yH3smrcSAuFctoo/k sFKQVsThAg7iy84Dtx9/oTa92dvjxbK0xbM23PD+recpALDdBSVRwiX2uWyBNzhjywwO W6CJBXi/KTAhnFMcGaw/3G7g09e85V5V1Yzb+l6D4dFhgh2jREhJv3/fnZOlfO/jC/0L Ei+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=tHcqs60mfxo/e3jX7K3pLTYrZwZ3U9mqtq1fq2E7FmU=; b=a8WNt694j3hvKfAzKlHiz9qyAmKt5P+gmEQ08aLaM3vmCxQ8cvgjV0dRJ2+HDqPwON iRooOylPbewC9hCs/ABhuQGB3bcit6xrSLkH/6JXIeXhwb61eFaXXPz3BMn+K9WSEekA clGsE08kqPzV7Xxk6JIxHQ+DOX6JfREqt4GwRIIN9dyQcZwgPItkmUBa2XK0DOnBDNDz MxG4j8WJg++MD8ZLFBMTi32ItOQb62S+Bg8prbYvht+NJXC7Gt/LtVa486tUYBLgZCkD H8+8DklwQmbTtAqQ9tzJwu0uNGejtBxd0Lt7R/CbufHMwwy5fvCJmMh4AoHWqccSyniC RzmA== X-Gm-Message-State: AOAM530UZFFk4WHmu7enBWLDX726iMBnspIqHUTb8gTlEIoRQAhJmNPu HfGTBgfiT8WYK2oqA1KkztwCafAe+YB6XUXT X-Google-Smtp-Source: ABdhPJxr4B+iP59QLojWnXEjJTvXqhLHwSKxJrDlFPYIUNo0pf62S1ppYd6XALNGo+9x9YOjh5+FLw== X-Received: by 2002:adf:90c6:: with SMTP id i64mr55417248wri.168.1626037269838; Sun, 11 Jul 2021 14:01:09 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson Subject: [PULL 09/19] target/mips/tx79: Introduce PPACW opcode (Parallel Pack to Word) Date: Sun, 11 Jul 2021 23:00:06 +0200 Message-Id: <20210711210016.2710100-10-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037272293100001 Introduce the PPACW opcode (Parallel Pack to Word). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-22-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/tcg/tx79.decode | 1 + target/mips/tcg/tx79_translate.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/target/mips/tcg/tx79.decode b/target/mips/tcg/tx79.decode index 63fbe9694bb..653910371d2 100644 --- a/target/mips/tcg/tx79.decode +++ b/target/mips/tcg/tx79.decode @@ -38,6 +38,7 @@ PCGTH 011100 ..... ..... ..... 00110 001000 @= rs_rt_rd PSUBB 011100 ..... ..... ..... 01001 001000 @rs_rt_rd PCGTB 011100 ..... ..... ..... 01010 001000 @rs_rt_rd PEXTLW 011100 ..... ..... ..... 10010 001000 @rs_rt_rd +PPACW 011100 ..... ..... ..... 10011 001000 @rs_rt_rd PEXTLH 011100 ..... ..... ..... 10110 001000 @rs_rt_rd PEXTLB 011100 ..... ..... ..... 11010 001000 @rs_rt_rd =20 diff --git a/target/mips/tcg/tx79_translate.c b/target/mips/tcg/tx79_transl= ate.c index f0e3d8c0b66..90c33d26a9f 100644 --- a/target/mips/tcg/tx79_translate.c +++ b/target/mips/tcg/tx79_translate.c @@ -374,6 +374,36 @@ static bool trans_PCEQW(DisasContext *ctx, arg_rtype *= a) * PEXTLW rd, rs, rt Parallel Extend Lower from Word */ =20 +/* Parallel Pack to Word */ +static bool trans_PPACW(DisasContext *ctx, arg_rtype *a) +{ + TCGv_i64 a0, b0, t0; + + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + + a0 =3D tcg_temp_new_i64(); + b0 =3D tcg_temp_new_i64(); + t0 =3D tcg_temp_new_i64(); + + gen_load_gpr(a0, a->rs); + gen_load_gpr(b0, a->rt); + + gen_load_gpr_hi(t0, a->rt); /* b1 */ + tcg_gen_deposit_i64(cpu_gpr[a->rd], b0, t0, 32, 32); + + gen_load_gpr_hi(t0, a->rs); /* a1 */ + tcg_gen_deposit_i64(cpu_gpr_hi[a->rd], a0, t0, 32, 32); + + tcg_temp_free(t0); + tcg_temp_free(b0); + tcg_temp_free(a0); + + return true; +} + static void gen_pextw(TCGv_i64 dl, TCGv_i64 dh, TCGv_i64 a, TCGv_i64 b) { tcg_gen_deposit_i64(dl, b, a, 32, 32); --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) client-ip=209.85.221.47; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f47.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037276; cv=none; d=zohomail.com; s=zohoarc; b=l7x7pbZNMK7q/Wxnd3APyNe7/CPTyweoB/0Q8CHz4WJpUiuKsDEUZ50pPmoM/0+v1IcL/1+yzUJVGMaLSGK93dYBpXGW9MBsY+rKRbJ8yyHw72E6La4kyxX1Z7AGdWDzwtWSicbvDadjDikjVSY7PLAFOqtjpPA4QAJ70iLAnF0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037276; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=LPkKd/bGwI5hB12Pdrnj0cRDWsw/8wL9DWSbjxiM6ac=; b=L9UmuzXiSq6ELNPvE/S4m7jKEeeN0ks96rrfJVginnd93WSF8QYz/hptRPPdy8HkTofy7ujFoamdTHYNoQRlWveNovbZSNkKWt6CkWTw40NcB9Dz98DG4PSpAC0Bs3KPQNZgdXpfeECPO/v68IA37GEjOiqwON9QKYoQgiXH4Hg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) by mx.zohomail.com with SMTPS id 1626037276597628.6828147359379; Sun, 11 Jul 2021 14:01:16 -0700 (PDT) Received: by mail-wr1-f47.google.com with SMTP id a13so22057241wrf.10 for ; Sun, 11 Jul 2021 14:01:16 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id l22sm3697964wmp.41.2021.07.11.14.01.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:01:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=LPkKd/bGwI5hB12Pdrnj0cRDWsw/8wL9DWSbjxiM6ac=; b=Se6ngAvCvvrDp5ImtUKRlrr3Jg+oun2i9urIle1hifLndUhcAB1OOrx/rKTgk2pJuO RwVPAD/fNeA7CHCnOFvsg4TvCTHLeUwFm107mfryZT2dCwajh5pBfSMnKpqLyt07j8bZ uVDm0UZektzxUBeafclZ62TjOq4DdlnaZMz6gzHvQaXhWTGkokCmC5o+xrmxipKRjcqF wKf6T9Qp3KQofY9JtUbAEvwnRxU0QNmuy41zLt9pmZQQFx5zTmmkQBSG3+tmCTr0cdh+ d9aMQlP2EBIVyupEfp5wPmKxMIX5UsRpQm/a39onC55otCNUf93oLa4ACZ+AlXWNvBMt 1diQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=LPkKd/bGwI5hB12Pdrnj0cRDWsw/8wL9DWSbjxiM6ac=; b=Ysif1xejt9rH6lURjCqL7I/EFJCva7EOsjHjY95phouYrrUp33jWegd78FEPzPQxqG 2q6UGNDv6fTA+/uEv99A0hPKAwOSEuF9tlJuqOMYQ6aolWkk0cmC+7Smpd+OcmnZtbjD aYHlFcXVQFMxgilkuLWUGnajUd/IrTQWQa/1zh5gn36WguTIy/Rq+vKZgZj/x8XJ5d6Z 0WzkUFm3R4MNJ3lABic8XAUpZk+Uc0kwKi4qIViaKjYKuTdh3N5GBzL060C/EACqKbYq 2xDIoOHOoY0fjHhXTXq3vmsdgGjxMBUWPLWo7+lgef1Ne8bJ37/GW7GPR3324FWVqNYL u6Yw== X-Gm-Message-State: AOAM531/0OdgZGqVALJIdkL8ztzCI7wV/bIyy/0V5g88uXNjDrwIdsgV KRY9TSFhiuDlRRc47TdzOSc= X-Google-Smtp-Source: ABdhPJyT8WWwGGfKrkDaeOoRJJ7XxDgXPhdvuEhJ3xTNJvZ1DeiU9uKVaYuvxL8ruSt0W4moU5zD7g== X-Received: by 2002:a5d:4a4c:: with SMTP id v12mr28580227wrs.256.1626037274845; Sun, 11 Jul 2021 14:01:14 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson Subject: [PULL 10/19] target/mips/tx79: Introduce PROT3W opcode (Parallel Rotate 3 Words) Date: Sun, 11 Jul 2021 23:00:07 +0200 Message-Id: <20210711210016.2710100-11-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037278683100001 Introduce the PROT3W opcode (Parallel Rotate 3 Words). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-25-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/tcg/tx79.decode | 1 + target/mips/tcg/tx79_translate.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/target/mips/tcg/tx79.decode b/target/mips/tcg/tx79.decode index 653910371d2..2f65dce2431 100644 --- a/target/mips/tcg/tx79.decode +++ b/target/mips/tcg/tx79.decode @@ -54,6 +54,7 @@ PEXTUW 011100 ..... ..... ..... 10010 101000 @= rs_rt_rd PCPYLD 011100 ..... ..... ..... 01110 001001 @rs_rt_rd PAND 011100 ..... ..... ..... 10010 001001 @rs_rt_rd PXOR 011100 ..... ..... ..... 10011 001001 @rs_rt_rd +PROT3W 011100 00000 ..... ..... 11111 001001 @rt_rd =20 # MMI3 =20 diff --git a/target/mips/tcg/tx79_translate.c b/target/mips/tcg/tx79_transl= ate.c index 90c33d26a9f..402790249f3 100644 --- a/target/mips/tcg/tx79_translate.c +++ b/target/mips/tcg/tx79_translate.c @@ -593,3 +593,31 @@ static bool trans_PCPYUD(DisasContext *s, arg_rtype *a) =20 return true; } + +/* Parallel Rotate 3 Words Left */ +static bool trans_PROT3W(DisasContext *ctx, arg_rtype *a) +{ + TCGv_i64 ax; + + if (a->rd =3D=3D 0) { + /* nop */ + return true; + } + if (a->rt =3D=3D 0) { + tcg_gen_movi_i64(cpu_gpr[a->rd], 0); + tcg_gen_movi_i64(cpu_gpr_hi[a->rd], 0); + return true; + } + + ax =3D tcg_temp_new_i64(); + + tcg_gen_mov_i64(ax, cpu_gpr_hi[a->rt]); + tcg_gen_deposit_i64(cpu_gpr_hi[a->rd], ax, cpu_gpr[a->rt], 0, 32); + + tcg_gen_deposit_i64(cpu_gpr[a->rd], cpu_gpr[a->rt], ax, 0, 32); + tcg_gen_rotri_i64(cpu_gpr[a->rd], cpu_gpr[a->rd], 32); + + tcg_temp_free(ax); + + return true; +} --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.48 as permitted sender) client-ip=209.85.128.48; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f48.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.48 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037281; cv=none; d=zohomail.com; s=zohoarc; b=YVfH1OeT2fPsShyN1Gj+ZoH8ohTlMSsh/I3MyuCb2OPBbFL/dv6qOq3jV95eMLiOg0TTfR9m8ZhGyrPJBJJ5vQyeIXmFmhtIZ4VRDncHZZWC+HL8kY0E6pEbSMuLqRCFFbYCwAfK+QqFECqixJwoXsPT73lhiHDkNP0GNNAuYjA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037281; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ioXSilflQ9D/7iC6aQQSA4Z9B5BUAvIuRmyKh4puuJM=; b=htQkPx6uE0bvU2YJtvzPTKcuhldoVTYY4Qsxt5gu+RzVEAXIIhepKF8vNrqWHUB2DyRv/OMJm2IBlOAp4Tt5J+ZBJ2XYJ/RlUh76UHUO24bQE+FHMc1xniA9DjqfA8we55bo9NzWHamLULUbqDOmixJnXAkpHH9iYoISajdcaqQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.48 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) by mx.zohomail.com with SMTPS id 162603728150256.61038366164928; Sun, 11 Jul 2021 14:01:21 -0700 (PDT) Received: by mail-wm1-f48.google.com with SMTP id g12so2129328wme.2 for ; Sun, 11 Jul 2021 14:01:20 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id l16sm18868933wmj.47.2021.07.11.14.01.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:01:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ioXSilflQ9D/7iC6aQQSA4Z9B5BUAvIuRmyKh4puuJM=; b=oSTnvDnhxqUIip049n/7PvJnoMGuGju5oL3f4sqqWNjDB/ZzWE9etBDq5YslZogBtV Y71HOVNpEtpyh7arIxbPzleQzYvz2qWoGIrVvaRsyUOmJ2Bb5poySx2uAfSFL0EdtaQf 6KLJ4eqEEnsjajQ2wtCogXYMn4dhizSdIBJs4i6IbJdgBP8RKIdhQwTNxO2qCRcsgHeB XMCgsSVxI2gu+RBiopz7uO7HOw4S8sxkSpSP435XAKFBK0WHl+ZbDtiUvrYX1PaxOuGm Z8HidoVLTaFpjIqQNtzF24IEe/ZGYOm/nCW3Qlj40cRWfdTJ9ktGvMqGBGkSte5MQ36p cURQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=ioXSilflQ9D/7iC6aQQSA4Z9B5BUAvIuRmyKh4puuJM=; b=DerikLhsqss31hsB/rKKldFJjjeh1hAR8cICLv/tUyKENqx6yjlZDAt6NycTJsboMf f5zdGnUcSnttI1oBNfaltz2Q4oj37Px2iI6qCM7NcFSjLOIAR79JcYGC1MTnY4XzN1uI wD1DO+ZYUUv+RzsjScV+eev1NM9G7B0sXQkRrVfi7+9wI45xOR1h4U7WexQfKekOkn+2 xxT9fp+bGXWhQ2IWVt3VlWq3IAAVS6lJE+onwXk14C5BmS1VVm8jVFjIe1qICQgMUdim HTvaL6wq2rSTMnzFZSc/W/U6VAvXRScRafz6Q42J45QSwR43lD5fWt8X/5wmIPlbhyGe 2cvw== X-Gm-Message-State: AOAM532LsObNVNp2KBzz7+veGlqdBKNHPI5CHUepsy/T6hfIT3ypwdRu kAC5nGhUQ9rdStyweHSFXbQ= X-Google-Smtp-Source: ABdhPJwZfgr87frmIRPdRX8Y+h9zV3mP4awbsewqYI9C7ao7cXTzSkubX1acK9T65xZIaXqAnsHAbw== X-Received: by 2002:a05:600c:2189:: with SMTP id e9mr10563064wme.35.1626037279696; Sun, 11 Jul 2021 14:01:19 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson Subject: [PULL 11/19] target/mips/tx79: Introduce LQ opcode (Load Quadword) Date: Sun, 11 Jul 2021 23:00:08 +0200 Message-Id: <20210711210016.2710100-12-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037282867100001 Introduce the LQ opcode (Load Quadword) and remove unreachable code. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-26-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/tcg/tx79.decode | 8 ++++++++ target/mips/tcg/translate.c | 16 ++------------- target/mips/tcg/tx79_translate.c | 35 ++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 14 deletions(-) diff --git a/target/mips/tcg/tx79.decode b/target/mips/tcg/tx79.decode index 2f65dce2431..0af5c6d0ed1 100644 --- a/target/mips/tcg/tx79.decode +++ b/target/mips/tcg/tx79.decode @@ -13,6 +13,8 @@ =20 &rtype rs rt rd sa =20 +&itype base rt offset + ########################################################################### # Named instruction formats. These are generally used to # reduce the amount of duplication between instruction patterns. @@ -22,6 +24,8 @@ @rs ...... rs:5 ..... .......... ...... &rtype rt=3D0 rd= =3D0 sa=3D0 @rd ...... .......... rd:5 ..... ...... &rtype rs=3D0 rt= =3D0 sa=3D0 =20 +@ldst ...... base:5 rt:5 offset:16 &itype + ########################################################################### =20 MFHI1 011100 0000000000 ..... 00000 010000 @rd @@ -62,3 +66,7 @@ PCPYUD 011100 ..... ..... ..... 01110 101001 @= rs_rt_rd POR 011100 ..... ..... ..... 10010 101001 @rs_rt_rd PNOR 011100 ..... ..... ..... 10011 101001 @rs_rt_rd PCPYH 011100 00000 ..... ..... 11011 101001 @rt_rd + +# SPECIAL + +LQ 011110 ..... ..... ................ @ldst diff --git a/target/mips/tcg/translate.c b/target/mips/tcg/translate.c index ae33c75f088..82a7f2bcc63 100644 --- a/target/mips/tcg/translate.c +++ b/target/mips/tcg/translate.c @@ -1180,7 +1180,6 @@ enum { =20 enum { MMI_OPC_CLASS_MMI =3D 0x1C << 26, /* Same as OPC_SPECIAL2 */ - MMI_OPC_LQ =3D 0x1E << 26, /* Same as OPC_MSA */ MMI_OPC_SQ =3D 0x1F << 26, /* Same as OPC_SPECIAL3 */ }; =20 @@ -15179,11 +15178,6 @@ static void decode_mmi(CPUMIPSState *env, DisasCon= text *ctx) } } =20 -static void gen_mmi_lq(CPUMIPSState *env, DisasContext *ctx) -{ - gen_reserved_instruction(ctx); /* TODO: MMI_OPC_LQ */ -} - static void gen_mmi_sq(DisasContext *ctx, int base, int rt, int offset) { gen_reserved_instruction(ctx); /* TODO: MMI_OPC_SQ */ @@ -16082,14 +16076,8 @@ static bool decode_opc_legacy(CPUMIPSState *env, D= isasContext *ctx) gen_compute_branch(ctx, op, 4, rs, rt, offset, 4); } break; - case OPC_MDMX: /* MMI_OPC_LQ */ - if (ctx->insn_flags & INSN_R5900) { -#if defined(TARGET_MIPS64) - gen_mmi_lq(env, ctx); -#endif - } else { - /* MDMX: Not implemented. */ - } + case OPC_MDMX: + /* MDMX: Not implemented. */ break; case OPC_PCREL: check_insn(ctx, ISA_MIPS_R6); diff --git a/target/mips/tcg/tx79_translate.c b/target/mips/tcg/tx79_transl= ate.c index 402790249f3..d9193b4d86e 100644 --- a/target/mips/tcg/tx79_translate.c +++ b/target/mips/tcg/tx79_translate.c @@ -334,6 +334,41 @@ static bool trans_PCEQW(DisasContext *ctx, arg_rtype *= a) * SQ rt, offset(base) Store Quadword */ =20 +static bool trans_LQ(DisasContext *ctx, arg_itype *a) +{ + TCGv_i64 t0; + TCGv addr; + + if (a->rt =3D=3D 0) { + /* nop */ + return true; + } + + t0 =3D tcg_temp_new_i64(); + addr =3D tcg_temp_new(); + + gen_base_offset_addr(ctx, addr, a->base, a->offset); + /* + * Clear least-significant four bits of the effective + * address, effectively creating an aligned address. + */ + tcg_gen_andi_tl(addr, addr, ~0xf); + + /* Lower half */ + tcg_gen_qemu_ld_i64(t0, addr, ctx->mem_idx, MO_TEQ); + gen_store_gpr(t0, a->rt); + + /* Upper half */ + tcg_gen_addi_i64(addr, addr, 8); + tcg_gen_qemu_ld_i64(t0, addr, ctx->mem_idx, MO_TEQ); + gen_store_gpr_hi(t0, a->rt); + + tcg_temp_free(t0); + tcg_temp_free(addr); + + return true; +} + /* * Multiply and Divide (19 instructions) * ------------------------------------- --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.43 as permitted sender) client-ip=209.85.128.43; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f43.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037287; cv=none; d=zohomail.com; s=zohoarc; b=LIBYsTnf87evd2fbNtCVMIE9KH/0kzZeblsL4HOEIbhvWE7U8otWjn4LmdP7liJTwL+9+7myMmKTvnGCHXUhr1Q9BB2J5vQ2SlqIHN+0PODMPUS1VwedQJVgB/o+AfGaviw7uEYDn6aFNPh5Lv6/rlobxY3kBich9PDLxteexVA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037287; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Trkx+yVXbGbO/3qpNg9NqMMf32IKPJHWstTgFyfkCA4=; b=EGLDtHHS2oINaoeGZqYDU1m8nvtwvoGN3GDXrB2zUVKiV6hpWB9w0yjjDgqOw789s8I4+qWWy+97+wcdbfcBYPh3+NKVxId53dHlUF/0iBcVSEtIApKlpvRhJNuBqDYYLXXBF6NNpVjlAC+uwWP4RA31VkNfFlFUwltAOaPqg2o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by mx.zohomail.com with SMTPS id 1626037287747188.00481766531527; Sun, 11 Jul 2021 14:01:27 -0700 (PDT) Received: by mail-wm1-f43.google.com with SMTP id q18-20020a1ce9120000b02901f259f3a250so10011834wmc.2 for ; Sun, 11 Jul 2021 14:01:26 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id s6sm1736564wrt.45.2021.07.11.14.01.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:01:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Trkx+yVXbGbO/3qpNg9NqMMf32IKPJHWstTgFyfkCA4=; b=KMnIUKv56OsQiY76irBGOpPJjlwql7KWx5XXBHOBkrJOnSj2GLZIFDHXgkK+aIZ1ZR FokF4aSyphj0AuQwl2nRAAn2BMLfhoBpRb24Fh0JI+SFu/Kqwc4MVWzqX26cegrjrpqm SuudtHi09KpZ16fB9bO4QwW6xHYZxxB2CncZIMDzAoBMxTchdH9mvPL9tjyyZW75DgLw B+fmgOkMrKQC/Whoq1/tCWRmCSFPHR5ED+8Yiob6x9X2ecKzeqygp96AP7k6eDfEO/6U 1uhErVMznxK1k7pzYuaS1ty+RZJz3YMje1X7rzmnVQ8Ol/VeMfGQ/8Tcy3KhKufQkWmB jS2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=Trkx+yVXbGbO/3qpNg9NqMMf32IKPJHWstTgFyfkCA4=; b=GpDVx9H9mBjQMEdWYZGYlytbdx0Ixugw+yvoXH2s8neffdjG5k/+55zkIo2RiJ56sg A+Q8bTUwFEhD47dJzoEV3SNbSGsg7qkjmI4z07k+M4Fb1ILkQqmCxghDZCsy5OKslGR4 o4g2PsB0g5BgQr2nr5ho1IJE87CCQyTgTpHtxaHt7E9W3KmRQdnO/WaO4K6mH2QnJC4z so+/Ni70RS9/G2c+6tp55AItjPx+pfsuT4XlP8I8XXGEpVMs3fNwSjNlqGac1lL3VjhW RXcUafwXjJMHec2pzCrdv020jnL0YmNY11eSJiGm4yHmQJJG79llTRasW5b/1itFzb+P w9pw== X-Gm-Message-State: AOAM530A94WrajcnHgp+fsZovNW/B2j94kX2BeWDQZwfQbThFWTWZUvs abDRuMD3bqZQ4kyQMaBSRYQ= X-Google-Smtp-Source: ABdhPJzXNdHxK5s6kOlWoNXNGPZbx5tvC768K/YDKmXukLKdV1HQ508FVZ7pEcHoOLqi92nf0IgSRg== X-Received: by 2002:a1c:2182:: with SMTP id h124mr6614993wmh.44.1626037285375; Sun, 11 Jul 2021 14:01:25 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Henderson Subject: [PULL 12/19] target/mips/tx79: Introduce SQ opcode (Store Quadword) Date: Sun, 11 Jul 2021 23:00:09 +0200 Message-Id: <20210711210016.2710100-13-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037289274100001 Introduce the SQ opcode (Store Quadword). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20210214175912.732946-27-f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- target/mips/tcg/tx79.decode | 1 + target/mips/tcg/tx79_translate.c | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/target/mips/tcg/tx79.decode b/target/mips/tcg/tx79.decode index 0af5c6d0ed1..03a25a5096d 100644 --- a/target/mips/tcg/tx79.decode +++ b/target/mips/tcg/tx79.decode @@ -70,3 +70,4 @@ PCPYH 011100 00000 ..... ..... 11011 101001 @= rt_rd # SPECIAL =20 LQ 011110 ..... ..... ................ @ldst +SQ 011111 ..... ..... ................ @ldst diff --git a/target/mips/tcg/tx79_translate.c b/target/mips/tcg/tx79_transl= ate.c index d9193b4d86e..395d6afa1f1 100644 --- a/target/mips/tcg/tx79_translate.c +++ b/target/mips/tcg/tx79_translate.c @@ -369,6 +369,33 @@ static bool trans_LQ(DisasContext *ctx, arg_itype *a) return true; } =20 +static bool trans_SQ(DisasContext *ctx, arg_itype *a) +{ + TCGv_i64 t0 =3D tcg_temp_new_i64(); + TCGv addr =3D tcg_temp_new(); + + gen_base_offset_addr(ctx, addr, a->base, a->offset); + /* + * Clear least-significant four bits of the effective + * address, effectively creating an aligned address. + */ + tcg_gen_andi_tl(addr, addr, ~0xf); + + /* Lower half */ + gen_load_gpr(t0, a->rt); + tcg_gen_qemu_st_i64(t0, addr, ctx->mem_idx, MO_TEQ); + + /* Upper half */ + tcg_gen_addi_i64(addr, addr, 8); + gen_load_gpr_hi(t0, a->rt); + tcg_gen_qemu_st_i64(t0, addr, ctx->mem_idx, MO_TEQ); + + tcg_temp_free(addr); + tcg_temp_free(t0); + + return true; +} + /* * Multiply and Divide (19 instructions) * ------------------------------------- --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.48 as permitted sender) client-ip=209.85.221.48; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f48.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.48 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037292; cv=none; d=zohomail.com; s=zohoarc; b=XTj1ZNePR7nvsSoPg5eawZ9DfUN+28Evkeyf3XFtnXTGpEdaDpRiT3HFR2x1St3IRdFtNkHHHMhPhzid4TCWxxVYsff40hy3ZKo4G4LNAZMTFbp1O2HMG4JSIiT6szQn0CDcqoIbZ4FP5vVEHlnu7kKGRDb8iSO8Jt9WyzrNo7Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037292; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=d+7RhiNspFr8WZ3/u/l/wkKuuJwU+47lX6JtRyEtS3w=; b=HDnPnnfhUdNDvJwvN7L7txNIFwfQINvzuhPQXLmfvWGd9+1eln+Iwcz1cH0wMFzQIvIQXAdLcHzgNY1C+K0xj2btLvNCy/U6jarRmidpgluClYlWxPjpiXk3LEQ3/+D7s+JE3lUf7QVMVcifP9e1lNEX2q3bmBT7yeeAZKMr9oY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.48 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by mx.zohomail.com with SMTPS id 1626037292098400.86165155397623; Sun, 11 Jul 2021 14:01:32 -0700 (PDT) Received: by mail-wr1-f48.google.com with SMTP id p8so22089370wrr.1 for ; Sun, 11 Jul 2021 14:01:31 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id 12sm19111828wme.28.2021.07.11.14.01.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:01:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=d+7RhiNspFr8WZ3/u/l/wkKuuJwU+47lX6JtRyEtS3w=; b=hAfKykcoQfNJ9IUmqDiXDl1tQgM9pKtXg55tgGaRpBS/om3/6JXf4byuR7LTZLJtJh sCXypeQ5bj/xr8Xcb0Bs9rKB6VoXBTpFaMwepMt7MJccGueUX9PiWtKBV9pMF7YwogQu 4rkiUwclQ03MIUcyNQtdSUT6dND35KYcCIgijkJbEzhv3rh/pm9jg9iGqiJxH6T7NU3S ZfRKsjJn/ppBy4T6RKDfkOPzIW216q/nvXhU5F9wpycUH7bCoKEVaDa0wHeYmAdrYa5n KhSGHxNJ2NLrAZA8AuG3PGlTLz9CyNVJJ1us3us8X+WehpvpAWEUx/2r11hgNQL5kwW9 GjYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=d+7RhiNspFr8WZ3/u/l/wkKuuJwU+47lX6JtRyEtS3w=; b=F+aFu8B1oGxOANA7f6qiFTmLPgZGuGHxEPb+Vn+Zh9IEq9JqqWI/vRNYSJYv1DdUk/ XNOpFE9cwR3rENIFuEK4tCmDG9UXPQrIT1jEJ+cL572EMAkJfTKFI3KjZ8pRL+xaxEzK V1iD0oNmERbv3UoshYdcAergpAL04xTclnPOzle6xyO+qOt+UHZ48epRIquFMBu7eWpf 4U1e9n+888EdNpvVeBictBknRwDkfd7n0SeoFlMyPkj/xvBFv/2PgSgm9GyVxgWmKzNt WaK1Cw7wSXE8JXbACOtFpg0GSn1fpvyMGM9eGthmU3WiOfyQRC/8W5Ej7m0yDYoUtyze dM4A== X-Gm-Message-State: AOAM533OA40eoZxPBUwUCL62igpLcj14hlTE1vPJXbp1NiuYjuIrjsaJ K3KqnYiORL3MFIcacNnepGo= X-Google-Smtp-Source: ABdhPJx2dP0cMoFUYFupVhzIF/GmWApTY2PYiWyaER/uU13GD9QtR9JkkMulKOS3dh2VhNP6gCHFoQ== X-Received: by 2002:adf:8069:: with SMTP id 96mr10745150wrk.56.1626037290295; Sun, 11 Jul 2021 14:01:30 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Richard Zak , Thomas Huth Subject: [PULL 13/19] target/mips: Rewrite UHI errno_mips() using switch statement Date: Sun, 11 Jul 2021 23:00:10 +0200 Message-Id: <20210711210016.2710100-14-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037293440100001 Linking on Haiku OS fails: /boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../.= ./../../x86_64-unknown-haiku/bin/ld: error: libqemu-mips-softmmu.fa.p/target_mips_tcg_sysemu_mips-semi.c.o(.ro= data) is too large (0xffff405a bytes) /boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../.= ./../../x86_64-unknown-haiku/bin/ld: final link failed: memory exhausted collect2: error: ld returned 1 exit status This is because the host_to_mips_errno[] uses errno as index, for example: static const uint16_t host_to_mips_errno[] =3D { [ENAMETOOLONG] =3D 91, ... and Haiku defines [*] ENAMETOOLONG as: 12 /* Error baselines */ 13 #define B_GENERAL_ERROR_BASE INT_MIN .. 22 #define B_STORAGE_ERROR_BASE (B_GENERAL_ERROR_BASE + 0x6= 000) ... 106 #define B_NAME_TOO_LONG (B_STORAGE_ERROR_BASE + 4) ... 211 #define ENAMETOOLONG B_TO_POSIX_ERROR(B_NAME_TOO= _LONG) so the array ends up beeing indeed too big. Since POSIX errno can't be use as indexes on Haiku, rewrite errno_mips() using a switch statement. [*] https://github.com/haiku/haiku/blob/r1beta3/headers/os/support/Errors.h= #L130 Reported-by: Richard Zak Suggested-by: Thomas Huth Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Thomas Huth Message-Id: <20210706130723.1178961-1-f4bug@amsat.org> --- target/mips/tcg/sysemu/mips-semi.c | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/target/mips/tcg/sysemu/mips-semi.c b/target/mips/tcg/sysemu/mi= ps-semi.c index 77108b0b1a9..b4a383ae90c 100644 --- a/target/mips/tcg/sysemu/mips-semi.c +++ b/target/mips/tcg/sysemu/mips-semi.c @@ -74,25 +74,19 @@ enum UHIOpenFlags { UHIOpen_EXCL =3D 0x800 }; =20 -/* Errno values taken from asm-mips/errno.h */ -static const uint16_t host_to_mips_errno[] =3D { - [ENAMETOOLONG] =3D 78, +static int errno_mips(int host_errno) +{ + /* Errno values taken from asm-mips/errno.h */ + switch (host_errno) { + case 0: return 0; + case ENAMETOOLONG: return 78; #ifdef EOVERFLOW - [EOVERFLOW] =3D 79, + case EOVERFLOW: return 79; #endif #ifdef ELOOP - [ELOOP] =3D 90, + case ELOOP: return 90; #endif -}; - -static int errno_mips(int err) -{ - if (err < 0 || err >=3D ARRAY_SIZE(host_to_mips_errno)) { - return EINVAL; - } else if (host_to_mips_errno[err]) { - return host_to_mips_errno[err]; - } else { - return err; + default: return EINVAL; } } =20 --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.51 as permitted sender) client-ip=209.85.221.51; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f51.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037296; cv=none; d=zohomail.com; s=zohoarc; b=A9BN5NFHKQQd3+4VlEQIRRnysXoBUY0iQsab98bopQkJFPbPpTeDLHB8jC6HKGjpKnWVeKdWzGlf0789KJNvYKAA0gkKQp5crGxbNZmCoBZZu2ln7Tv7h+VGeruK565NQSBQS+osKyXV/agJEldJNESOdHwuckFiH5ep2wtB3+4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037296; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=xzjbO+5jo6pD19SRnGaYYtwqZATAxg4quF6D0X5U33M=; b=J5oUIYMnScv/wXlweXyr60OFGirEPKbpioDik7T3K2+3zZglMoDqpYEe2N1lGLEZFIdMAiZelR66uYRxuUb9NzLPGh2Ci0FWVPmbCdEfMuvsyAn6jxh7ejZfP+QWQZ3aeXDcdxkHMRygEf/g9mNwpu2ScM4ftiEm+y04Em8pSlg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) by mx.zohomail.com with SMTPS id 1626037296985474.67245766887856; Sun, 11 Jul 2021 14:01:36 -0700 (PDT) Received: by mail-wr1-f51.google.com with SMTP id v5so22077559wrt.3 for ; Sun, 11 Jul 2021 14:01:36 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id e6sm3005736wrg.18.2021.07.11.14.01.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:01:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=xzjbO+5jo6pD19SRnGaYYtwqZATAxg4quF6D0X5U33M=; b=d0xq0X5mbyLIPvVJ9GNNp4IYay2e/oEyqacBTO2skJgXXQSSASbcA+1PTSf6AmS65Z 49lDtZEkUP4t4lc7Z4X0mrkO+qJRctiEOyX6/8j09pcZHnX3wTGLMIDoChexAMe0KYJB AENQYoD2Uk3/ruBdJ224vcSIZcYHvAvKO/yytTZ71I6C4wK3qOALybDeE+P9cSu9vnwa IJp4VNnK8tMQfnfqcSXCIOt1aTrymYf0jAZowaoG99vU9eVVFYfGaM6VRWRNiT5oXed6 fzSd1NxzCosfJyz3shH3CO7GjmSZS8UkuOZPqm2QYkr5u1QhvEe+NGe6zjQZFUPYgGFm G3Uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=xzjbO+5jo6pD19SRnGaYYtwqZATAxg4quF6D0X5U33M=; b=KZSdnCvbV/H2p+pO9OtSXnpReCNBmQ6rN9su4BaCVdR1l08HW5p0uXQ8vKozVjtAyn CnMsfG51+NwzLUb4qXkFTmSIMIHxBC4KT6yAQpC3LmB+F8EGCRNngtxxMDYm83FZoJrV iQD2XHpOE4STL+GxqtV0JStKdo6KLJwY2ynF/QSXHvnlt48k3fU0VwKo2zOIMZJcbVA1 5AyWFbsdjBTbsDeduXtLzM0Ohv7IA1cruJAj65tX77A/EwDiSCLueJe5cOUGPJMg1UZy VgdLlMyHNpGEVCWtbCXhLawj0dYc09bQZY9SFXFtHWOXjoepJc6tXdUWXn0hnEXQChtU P9LQ== X-Gm-Message-State: AOAM532rA4Y9fJmRafQYdh4mJzkjrBKkNwn2B037f1K+y5q8KIq9Mn71 tYMbFs5NdA6muclWUKX9fcU= X-Google-Smtp-Source: ABdhPJwuDFuldvyM9w7IG2oBR82gCO+guYI48yH0WyvQP8t32AwWBv8M+9WlnCDe/3hH38jnWtB6og== X-Received: by 2002:a05:6000:1b02:: with SMTP id f2mr14327729wrz.315.1626037295233; Sun, 11 Jul 2021 14:01:35 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , Finn Thain , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 14/19] dp8393x: fix CAM descriptor entry index Date: Sun, 11 Jul 2021 23:00:11 +0200 Message-Id: <20210711210016.2710100-15-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037297884100001 From: Mark Cave-Ayland Currently when a LOAD CAM command is executed the entries are loaded into t= he CAM from memory in order which is incorrect. According to the datasheet the first entry in the CAM descriptor is the entry index which means that each descriptor may update any single entry in the CAM rather than the Nth entry. Decode the CAM entry index and use it store the descriptor in the appropria= te slot in the CAM. This fixes the issue where the MacOS toolbox loads a single CAM descriptor into the final slot in order to perform a loopback test which must succeed before the Ethernet port is enabled. Signed-off-by: Mark Cave-Ayland Tested-by: Finn Thain Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210625065401.30170-10-mark.cave-ayland@ilande.co.uk> Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/net/dp8393x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c index 252c0a26641..11810c9b600 100644 --- a/hw/net/dp8393x.c +++ b/hw/net/dp8393x.c @@ -270,7 +270,7 @@ static void dp8393x_update_irq(dp8393xState *s) static void dp8393x_do_load_cam(dp8393xState *s) { int width, size; - uint16_t index =3D 0; + uint16_t index; =20 width =3D (s->regs[SONIC_DCR] & SONIC_DCR_DW) ? 2 : 1; size =3D sizeof(uint16_t) * 4 * width; @@ -279,6 +279,7 @@ static void dp8393x_do_load_cam(dp8393xState *s) /* Fill current entry */ address_space_read(&s->as, dp8393x_cdp(s), MEMTXATTRS_UNSPECIFIED, s->data, size); + index =3D dp8393x_get(s, width, 0) & 0xf; s->cam[index][0] =3D dp8393x_get(s, width, 1) & 0xff; s->cam[index][1] =3D dp8393x_get(s, width, 1) >> 8; s->cam[index][2] =3D dp8393x_get(s, width, 2) & 0xff; @@ -291,7 +292,6 @@ static void dp8393x_do_load_cam(dp8393xState *s) /* Move to next entry */ s->regs[SONIC_CDC]--; s->regs[SONIC_CDP] +=3D size; - index++; } =20 /* Read CAM enable */ --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.54 as permitted sender) client-ip=209.85.221.54; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f54.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037301; cv=none; d=zohomail.com; s=zohoarc; b=NuR9bGm+aoJKCf+3QZFkki31P2qZUwMfPagbJesf7AxhomJwtPYSti6o0SxJ2ZTtxI1klQZOLRHcLRvSuk5tqSuCswm0rk4l+wp6bfBQylMNcC32ffL2FO9J0kjceX4dSdmsqEldhl8VBg339PGYVdPbDDKmzSV0I0kEayhX2Lg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037301; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ufOeAaz2SqyjCt5TYUAiTb6MTzHNseUPG7GdwxXaEHQ=; b=Gv3xoIoMMfOISoexs4G/NV6RS+XUFMo/q22qV11m4uCBKTbBg8QnVWzPsvElP+xCetZ+2UndQ1p7kjul8fw77YTeWLo3eknPxZzvv9NAODe9kgTGMixxjz8kPd+tNGD+XOaIsZnSYeW1rIV6bvngv+GeVz8cdYauMOIm+rN26RM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) by mx.zohomail.com with SMTPS id 16260373018227.04107490015781; Sun, 11 Jul 2021 14:01:41 -0700 (PDT) Received: by mail-wr1-f54.google.com with SMTP id r11so16824259wro.9 for ; Sun, 11 Jul 2021 14:01:41 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id n18sm1763321wrt.89.2021.07.11.14.01.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:01:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ufOeAaz2SqyjCt5TYUAiTb6MTzHNseUPG7GdwxXaEHQ=; b=jCc+Wf4wmfZiNHvQRU7I4bkPnu8HBrFoqN+k2aUn9A8vy2Caas/WGoWPqIyvlArWiD 8cDDMYYjEKtRhiPK89cn/PInFzgfSo3qsXog+isZF1MpU18wM0I05NNl/aN7tPn7G7Ep KT5qtgLqQCb+C9cjZlhcmXCW9bwivbBCZHr399tYyZ8D/9KYXjMtjv5UvTeXoIHyg3h2 Z1lIFv9EPBhd80C2cEZNe5KdgDaXf/giRJj8bNKU4lu6IEu0CYh+XKdlJlXmuZL48tA4 YN58fGuA1TR0M8GNDxbr/bUhMaXVljRKbJqpH/VC/Yxl15fodsVY2BLczirbwifXufUX jVaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=ufOeAaz2SqyjCt5TYUAiTb6MTzHNseUPG7GdwxXaEHQ=; b=GzGIJ+3oM//75CRvMF6lJpFEf/y8dp17XPN4rS6S48zbGPDabTqcOb0/TbtSD+uXPR EDopTgXCAgx9a3PVmH9Kc5KSetZCNRsHgVVd3L/FY22VYQJdQQrDiMKX1ZiZpSIHBiMS U1GAkR7jM0vNJvwd9lLtovyuHats1e5eyb4lsfKYwFo5tRzJiuY/TranXo67sC0FJ4zi tPTxMmPRG/hffSXUYzvzP5X4Q2Ou8hs7NvE3JYmLFIG5F1PeZ5hXDHx0bAy84YWJBdSr 7EzrOhSvJTtotPxe9WsE9/9SpnXJVSTDNMCkoiHqxS0bdekRSYS1KcMon/qDvuDFQ7mY tkDQ== X-Gm-Message-State: AOAM532nBdJGcH0nWYgx3hdF1kQAW52QNQo6aPVLjh9bYZXdb3k8+GBS kmIBk4Nyj46kmFPYiP9ZGwI= X-Google-Smtp-Source: ABdhPJykLlvg9iVC+r17E+KeynZm7MXU6rsaIce1SbNGgIVJrF2EmTLFv3YfxsYuEtaXCGE6AyuZew== X-Received: by 2002:a5d:4086:: with SMTP id o6mr27490882wrp.379.1626037300007; Sun, 11 Jul 2021 14:01:40 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Finn Thain Subject: [PULL 15/19] dp8393x: Replace address_space_rw(is_write=1) by address_space_write() Date: Sun, 11 Jul 2021 23:00:12 +0200 Message-Id: <20210711210016.2710100-16-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037303860100001 Replace address_space_rw(is_write=3D1) by address_space_write() and remove pointless cast. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Mark Cave-Ayland Tested-by: Finn Thain Message-Id: <20210710174954.2577195-2-f4bug@amsat.org> Tested-by: Mark Cave-Ayland --- hw/net/dp8393x.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c index 11810c9b600..9118364aa33 100644 --- a/hw/net/dp8393x.c +++ b/hw/net/dp8393x.c @@ -816,8 +816,8 @@ static ssize_t dp8393x_receive(NetClientState *nc, cons= t uint8_t * buf, size =3D sizeof(uint16_t) * width; address =3D dp8393x_crda(s) + sizeof(uint16_t) * 6 * width; dp8393x_put(s, width, 0, 0); - address_space_rw(&s->as, address, MEMTXATTRS_UNSPECIFIED, - (uint8_t *)s->data, size, 1); + address_space_write(&s->as, address, MEMTXATTRS_UNSPECIFIED, + s->data, size); =20 /* Move to next descriptor */ s->regs[SONIC_CRDA] =3D s->regs[SONIC_LLFA]; @@ -846,8 +846,8 @@ static ssize_t dp8393x_receive(NetClientState *nc, cons= t uint8_t * buf, /* Pad short packets to keep pointers aligned */ if (rx_len < padded_len) { size =3D padded_len - rx_len; - address_space_rw(&s->as, address, MEMTXATTRS_UNSPECIFIED, - (uint8_t *)"\xFF\xFF\xFF", size, 1); + address_space_write(&s->as, address, MEMTXATTRS_UNSPECIFIED, + "\xFF\xFF\xFF", size); address +=3D size; } =20 --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.42 as permitted sender) client-ip=209.85.221.42; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f42.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.42 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037306; cv=none; d=zohomail.com; s=zohoarc; b=Q5v1QoFOWEjxdOwM9RsarpAzQ8HlHAtSUxCxW4rafV5on56jFzB8LjzYfK+7GgoASGnqFJWBpx25g+ZvlvWErgpEntT3l0RgdcY/CyNX7ZGQuTSqqhSrX2b+JEamyg9HbkiC/hbs99VgGkl3lj35gMiTmu71Lzwk1xZZn61bJG0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037306; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=OmxKGUjs4sfYwEkxfNiJeYY6j02zoeqKGP4fymZlAv8=; b=hJuOn56JqS703EXcDN/0pul1W/9mCGqV8BUGnBxLWtSrAueS9SXMEw7Q7ZNHPlc0CpWtkfrA2Bg4/D3dBmRaujmOQvhzZLfbI9eGCZEQsTVOpoDXMbllr9e88prvVeBLmoxyE9/3PRBWB+Uh/aChA4h1Y1yXqY4gKYTwZIwGVBU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.42 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) by mx.zohomail.com with SMTPS id 1626037306514396.75667476068224; Sun, 11 Jul 2021 14:01:46 -0700 (PDT) Received: by mail-wr1-f42.google.com with SMTP id d12so21443212wre.13 for ; Sun, 11 Jul 2021 14:01:45 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id n12sm12575506wmq.5.2021.07.11.14.01.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:01:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OmxKGUjs4sfYwEkxfNiJeYY6j02zoeqKGP4fymZlAv8=; b=LV/LV5ws8pQWsRyae0dsgMEsXbuZaD1aLqvJKepZF5yq7SV5DFlfn7h6sAyxpCVsxQ m6D4yVdTnmjjV9eSkVlLWMFne0Kp+NmrSm8GYeKwhFt2WJp9pU0SzLLWt/v7PvsJW2oa sfgquBu/IOXEsr5gji+TBj5JjfffDnyLWXQGG3kOPei/aNFIKl0qdXfO+2SCoy8flzur sQktqur1eMjelt5ZiJoWy7NmfhrHCClvoxiYvHLea++WjSw4DT/9lUV9zHml1vgQm4Rx pEkE0cDYPHmbRO+b8qj6K0ZaOnxS4DW8ELAndj+EHH4m1QRieDXJV2L2VPWhyWRmE2VZ OvBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=OmxKGUjs4sfYwEkxfNiJeYY6j02zoeqKGP4fymZlAv8=; b=Cq8Dv/ON55LAVMTZ8p2f9rj/tLPUwjp3F7to8OHQoOCmHOrq9dPMixm7AnRdMskyQS vEH1XQUz99OU5c5o1vgdqm47TqJSuY+AiHDjCYoUgwiBShYoi3WOSIfk8+q8b+e+tZ9L YHqpRpvpkAyzIgQxjV5SrtjKP+3UVTmF9719qYDJPpPDyA/d/GmXy6lWu8xrCcDq7DJg sDhmTokEdh3wWeGxLB0Sst6mIsudNgBYQKMJhQSfwT0CFdqZyRgM2U+XA2jlpEyAbKWI tGpJUjkrRh9Ab7eSC4phQ+cAMu/Q3GcvbNYUvkn0UJ9BVTdzMtmZkDOcrwx2pGRKM1k5 NL3w== X-Gm-Message-State: AOAM532IaSu6PJIYEX6CwqH6s4wTH2lDwjtFEx1L8+EJa0NTC2ny8WVP mwnosNoDXdRCNspJR5JzL6E= X-Google-Smtp-Source: ABdhPJz4LL4iYQ0A8UE6cz/ptj47F6yI4ZBLPuliA5VJaJQTd8WThVXRKyPMifAugkxkQjd14vZ20Q== X-Received: by 2002:a05:6000:1b0c:: with SMTP id f12mr10640801wrz.225.1626037304827; Sun, 11 Jul 2021 14:01:44 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Finn Thain Subject: [PULL 16/19] dp8393x: Replace 0x40 magic value by SONIC_REG_COUNT definition Date: Sun, 11 Jul 2021 23:00:13 +0200 Message-Id: <20210711210016.2710100-17-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037308185100001 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Mark Cave-Ayland Tested-by: Finn Thain Message-Id: <20210710174954.2577195-3-f4bug@amsat.org> Tested-by: Mark Cave-Ayland --- hw/net/dp8393x.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c index 9118364aa33..d1e147a82a6 100644 --- a/hw/net/dp8393x.c +++ b/hw/net/dp8393x.c @@ -85,6 +85,7 @@ static const char *reg_names[] =3D { #define SONIC_MPT 0x2e #define SONIC_MDT 0x2f #define SONIC_DCR2 0x3f +#define SONIC_REG_COUNT 0x40 =20 #define SONIC_CR_HTX 0x0001 #define SONIC_CR_TXP 0x0002 @@ -158,7 +159,7 @@ struct dp8393xState { =20 /* Registers */ uint8_t cam[16][6]; - uint16_t regs[0x40]; + uint16_t regs[SONIC_REG_COUNT]; =20 /* Temporaries */ uint8_t tx_buffer[0x10000]; @@ -972,7 +973,7 @@ static void dp8393x_realize(DeviceState *dev, Error **e= rrp) =20 address_space_init(&s->as, s->dma_mr, "dp8393x"); memory_region_init_io(&s->mmio, OBJECT(dev), &dp8393x_ops, s, - "dp8393x-regs", 0x40 << s->it_shift); + "dp8393x-regs", SONIC_REG_COUNT << s->it_shift); =20 s->nic =3D qemu_new_nic(&net_dp83932_info, &s->conf, object_get_typename(OBJECT(dev)), dev->id, s); @@ -987,7 +988,7 @@ static const VMStateDescription vmstate_dp8393x =3D { .minimum_version_id =3D 0, .fields =3D (VMStateField []) { VMSTATE_BUFFER_UNSAFE(cam, dp8393xState, 0, 16 * 6), - VMSTATE_UINT16_ARRAY(regs, dp8393xState, 0x40), + VMSTATE_UINT16_ARRAY(regs, dp8393xState, SONIC_REG_COUNT), VMSTATE_END_OF_LIST() } }; --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.41 as permitted sender) client-ip=209.85.128.41; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f41.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.41 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037311; cv=none; d=zohomail.com; s=zohoarc; b=C8Bd4r3t++3In4z6wtejbAJzdYtsTZNHpAddzLvxMMLmeAruzq6YBBhTUphiyYjbgYmiC6pE8qXwrDGVs+XnU4F0gJonJFgt1lKTgQtFdkcA4rNDXAwU5A5nxPWViC8CxYmAxB2tHoqBKdvAq+ZxJJQbJwcSAwIzl26nkOr/S+k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037311; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=vNIHCXPggM034f3kqxuyfYmegS1Lrb5pCTTwom4fFi8=; b=f4XXeoNyH+FHnal/V8YdO/RsDlQMnW9AXf4ho9alG6/21Y0vhgdYBjV3x38p8I7x3e520IYStOhSTwZXaxe4lB/ha7GWgjk9/bTwT4NnO/RO9+9WZOGNYyojku+2dDkc4nsqKU8RSN3cix/wAwQb3h5pEwrfPSWOQIU2FAwN90U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.41 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by mx.zohomail.com with SMTPS id 16260373114741010.7966113216082; Sun, 11 Jul 2021 14:01:51 -0700 (PDT) Received: by mail-wm1-f41.google.com with SMTP id n33so9972183wms.1 for ; Sun, 11 Jul 2021 14:01:50 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id l18sm7943457wme.29.2021.07.11.14.01.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:01:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vNIHCXPggM034f3kqxuyfYmegS1Lrb5pCTTwom4fFi8=; b=YT05f/Il3kdlzZ65Fkwlil6GcCcNh4m63iezrsIpeC9FbpdApo6DLD5WxUj2DPjw8r 01Nwj2kr4oSNxiepxCpDd6f6rklFDwty9vipE8nhRigIFWGmKJ3VqumS4sYwbdoJzWM2 hvFxS7wXR7k5RmDwWq5gaN34v+zGfUjdMpnsBlixj7MezhwW74Bai303bC6nHdwJkYTQ bgJuZF0agaD9eSywsUlbMvgNqGuWX3NwIqpUTg5aAh1Ol8uqvhSf5wBwLU17QId7S+sf tWO4oRxvN8wXKZ6Oo/Hy7zhWpaPBf/HMZG27J6if+CVlpJC9okrhH6yVwlRCGx+32LxD bZUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=vNIHCXPggM034f3kqxuyfYmegS1Lrb5pCTTwom4fFi8=; b=EHBKJgme85Vi/QhmRapXIpPP3K3hkuh+QwEcAkb2sRzbNL5bn4yP4qhrHW1AmUa1XI HN7umXbasg+4Ywas6GR14opuJUzSiiKtZf0ht3sMqSZM2TRs+2eX8BO8GISbzmXjT9fR agq1OBTDBMs6XIyhNZsA+3T4jTKXf80I5/Ph4JJ+xIPOQ37b30/eLhdNP3O17+G5dL3V 4I3sx8yHVUsrRYfEZpH53RZxl6HTDOJnaRSCPZqIlaPB7m1UITpBgTXu0P5fske3E8+L nyf6IwmX1PuZgom3czIHJBo8mhjdwTSi0yURiQmMZ+EwERlz7OXu75Lb3PFbtpHmhxb9 9Vqw== X-Gm-Message-State: AOAM531VDLan4Q92AvaFFSWZQchp89YaFFr9VjDt3AO9yndp2LZV9MUI Q0YkZh5k/WP3Gferjx9vtQU= X-Google-Smtp-Source: ABdhPJxM5Tu90C1usc1McTitZJ2BfGgPsSCfkAGcA4vkQwlAd6OtrQqnxgPWTyB4qdxGK8bYa2mP4w== X-Received: by 2002:a7b:c096:: with SMTP id r22mr10940429wmh.186.1626037309745; Sun, 11 Jul 2021 14:01:49 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Finn Thain Subject: [PULL 17/19] dp8393x: Store CAM registers as 16-bit Date: Sun, 11 Jul 2021 23:00:14 +0200 Message-Id: <20210711210016.2710100-18-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037312529100001 Per the DP83932C datasheet from July 1995: 4.0 SONIC Registers 4.1 THE CAM UNIT The Content Addressable Memory (CAM) consists of sixteen 48-bit entries for complete address filtering of network packets. Each entry corresponds to a 48-bit destination address that is user programmable and can contain any combination of Multicast or Physical addresses. Each entry is partitioned into three 16-bit CAM cells accessible through CAM Address Ports (CAP 2, CAP 1 and CAP 0) with CAP0 corresponding to the least significant 16 bits of the Destination Address and CAP2 corresponding to the most significant bits. Store the CAM registers as 16-bit as it simplifies the code. Having now the CAM registers as arrays of 3 uint16_t, we can avoid using the VMSTATE_BUFFER_UNSAFE macro by using VMSTATE_UINT16_2DARRAY which is more appropriate. This breaks the migration stream however. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Mark Cave-Ayland Tested-by: Finn Thain Message-Id: <20210710174954.2577195-5-f4bug@amsat.org> Tested-by: Mark Cave-Ayland --- hw/net/dp8393x.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c index d1e147a82a6..283de9db0bf 100644 --- a/hw/net/dp8393x.c +++ b/hw/net/dp8393x.c @@ -158,7 +158,7 @@ struct dp8393xState { MemoryRegion mmio; =20 /* Registers */ - uint8_t cam[16][6]; + uint16_t cam[16][3]; uint16_t regs[SONIC_REG_COUNT]; =20 /* Temporaries */ @@ -281,15 +281,13 @@ static void dp8393x_do_load_cam(dp8393xState *s) address_space_read(&s->as, dp8393x_cdp(s), MEMTXATTRS_UNSPECIFIED, s->data, size); index =3D dp8393x_get(s, width, 0) & 0xf; - s->cam[index][0] =3D dp8393x_get(s, width, 1) & 0xff; - s->cam[index][1] =3D dp8393x_get(s, width, 1) >> 8; - s->cam[index][2] =3D dp8393x_get(s, width, 2) & 0xff; - s->cam[index][3] =3D dp8393x_get(s, width, 2) >> 8; - s->cam[index][4] =3D dp8393x_get(s, width, 3) & 0xff; - s->cam[index][5] =3D dp8393x_get(s, width, 3) >> 8; - trace_dp8393x_load_cam(index, s->cam[index][0], s->cam[index][1], - s->cam[index][2], s->cam[index][3], - s->cam[index][4], s->cam[index][5]); + s->cam[index][0] =3D dp8393x_get(s, width, 1); + s->cam[index][1] =3D dp8393x_get(s, width, 2); + s->cam[index][2] =3D dp8393x_get(s, width, 3); + trace_dp8393x_load_cam(index, + s->cam[index][0] >> 8, s->cam[index][0] & 0= xff, + s->cam[index][1] >> 8, s->cam[index][1] & 0= xff, + s->cam[index][2] >> 8, s->cam[index][2] & 0= xff); /* Move to next entry */ s->regs[SONIC_CDC]--; s->regs[SONIC_CDP] +=3D size; @@ -592,8 +590,7 @@ static uint64_t dp8393x_read(void *opaque, hwaddr addr,= unsigned int size) case SONIC_CAP1: case SONIC_CAP0: if (s->regs[SONIC_CR] & SONIC_CR_RST) { - val =3D s->cam[s->regs[SONIC_CEP] & 0xf][2 * (SONIC_CAP0 - reg= ) + 1] << 8; - val |=3D s->cam[s->regs[SONIC_CEP] & 0xf][2 * (SONIC_CAP0 - re= g)]; + val =3D s->cam[s->regs[SONIC_CEP] & 0xf][SONIC_CAP0 - reg]; } break; /* All other registers have no special contraints */ @@ -984,10 +981,10 @@ static void dp8393x_realize(DeviceState *dev, Error *= *errp) =20 static const VMStateDescription vmstate_dp8393x =3D { .name =3D "dp8393x", - .version_id =3D 0, - .minimum_version_id =3D 0, + .version_id =3D 1, + .minimum_version_id =3D 1, .fields =3D (VMStateField []) { - VMSTATE_BUFFER_UNSAFE(cam, dp8393xState, 0, 16 * 6), + VMSTATE_UINT16_2DARRAY(cam, dp8393xState, 16, 3), VMSTATE_UINT16_ARRAY(regs, dp8393xState, SONIC_REG_COUNT), VMSTATE_END_OF_LIST() } --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.53 as permitted sender) client-ip=209.85.128.53; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f53.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.53 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037317; cv=none; d=zohomail.com; s=zohoarc; b=hnF4tSRCPQF0OCV0pVZDFUxAYNXVpSXntIWscNN8qy2WyE16unKjOcDxkY58WrizLH2ZCnq9VS5u5xkUTVExMKi5JCLUki4nt2sxd2cwDJvXiHJhUN4inUw8Zy+T7wWn6UIQYRw3Eks/hWvghz79dlTNzbAqFefUcPKn48fVld4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037317; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=BW43eT/YMTWZC1AYauXSkubmTZfnC0cY3WoLVD92V9o=; b=QG1yy1V4Wp14EwcpP6xw0uT4Wn+FbkiOfmK+mPj3DmtnvfFnTQw00Z+dOtazumKFYRCXsexQAXMW4tsDk8z5bg2IfAcP+T3qeLnRst7yCA5M5kw1Iw3iGXJ91Myjsk2TImfQjfNK05EAj5G/DcgV7+zU7xvzuVLMljLET1LdQMc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.53 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) by mx.zohomail.com with SMTPS id 16260373176961002.1907976629358; Sun, 11 Jul 2021 14:01:57 -0700 (PDT) Received: by mail-wm1-f53.google.com with SMTP id k32so6757053wms.4 for ; Sun, 11 Jul 2021 14:01:56 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id f22sm10739013wmb.46.2021.07.11.14.01.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:01:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=BW43eT/YMTWZC1AYauXSkubmTZfnC0cY3WoLVD92V9o=; b=ECqtBqINf0ah4Hbft1204RzjL12mu+Warltr+rrKq0dTas5d4alELSFP9D1nv7t6T0 LuXxCItKuGDxyU2dgGYaWKId8DPD+lSD3QyM563L9xL5z0aI1yFfCUl8STtF8Asc9Z3b swAfdHHbEWXrKEKqdb63A4UmJUv/ISHsswBjpXoeuG21bcblrVAa5iMP4lG3fensPbxr f6vEU6Cry4gb66G7TJcUBUeppBzZoTz9jN9NC94nziKigA4VvocT8838WapI0trwo6oU T92rPvHr0JBadYuaRcFqvN556uAqKUEjaIUZouxzXV02KU7PLxGuoEGdc/eL/koZkSap PX+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=BW43eT/YMTWZC1AYauXSkubmTZfnC0cY3WoLVD92V9o=; b=P9JVwUig5k6icxuh+B4tYX/E6ydfZJTU83SDRT8X4KZsBkZTis2CNRHIa6Mpox1XI5 rA6SCSgcdT0EUh5R+o0uvnW6ymOnIwFrbrh4aAKr5WzD7IW3BB6T21tcYDZVBw8jjWWA r6GIrYiXGZs/HlUe0QFLYDww9puq6IiFNKoIyTE7DXFRbfJs357cft21D7Xauj7su5PJ Gzt0w8Y9JQquCX/X28dTDHKH588l5cgciWdNogfPH8sXYtco0mt5NUSuUMijq7v+TjkA +nwDg7Hf0CzSHbb9PuawqsQyqXH/wMNpI5FfZkXy+wDMuIIJ71TBD8VD9lHjJ9OQ3qjl Tb0w== X-Gm-Message-State: AOAM533L6HKshscbuEWYsySRBb88XiXLWoVvtHIsrT/2HaV2h7/rc3Oi bB1q1FPDKSdVkUBNR9cGVTg= X-Google-Smtp-Source: ABdhPJw5NK6N3d0unrphjnemYLufhR3zDsRHdysR8pEtDzuKw3HIbikGnlC2dPXLrmBUp5SD7Dw5WQ== X-Received: by 2002:a1c:c911:: with SMTP id f17mr52018513wmb.60.1626037314771; Sun, 11 Jul 2021 14:01:54 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Finn Thain Subject: [PULL 18/19] dp8393x: Rewrite dp8393x_get() / dp8393x_put() Date: Sun, 11 Jul 2021 23:00:15 +0200 Message-Id: <20210711210016.2710100-19-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037318950100001 Instead of accessing N registers via a single address_space API call using a temporary buffer (stored in the device state) and updating each register, move the address_space call in the register put/get. The load/store and word size checks are moved to put/get too. This simplifies a bit, making the code easier to read. Co-developed-by: Philippe Mathieu-Daud=C3=A9 Co-developed-by: Mark Cave-Ayland Signed-off-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Mark Cave-Ayland Tested-by: Mark Cave-Ayland Tested-by: Finn Thain Message-Id: <20210710174954.2577195-8-f4bug@amsat.org> --- hw/net/dp8393x.c | 160 +++++++++++++++++++---------------------------- 1 file changed, 63 insertions(+), 97 deletions(-) diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c index 283de9db0bf..4057a263de3 100644 --- a/hw/net/dp8393x.c +++ b/hw/net/dp8393x.c @@ -163,7 +163,6 @@ struct dp8393xState { =20 /* Temporaries */ uint8_t tx_buffer[0x10000]; - uint16_t data[12]; int loopback_packet; =20 /* Memory access */ @@ -220,34 +219,48 @@ static uint32_t dp8393x_wt(dp8393xState *s) return s->regs[SONIC_WT1] << 16 | s->regs[SONIC_WT0]; } =20 -static uint16_t dp8393x_get(dp8393xState *s, int width, int offset) +static uint16_t dp8393x_get(dp8393xState *s, hwaddr addr, int offset) { + const MemTxAttrs attrs =3D MEMTXATTRS_UNSPECIFIED; uint16_t val; =20 - if (s->big_endian) { - val =3D be16_to_cpu(s->data[offset * width + width - 1]); + if (s->regs[SONIC_DCR] & SONIC_DCR_DW) { + addr +=3D offset << 2; + if (s->big_endian) { + val =3D address_space_ldl_be(&s->as, addr, attrs, NULL); + } else { + val =3D address_space_ldl_le(&s->as, addr, attrs, NULL); + } } else { - val =3D le16_to_cpu(s->data[offset * width]); + addr +=3D offset << 1; + if (s->big_endian) { + val =3D address_space_lduw_be(&s->as, addr, attrs, NULL); + } else { + val =3D address_space_lduw_le(&s->as, addr, attrs, NULL); + } } + return val; } =20 -static void dp8393x_put(dp8393xState *s, int width, int offset, - uint16_t val) +static void dp8393x_put(dp8393xState *s, + hwaddr addr, int offset, uint16_t val) { - if (s->big_endian) { - if (width =3D=3D 2) { - s->data[offset * 2] =3D 0; - s->data[offset * 2 + 1] =3D cpu_to_be16(val); + const MemTxAttrs attrs =3D MEMTXATTRS_UNSPECIFIED; + + if (s->regs[SONIC_DCR] & SONIC_DCR_DW) { + addr +=3D offset << 2; + if (s->big_endian) { + address_space_stl_be(&s->as, addr, val, attrs, NULL); } else { - s->data[offset] =3D cpu_to_be16(val); + address_space_stl_le(&s->as, addr, val, attrs, NULL); } } else { - if (width =3D=3D 2) { - s->data[offset * 2] =3D cpu_to_le16(val); - s->data[offset * 2 + 1] =3D 0; + addr +=3D offset << 1; + if (s->big_endian) { + address_space_stw_be(&s->as, addr, val, attrs, NULL); } else { - s->data[offset] =3D cpu_to_le16(val); + address_space_stw_le(&s->as, addr, val, attrs, NULL); } } } @@ -278,12 +291,10 @@ static void dp8393x_do_load_cam(dp8393xState *s) =20 while (s->regs[SONIC_CDC] & 0x1f) { /* Fill current entry */ - address_space_read(&s->as, dp8393x_cdp(s), - MEMTXATTRS_UNSPECIFIED, s->data, size); - index =3D dp8393x_get(s, width, 0) & 0xf; - s->cam[index][0] =3D dp8393x_get(s, width, 1); - s->cam[index][1] =3D dp8393x_get(s, width, 2); - s->cam[index][2] =3D dp8393x_get(s, width, 3); + index =3D dp8393x_get(s, dp8393x_cdp(s), 0) & 0xf; + s->cam[index][0] =3D dp8393x_get(s, dp8393x_cdp(s), 1); + s->cam[index][1] =3D dp8393x_get(s, dp8393x_cdp(s), 2); + s->cam[index][2] =3D dp8393x_get(s, dp8393x_cdp(s), 3); trace_dp8393x_load_cam(index, s->cam[index][0] >> 8, s->cam[index][0] & 0= xff, s->cam[index][1] >> 8, s->cam[index][1] & 0= xff, @@ -294,9 +305,7 @@ static void dp8393x_do_load_cam(dp8393xState *s) } =20 /* Read CAM enable */ - address_space_read(&s->as, dp8393x_cdp(s), - MEMTXATTRS_UNSPECIFIED, s->data, size); - s->regs[SONIC_CE] =3D dp8393x_get(s, width, 0); + s->regs[SONIC_CE] =3D dp8393x_get(s, dp8393x_cdp(s), 0); trace_dp8393x_load_cam_done(s->regs[SONIC_CE]); =20 /* Done */ @@ -312,14 +321,12 @@ static void dp8393x_do_read_rra(dp8393xState *s) /* Read memory */ width =3D (s->regs[SONIC_DCR] & SONIC_DCR_DW) ? 2 : 1; size =3D sizeof(uint16_t) * 4 * width; - address_space_read(&s->as, dp8393x_rrp(s), - MEMTXATTRS_UNSPECIFIED, s->data, size); =20 /* Update SONIC registers */ - s->regs[SONIC_CRBA0] =3D dp8393x_get(s, width, 0); - s->regs[SONIC_CRBA1] =3D dp8393x_get(s, width, 1); - s->regs[SONIC_RBWC0] =3D dp8393x_get(s, width, 2); - s->regs[SONIC_RBWC1] =3D dp8393x_get(s, width, 3); + s->regs[SONIC_CRBA0] =3D dp8393x_get(s, dp8393x_rrp(s), 0); + s->regs[SONIC_CRBA1] =3D dp8393x_get(s, dp8393x_rrp(s), 1); + s->regs[SONIC_RBWC0] =3D dp8393x_get(s, dp8393x_rrp(s), 2); + s->regs[SONIC_RBWC1] =3D dp8393x_get(s, dp8393x_rrp(s), 3); trace_dp8393x_read_rra_regs(s->regs[SONIC_CRBA0], s->regs[SONIC_CRBA1], s->regs[SONIC_RBWC0], s->regs[SONIC_RBWC1]= ); =20 @@ -415,28 +422,22 @@ static void dp8393x_do_receiver_disable(dp8393xState = *s) static void dp8393x_do_transmit_packets(dp8393xState *s) { NetClientState *nc =3D qemu_get_queue(s->nic); - int width, size; int tx_len, len; uint16_t i; =20 - width =3D (s->regs[SONIC_DCR] & SONIC_DCR_DW) ? 2 : 1; - while (1) { /* Read memory */ - size =3D sizeof(uint16_t) * 6 * width; s->regs[SONIC_TTDA] =3D s->regs[SONIC_CTDA]; trace_dp8393x_transmit_packet(dp8393x_ttda(s)); - address_space_read(&s->as, dp8393x_ttda(s) + sizeof(uint16_t) * wi= dth, - MEMTXATTRS_UNSPECIFIED, s->data, size); tx_len =3D 0; =20 /* Update registers */ - s->regs[SONIC_TCR] =3D dp8393x_get(s, width, 0) & 0xf000; - s->regs[SONIC_TPS] =3D dp8393x_get(s, width, 1); - s->regs[SONIC_TFC] =3D dp8393x_get(s, width, 2); - s->regs[SONIC_TSA0] =3D dp8393x_get(s, width, 3); - s->regs[SONIC_TSA1] =3D dp8393x_get(s, width, 4); - s->regs[SONIC_TFS] =3D dp8393x_get(s, width, 5); + s->regs[SONIC_TCR] =3D dp8393x_get(s, dp8393x_ttda(s), 1) & 0xf000; + s->regs[SONIC_TPS] =3D dp8393x_get(s, dp8393x_ttda(s), 2); + s->regs[SONIC_TFC] =3D dp8393x_get(s, dp8393x_ttda(s), 3); + s->regs[SONIC_TSA0] =3D dp8393x_get(s, dp8393x_ttda(s), 4); + s->regs[SONIC_TSA1] =3D dp8393x_get(s, dp8393x_ttda(s), 5); + s->regs[SONIC_TFS] =3D dp8393x_get(s, dp8393x_ttda(s), 6); =20 /* Handle programmable interrupt */ if (s->regs[SONIC_TCR] & SONIC_TCR_PINT) { @@ -458,15 +459,12 @@ static void dp8393x_do_transmit_packets(dp8393xState = *s) i++; if (i !=3D s->regs[SONIC_TFC]) { /* Read next fragment details */ - size =3D sizeof(uint16_t) * 3 * width; - address_space_read(&s->as, - dp8393x_ttda(s) - + sizeof(uint16_t) * width * (4 + 3 * i= ), - MEMTXATTRS_UNSPECIFIED, s->data, - size); - s->regs[SONIC_TSA0] =3D dp8393x_get(s, width, 0); - s->regs[SONIC_TSA1] =3D dp8393x_get(s, width, 1); - s->regs[SONIC_TFS] =3D dp8393x_get(s, width, 2); + s->regs[SONIC_TSA0] =3D dp8393x_get(s, dp8393x_ttda(s), + 4 + 3 * i); + s->regs[SONIC_TSA1] =3D dp8393x_get(s, dp8393x_ttda(s), + 5 + 3 * i); + s->regs[SONIC_TFS] =3D dp8393x_get(s, dp8393x_ttda(s), + 6 + 3 * i); } } =20 @@ -499,22 +497,12 @@ static void dp8393x_do_transmit_packets(dp8393xState = *s) s->regs[SONIC_TCR] |=3D SONIC_TCR_PTX; =20 /* Write status */ - dp8393x_put(s, width, 0, - s->regs[SONIC_TCR] & 0x0fff); /* status */ - size =3D sizeof(uint16_t) * width; - address_space_write(&s->as, dp8393x_ttda(s), - MEMTXATTRS_UNSPECIFIED, s->data, size); + dp8393x_put(s, dp8393x_ttda(s), 0, s->regs[SONIC_TCR] & 0x0fff); =20 if (!(s->regs[SONIC_CR] & SONIC_CR_HTX)) { /* Read footer of packet */ - size =3D sizeof(uint16_t) * width; - address_space_read(&s->as, - dp8393x_ttda(s) - + sizeof(uint16_t) * width - * (4 + 3 * s->regs[SONIC_TFC]), - MEMTXATTRS_UNSPECIFIED, s->data, - size); - s->regs[SONIC_CTDA] =3D dp8393x_get(s, width, 0); + s->regs[SONIC_CTDA] =3D dp8393x_get(s, dp8393x_ttda(s), + 4 + 3 * s->regs[SONIC_TFC]); if (s->regs[SONIC_CTDA] & SONIC_DESC_EOL) { /* EOL detected */ break; @@ -762,7 +750,7 @@ static ssize_t dp8393x_receive(NetClientState *nc, cons= t uint8_t * buf, dp8393xState *s =3D qemu_get_nic_opaque(nc); int packet_type; uint32_t available, address; - int width, rx_len, padded_len; + int rx_len, padded_len; uint32_t checksum; int size; =20 @@ -775,10 +763,8 @@ static ssize_t dp8393x_receive(NetClientState *nc, con= st uint8_t * buf, =20 rx_len =3D pkt_size + sizeof(checksum); if (s->regs[SONIC_DCR] & SONIC_DCR_DW) { - width =3D 2; padded_len =3D ((rx_len - 1) | 3) + 1; } else { - width =3D 1; padded_len =3D ((rx_len - 1) | 1) + 1; } =20 @@ -799,11 +785,7 @@ static ssize_t dp8393x_receive(NetClientState *nc, con= st uint8_t * buf, /* Check for EOL */ if (s->regs[SONIC_LLFA] & SONIC_DESC_EOL) { /* Are we still in resource exhaustion? */ - size =3D sizeof(uint16_t) * 1 * width; - address =3D dp8393x_crda(s) + sizeof(uint16_t) * 5 * width; - address_space_read(&s->as, address, MEMTXATTRS_UNSPECIFIED, - s->data, size); - s->regs[SONIC_LLFA] =3D dp8393x_get(s, width, 0); + s->regs[SONIC_LLFA] =3D dp8393x_get(s, dp8393x_crda(s), 5); if (s->regs[SONIC_LLFA] & SONIC_DESC_EOL) { /* Still EOL ; stop reception */ return -1; @@ -811,11 +793,7 @@ static ssize_t dp8393x_receive(NetClientState *nc, con= st uint8_t * buf, /* Link has been updated by host */ =20 /* Clear in_use */ - size =3D sizeof(uint16_t) * width; - address =3D dp8393x_crda(s) + sizeof(uint16_t) * 6 * width; - dp8393x_put(s, width, 0, 0); - address_space_write(&s->as, address, MEMTXATTRS_UNSPECIFIED, - s->data, size); + dp8393x_put(s, dp8393x_crda(s), 6, 0x0000); =20 /* Move to next descriptor */ s->regs[SONIC_CRDA] =3D s->regs[SONIC_LLFA]; @@ -869,32 +847,20 @@ static ssize_t dp8393x_receive(NetClientState *nc, co= nst uint8_t * buf, =20 /* Write status to memory */ trace_dp8393x_receive_write_status(dp8393x_crda(s)); - dp8393x_put(s, width, 0, s->regs[SONIC_RCR]); /* status */ - dp8393x_put(s, width, 1, rx_len); /* byte count */ - dp8393x_put(s, width, 2, s->regs[SONIC_TRBA0]); /* pkt_ptr0 */ - dp8393x_put(s, width, 3, s->regs[SONIC_TRBA1]); /* pkt_ptr1 */ - dp8393x_put(s, width, 4, s->regs[SONIC_RSC]); /* seq_no */ - size =3D sizeof(uint16_t) * 5 * width; - address_space_write(&s->as, dp8393x_crda(s), - MEMTXATTRS_UNSPECIFIED, - s->data, size); + dp8393x_put(s, dp8393x_crda(s), 0, s->regs[SONIC_RCR]); /* status */ + dp8393x_put(s, dp8393x_crda(s), 1, rx_len); /* byte count */ + dp8393x_put(s, dp8393x_crda(s), 2, s->regs[SONIC_TRBA0]); /* pkt_ptr0 = */ + dp8393x_put(s, dp8393x_crda(s), 3, s->regs[SONIC_TRBA1]); /* pkt_ptr1 = */ + dp8393x_put(s, dp8393x_crda(s), 4, s->regs[SONIC_RSC]); /* seq_no */ =20 /* Check link field */ - size =3D sizeof(uint16_t) * width; - address_space_read(&s->as, - dp8393x_crda(s) + sizeof(uint16_t) * 5 * width, - MEMTXATTRS_UNSPECIFIED, s->data, size); - s->regs[SONIC_LLFA] =3D dp8393x_get(s, width, 0); + s->regs[SONIC_LLFA] =3D dp8393x_get(s, dp8393x_crda(s), 5); if (s->regs[SONIC_LLFA] & SONIC_DESC_EOL) { /* EOL detected */ s->regs[SONIC_ISR] |=3D SONIC_ISR_RDE; } else { /* Clear in_use */ - size =3D sizeof(uint16_t) * width; - address =3D dp8393x_crda(s) + sizeof(uint16_t) * 6 * width; - dp8393x_put(s, width, 0, 0); - address_space_write(&s->as, address, MEMTXATTRS_UNSPECIFIED, - s->data, size); + dp8393x_put(s, dp8393x_crda(s), 6, 0x0000); =20 /* Move to next descriptor */ s->regs[SONIC_CRDA] =3D s->regs[SONIC_LLFA]; --=20 2.31.1 From nobody Mon Feb 9 10:39:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) client-ip=209.85.221.47; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f47.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1626037321; cv=none; d=zohomail.com; s=zohoarc; b=hApNEuL9ohnZyIKiZFwU7XuNpXKY+icQ37dfZmI2FZ5koHLUtnd6ETX2ZH+lAKnrhGJB+mFXG3fxTxJi2znShToq6rSiYQTq9ub2C7frTUksfzYu38hOugzPiRH/HndC5JdoY1ASMzRgd5mpfJ6AC+dGA7P2Maqj6iZ36xTjPBw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1626037321; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=NUim6++IcBw63PEyeXm1vZaOJYvHSUOphgJ+u9sIrvs=; b=XNseDf6E6qn/puUH9108lCh9lx2zBAnnhZXc1ubbgzByCpBCwzgi+L8WCBpNoBy7IoDTJIZVqIB5W8wqbBg+itmLa9YLw/v1cinSIbjUCRJAQrs2KglBl0lH79LOXId+2aTmbwjVgkFvodLxEkEQgfwX9kRKk8nONO27vBVJXJ8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) by mx.zohomail.com with SMTPS id 1626037321419402.4007101477482; Sun, 11 Jul 2021 14:02:01 -0700 (PDT) Received: by mail-wr1-f47.google.com with SMTP id f17so22096996wrt.6 for ; Sun, 11 Jul 2021 14:02:00 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (abayonne-654-1-142-116.w86-222.abo.wanadoo.fr. [86.222.93.116]) by smtp.gmail.com with ESMTPSA id u16sm14600468wrw.36.2021.07.11.14.01.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jul 2021 14:01:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NUim6++IcBw63PEyeXm1vZaOJYvHSUOphgJ+u9sIrvs=; b=AN10hoUhbQ+nGxO47AmEXXBSUIpnRIZY1wlL827imYlJeGihHvX4d7IGfXi3do4K11 tM2BNDHk+a8lS/xunRgt8I3ZRjIzwdsjuu55R+0vqyY18IouDdLueM9TOQkZhNAbcTi1 d3fNqPbn9S4gcAngYE2qcRiIbgAlgxNtqVMWp3HrucTtLkHjEanLdJh2eRUK7/eAEykR GA2KvoAvc6yzrHVHCJj7kryxVbrGBs+oABISWWdxTxj9xKqFV96TUCqy5SooxfRr8Rbp GdWLs76Do/vZQxEILEla7OqocmFbl/QHCz5CBxwjx5CNqor8ss1GJhID6vvqUvZlwqpK EDfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=NUim6++IcBw63PEyeXm1vZaOJYvHSUOphgJ+u9sIrvs=; b=qUPXioOOUMq/ZXsGVB/DuV7nF6p9skI0C8eOU1awnvZ0hFPFX6SvvovHMUIFP2EXkY oGDWGkKV4HVoBfKMx9XrSAKpBTJGfdbdUfqOnwkHBX5+0lvcuhncOkxvInq9ct/wTQ0f F0ShZR+jwAjhRQvnVS2qXn84UdNm14sdTiHm+W+Aeh9a/HZ8D9ldE8EuR29xSInFPEYd ZGluPO+9+pqnRNNl8jxNn6HwNjBuna6IYt7/gVvPNDLPDRefDC5WAvVURXOtf6vDsCJR 9AspbWIRGATqYl0s5EigjK5njTRlHsuZm50TttbLie4irO5C54wZp6e1G+IGTp/IuCc3 qqCw== X-Gm-Message-State: AOAM530BXpkw3/HbBnnUSDo4uP1OkeJiplxM8s0ttjA+am5sWG4D4zZH +P68PCr4vXjhvpC1DqcMg64= X-Google-Smtp-Source: ABdhPJyCUeTW2kiS82n5wDJg+ycjZfLVp+rJQLSWDWZF7PWTqtR6m0HjNfy1wu73WpHM6I/0mOn/pQ== X-Received: by 2002:a5d:48c6:: with SMTP id p6mr54785837wrs.45.1626037319630; Sun, 11 Jul 2021 14:01:59 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Fredrik Noring , Mark Cave-Ayland , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Finn Thain Subject: [PULL 19/19] dp8393x: don't force 32-bit register access Date: Sun, 11 Jul 2021 23:00:16 +0200 Message-Id: <20210711210016.2710100-20-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210711210016.2710100-1-f4bug@amsat.org> References: <20210711210016.2710100-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1626037323111100001 From: Mark Cave-Ayland Commit 3fe9a838ec "dp8393x: Always use 32-bit accesses" set .impl.min_acces= s_size and .impl.max_access_size to 4 to try and fix the Linux jazzsonic driver wh= ich uses 32-bit accesses. The problem with forcing the register access to 32-bit in this way is that = since the dp8393x uses 16-bit registers, a manual endian swap is required for devices= on big endian machines with 32-bit accesses. For both access sizes and machine endians the QEMU memory API can do the ri= ght thing automatically: all that is needed is to set .impl.min_access_size to 2 to d= eclare that the dp8393x implements 16-bit registers. Normally .impl.max_access_size should also be set to 2, however that doesn'= t quite work in this case since the register stride is specified using a (dynamic) = it_shift property which is applied during the MMIO access itself. The effect of this= is that for a 32-bit access the memory API performs 2 x 16-bit accesses, but the us= e of it_shift within the MMIO access itself causes the register value to be repe= ated in both the top 16-bits and bottom 16-bits. The Linux jazzsonic driver expects the = stride to be zero-extended up to access size and therefore fails to correctly detect the= dp8393x device due to the extra data in the top 16-bits. The solution here is to remove .impl.max_access_size so that the memory API= will correctly zero-extend the 16-bit registers to the access size up to and inc= luding it_shift. Since it_shift is never greater than 2 than this will always do t= he right thing for both 16-bit and 32-bit accesses regardless of the machine endian,= allowing the manual endian swap code to be removed. Signed-off-by: Mark Cave-Ayland Fixes: 3fe9a838ec ("dp8393x: Always use 32-bit accesses") Message-Id: <20210705214929.17222-2-mark.cave-ayland@ilande.co.uk> Signed-off-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Finn Thain Tested-by: Mark Cave-Ayland --- hw/net/dp8393x.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c index 4057a263de3..45b954e46c2 100644 --- a/hw/net/dp8393x.c +++ b/hw/net/dp8393x.c @@ -588,15 +588,14 @@ static uint64_t dp8393x_read(void *opaque, hwaddr add= r, unsigned int size) =20 trace_dp8393x_read(reg, reg_names[reg], val, size); =20 - return s->big_endian ? val << 16 : val; + return val; } =20 -static void dp8393x_write(void *opaque, hwaddr addr, uint64_t data, +static void dp8393x_write(void *opaque, hwaddr addr, uint64_t val, unsigned int size) { dp8393xState *s =3D opaque; int reg =3D addr >> s->it_shift; - uint32_t val =3D s->big_endian ? data >> 16 : data; =20 trace_dp8393x_write(reg, reg_names[reg], val, size); =20 @@ -677,11 +676,16 @@ static void dp8393x_write(void *opaque, hwaddr addr, = uint64_t data, } } =20 +/* + * Since .impl.max_access_size is effectively controlled by the it_shift + * property, leave it unspecified for now to allow the memory API to + * correctly zero extend the 16-bit register values to the access size up = to and + * including it_shift. + */ static const MemoryRegionOps dp8393x_ops =3D { .read =3D dp8393x_read, .write =3D dp8393x_write, - .impl.min_access_size =3D 4, - .impl.max_access_size =3D 4, + .impl.min_access_size =3D 2, .endianness =3D DEVICE_NATIVE_ENDIAN, }; =20 --=20 2.31.1