From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653601260; cv=none; d=zohomail.com; s=zohoarc; b=Ec++YxDxwJNrDOPBTMkPEaImIEpAcz9lF4hI0Ds45zP61hJFsba49cn9zcjR1HGGserTDu/UojNBg1DSgz+UfKzYcYRu04mxiDjtTSg/D3U4mpL5cz8oyiXQbfg6xXnZjZb2EhyxNt99qQes3L7R43xtw80mSMDBeBESITV5wtM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653601260; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=imql0qNKHKBsnAZW2/cMn5l+lNp/68hJx+XCNH1PT5g=; b=hku1Vch7V9Si+JUsrhPPU5+AQ2dFDoh6ggGwCLN+JJEGxTr0oYPuklC+NyUQGnYWr96QV4rI749gMX0VHVMXzZ+iAubcmXjcEzG6mVjWlSOgWuf1jCMm01/2O2dL7dPsziYMztpdbAdKHMrQn8dStxS/4QtUHeU1rrh9rW+lpAM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653601260826982.8089090794966; Thu, 26 May 2022 14:41:00 -0700 (PDT) Received: from localhost ([::1]:39476 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLE3-0003I1-Nj for importer@patchew.org; Thu, 26 May 2022 17:40:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53240) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLBk-0000RF-RJ; Thu, 26 May 2022 17:38:36 -0400 Received: from mail-oi1-x233.google.com ([2607:f8b0:4864:20::233]:41718) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLBj-00083g-4l; Thu, 26 May 2022 17:38:36 -0400 Received: by mail-oi1-x233.google.com with SMTP id e189so3638331oia.8; Thu, 26 May 2022 14:38:34 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.38.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:38:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=imql0qNKHKBsnAZW2/cMn5l+lNp/68hJx+XCNH1PT5g=; b=hgram8tPyBXhzCN7sK2EXkZazUorBtMszRBdN5z9eAaJxvZAi4/+j2LWWJiRfAjMSF iKRsf1xCc6wSj4XcwFVIR4Df/QwJLtJgLtF8m1T1dKtRo/TAXydNdiRgAtuaFbpNX0TL alyeA3v1Cfx3Seh5ZTp1jphjvKtDLrK4dUI6F8SxL7wef6A9qS+1uxCxHVpJsJXJKHqN c7awkp40pOcGPyYRcuSo84TaL8WUAmn9nsfB/9c5OJa7hMpOzcohIR8sBkSkgfPx1xIV A+I28qULNHht0ZcI5cyaAGsezuy921thmS8xlUbYZGOwls2e4bVrwMaCUCETu+ofoP6p +GcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=imql0qNKHKBsnAZW2/cMn5l+lNp/68hJx+XCNH1PT5g=; b=b5Uh+VU1PXkEASrIZZZXmG0sMPvQD3dCftIYgxQvCinoMq1NPTDDIPauHplEa/6CnT BbkLIB1wdcTIVJuYGFF1dY+HXZO7cDU1X7oA7W/VZlWnFEjk6NzpyrU8cB2hBeh0852w MtWrUVqe9cRYhQuzVxZ+jMrNSxRvqBClqbzvk4TcqhbwRAT71gnEMXDkmuit+HbzaUol 1Bz6jCGHRZ7td6Z75PODPTgAkwGXQ2mfKcrznFSScUyQoS/3kKfl9RPJ3UZ8ReyTyVE+ BNpbRR6IYQoWcUr2h0cki2cVXY1Pao5ef8blgqpQWp6/63P56biRUMfpTcwoievzaDvD Rx/A== X-Gm-Message-State: AOAM533ptQW/2ZQeitE8qSHhL9PmE762TpFRBvU0Ug6LGhUBJCHYnTYx hMCmqf0PGlKSPB2AM3axZWl0OpIWIkA= X-Google-Smtp-Source: ABdhPJxKAw773W279WeZGh2AdvbYYtCeDxPi8WsJLRS0qWaSJWO2jZxM9T8J8G7G/fimssJzGl//6w== X-Received: by 2002:a05:6808:3087:b0:32b:4961:3bc6 with SMTP id bl7-20020a056808308700b0032b49613bc6mr2273504oib.251.1653601113586; Thu, 26 May 2022 14:38:33 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Paolo Bonzini Subject: [PULL 01/34] pseries: allow setting stdout-path even on machines with a VGA Date: Thu, 26 May 2022 18:37:42 -0300 Message-Id: <20220526213815.92701-2-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::233; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x233.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653601262405100001 Content-Type: text/plain; charset="utf-8" From: Paolo Bonzini -machine graphics=3Doff is the usual way to tell the firmware or the OS tha= t the user wants a serial console. The pseries machine however does not support this, and never adds the stdout-path node to the device tree if a VGA device is provided. This is in addition to the other magic behavior of VGA device= s, which is to add a keyboard and mouse to the default USB bus. Split spapr->has_graphics in two variables so that the two behaviors can be separated: the USB devices remains the same, but the stdout-path is added even with "-device VGA -machine graphics=3Doff". Reviewed-by: Daniel Henrique Barboza Signed-off-by: Paolo Bonzini Message-Id: <20220507054826.124936-1-pbonzini@redhat.com> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/spapr.c | 12 ++++++++---- include/hw/ppc/spapr.h | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 6de800524a..d112b85b4f 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1066,7 +1066,7 @@ static void spapr_dt_chosen(SpaprMachineState *spapr,= void *fdt, bool reset) _FDT(fdt_setprop_string(fdt, chosen, "qemu,boot-device", boot_= device)); } =20 - if (!spapr->has_graphics && stdout_path) { + if (spapr->want_stdout_path && stdout_path) { /* * "linux,stdout-path" and "stdout" properties are * deprecated by linux kernel. New platforms should only @@ -2712,6 +2712,7 @@ static void spapr_machine_init(MachineState *machine) const char *kernel_filename =3D machine->kernel_filename; const char *initrd_filename =3D machine->initrd_filename; PCIHostState *phb; + bool has_vga; int i; MemoryRegion *sysmem =3D get_system_memory(); long load_limit, fw_size; @@ -2950,9 +2951,12 @@ static void spapr_machine_init(MachineState *machine) } =20 /* Graphics */ - if (spapr_vga_init(phb->bus, &error_fatal)) { - spapr->has_graphics =3D true; + has_vga =3D spapr_vga_init(phb->bus, &error_fatal); + if (has_vga) { + spapr->want_stdout_path =3D !machine->enable_graphics; machine->usb |=3D defaults_enabled() && !machine->usb_disabled; + } else { + spapr->want_stdout_path =3D true; } =20 if (machine->usb) { @@ -2962,7 +2966,7 @@ static void spapr_machine_init(MachineState *machine) pci_create_simple(phb->bus, -1, "nec-usb-xhci"); } =20 - if (spapr->has_graphics) { + if (has_vga) { USBBus *usb_bus =3D usb_bus_find(-1); =20 usb_create_simple(usb_bus, "usb-kbd"); diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 14b01c3f59..072dda2c72 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -194,7 +194,7 @@ struct SpaprMachineState { Vof *vof; uint64_t rtc_offset; /* Now used only during incoming migration */ struct PPCTimebase tb; - bool has_graphics; + bool want_stdout_path; uint32_t vsmt; /* Virtual SMT mode (KVM's "core stride") */ =20 /* Nested HV support (TCG only) */ --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653601448; cv=none; d=zohomail.com; s=zohoarc; b=HaJ1Cq+Zi94kNDXFtosstMY1l3F/KzwJYgoN3K5gkCypIV+A9y312d564J6s+90pqFYYfTF2W02OTW8QXvbj7TzXOi5eQjXUOlX6or3g5fYlhzuYcRuchfGvGGQ2WfzXo9sc18uvWw7N5etIpp7TFKp51lTGznCHOP71IgSOThA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653601448; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=jxq0GoNMOrfMkh7Q+RRv6Q3I0KJxJA5pEEIoBSIidB8=; b=fx6Ng01bpirb9Lf0FcYaYGilrX07cIfSPQW2Uh/I4ktKLggOpaVOdJk5kMOMfLrFnb0s2R1toR9oFlOyXlqtGmYLaZPYUCTEDMsCSaNsNaHoAxCM3x8PEYDpmJCT/CnVv6QCemq7OooMNkIXOZ/3MP8V6geiIQyJFSeDnN7osjg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653601448037785.5758196581339; Thu, 26 May 2022 14:44:08 -0700 (PDT) Received: from localhost ([::1]:48294 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLH4-0000uM-9M for importer@patchew.org; Thu, 26 May 2022 17:44:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53254) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLBn-0000Ye-9w; Thu, 26 May 2022 17:38:39 -0400 Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]:45606) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLBl-00084G-O2; Thu, 26 May 2022 17:38:39 -0400 Received: by mail-oi1-x230.google.com with SMTP id r68so3615290oie.12; Thu, 26 May 2022 14:38:37 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.38.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:38:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jxq0GoNMOrfMkh7Q+RRv6Q3I0KJxJA5pEEIoBSIidB8=; b=ETxb/kkEy2z5TwHhvuS8c0itwUF+nLPVlcvoXKHEZfwT3p/ji4YAJZGhtlTNz10aJY P2fqAbjfqw6Oqj1nCL45GdSOSETHdxP3XwmRXJqsD6YePrIdsJT68D/dp9bsnOe+rBO4 uURFIKx0I0OAKljWLizg910IbUBGJ/t+Zq/8IeBXbj2JI+LscL3t9rNiy585xCG6mfSa kPH6tYwhaH6de1669B1RwBLJEdbnXdCMPNtOF8zhAzmT/jIV+x9s88nX+wmAKGWTaxwM p/VSIfGbq2SHnqm9vhD4SC+1o/KXbJWTAHQWI/XaOXE7SSEYeCC2LfxpweFR76D/wuU+ OIaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jxq0GoNMOrfMkh7Q+RRv6Q3I0KJxJA5pEEIoBSIidB8=; b=ULHSZej6kvMWSRwUh6hgK2SJrLjr/ADIgJOxKBD7QYQ+ygf59H2cKAk12yR55+a3h0 psT59q5yLROGgxJs38d6uF/sLeVkUFBuXUzDBYDTO4xfDEr4Av8reDxuONXvqt1uervp h/IsmhPCJGDhyYR4GEEKKNzpbStcmGY03kF8Pv606JDYkiju6atpa470jA3Q6Ysfy803 IIhe1RvUQKBwl05OwzMG72dYwWy1rQpB9uTf4hptWQAq6ef044whQ5SzPsgaSeIZJrwH 1V1gl0WkkArDJq3iG49ZJCpxHAeAdbNm54Of2jhl349OXwlX2KVnPAAsiNRKWkk8P9lJ BhxQ== X-Gm-Message-State: AOAM533uZYu5wcKnkhmcS5pw5zHRrsuMOzRYluhfg/qaW6pjlKiIPODi jdHV88aOPYkBPd7mRNNWzh0sw/xRTRs= X-Google-Smtp-Source: ABdhPJy1FkuciUn8+Brk5Jxam/ibTPHTPNoDlVEOEUp5RTLc2pUacSWIawC+MluoDG2c5paj5wRcog== X-Received: by 2002:a54:4f87:0:b0:324:ea60:b97d with SMTP id g7-20020a544f87000000b00324ea60b97dmr2394588oiy.87.1653601116098; Thu, 26 May 2022 14:38:36 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Bernhard Beschow Subject: [PULL 02/34] hw/ppc/e500: Remove unused BINARY_DEVICE_TREE_FILE Date: Thu, 26 May 2022 18:37:43 -0300 Message-Id: <20220526213815.92701-3-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::230; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x230.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653601449186100001 Content-Type: text/plain; charset="utf-8" From: Bernhard Beschow Commit 28290f37e20cda27574f15be9e9499493e3d0fe8 'PPC: E500: Generate device tree on reset' improved device tree generation and made BINARY_DEVICE_TREE_FILE obsolete. Signed-off-by: Bernhard Beschow Reviewed-by: Daniel Henrique Barboza Message-Id: <20220505161805.11116-8-shentey@gmail.com> Signed-off-by: Daniel Henrique Barboza --- hw/ppc/e500.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c index 2bc3dce1fb..7f7f5b3452 100644 --- a/hw/ppc/e500.c +++ b/hw/ppc/e500.c @@ -47,7 +47,6 @@ #include "hw/irq.h" =20 #define EPAPR_MAGIC (0x45504150) -#define BINARY_DEVICE_TREE_FILE "mpc8544ds.dtb" #define DTC_LOAD_PAD 0x1800000 #define DTC_PAD_MASK 0xFFFFF #define DTB_MAX_SIZE (8 * MiB) --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653601693; cv=none; d=zohomail.com; s=zohoarc; b=jMpweNeHW5wmMaUVTKeHSIFPkJOG+1PA21zT2mMbBPqEoZtd6zTHt+QzYrxgj57qs9TseLepYFenYLG9KiD2kHiBtpOeeE2IT+DN1Y3hLKlco9Kz7KuWvuHuPcAqG5RFTbDIDw+o2vVK5pT9yaaedOnp5VB/QBF4WJss4wo2qXA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653601693; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=oEG1c2405JUlm6OoEGtqQDpIyJt6yubMZhrta9vUA28=; b=cgvsuYbRCzfIL87R/vrcWtcXrGjzeLjcWjPiF6tXxyfXQcAkF3R7Chxz53qdiAoo0s5KwnYlyV+aN8gj0wkNkXSoHFLj/IkO8/19yr3BztwLoZOiyQHF7C/MGhSvouNu42HemQAyZ7A1WPxbdFWz1UDG4/2I0vkrx0iMQY5s4Kw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653601693935583.9211821382355; Thu, 26 May 2022 14:48:13 -0700 (PDT) Received: from localhost ([::1]:56734 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLL2-0006r7-RB for importer@patchew.org; Thu, 26 May 2022 17:48:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53270) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLBq-0000ju-Nd; Thu, 26 May 2022 17:38:42 -0400 Received: from mail-oa1-x2a.google.com ([2001:4860:4864:20::2a]:41748) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLBo-00085L-Nc; Thu, 26 May 2022 17:38:42 -0400 Received: by mail-oa1-x2a.google.com with SMTP id 586e51a60fabf-f2c296d320so3735402fac.8; Thu, 26 May 2022 14:38:40 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.38.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:38:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=oEG1c2405JUlm6OoEGtqQDpIyJt6yubMZhrta9vUA28=; b=OiV/69O2rhTYhMRyTp7AAWSm+Ay2msRi9U0v/96iQkk6Kn1KOA/WWNPRGDfmExy6S8 zuB7mZr4taHwMXk0+Hi99DS5j5JMsmkjh0TZdg5hCB6T3+CEtTv92GwZJLm3bbabqM4o Ic4Ia5dI47U2txmfZaEpzkq2z90PuxhF+DgQguG+MalsYxTf4SVFs9bDIvg4y8RtLKyk 7ciPD7JCDrsDK+MtyrvOFeBjyloAD9Wy+gJomGZrjzE2m9qv8VEUhMTPNMrKjXOEFeoQ /fucmcTkQEJGqd8+dOpU6hvAy7hRwvRCoy22/iygc3sTwP4VjQPewM3YbiCe7TyENEs2 JY2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=oEG1c2405JUlm6OoEGtqQDpIyJt6yubMZhrta9vUA28=; b=752AIvBV61R1QT36qRYe0h5rKauNHPE4vhUtesMDLIN8R90s7DQEuD0qezOKaAXyAR lKApsg5D36rnBHFXhwCJrs8qxietnffJ+hwVMhfgWytNTZzVGHET/p6WOROr4IF/iRjo Kzfn+kc0R/ufOASfrINBXw4rpq7Gu/1kArZcnX5/ZDILCJRZTc/Mb6FsBReX70UaNlCe 3BAor4BW9OfQgp8mqk+uyoYBLwJ+z+129upWNDTZhLJfBp0KVqkqDUb2X+9We4twxXOd hgIeqwysPkufN3tR1gDBl+pRDKzpI1IkCw8PiLq1cwCk31QefYV9Gp6L6lYiOLnkwxfb SCVw== X-Gm-Message-State: AOAM5335ie4GoIRRxejBcAihN82KQN8VJRA72T4nfTWUpoGoWZa50RA2 4zCmsCS/JhGx9sb4Q/wTNuPndXivYkk= X-Google-Smtp-Source: ABdhPJwQQ32y3b/F9SkYaXC1rhMqBmjW3A/tRgrq8kcklEHGKNT8CLwdQfWT9jhdCviTFCYzNd1Isw== X-Received: by 2002:a05:6870:5708:b0:db:2ef8:f220 with SMTP id k8-20020a056870570800b000db2ef8f220mr2484001oap.198.1653601118930; Thu, 26 May 2022 14:38:38 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Alexey Kardashevskiy , Joel Stanley , Fabiano Rosas Subject: [PULL 03/34] spapr: Use address from elf parser for kernel address Date: Thu, 26 May 2022 18:37:44 -0300 Message-Id: <20220526213815.92701-4-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:4860:4864:20::2a; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x2a.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653601694697100001 Content-Type: text/plain; charset="utf-8" From: Alexey Kardashevskiy tl;dr: This allows Big Endian zImage booting via -kernel + x-vof=3Don. QEMU loads the kernel at 0x400000 by default which works most of the time as Linux kernels are relocatable, 64bit and compiled with "-pie" (position independent code). This works for a little endian zImage too. However a big endian zImage is compiled without -pie, is 32bit, linked to 0x4000000 so current QEMU ends up loading it at 0x4400000 but keeps spapr->kernel_addr unchanged so booting fails. This uses the kernel address returned from load_elf(). If the default kernel_addr is used, there is no change in behavior (as translate_kernel_address() takes care of this), which is: LE/BE vmlinux and LE zImage boot, BE zImage does not. If the VM created with "-machine kernel-addr=3D0,x-vof=3Don", then QEMU prints a warning and BE zImage boots. Note #1: SLOF (x-vof=3Doff) still cannot boot a big endian zImage as SLOF enables MSR_SF for everything loaded by QEMU and this leads to early crash of 32bit zImage. Note #2: BE/LE vmlinux images set MSR_SF in early boot so these just work; a LE zImage restores MSR_SF after every CI call and we are lucky enough not to crash before the first CI call. Signed-off-by: Alexey Kardashevskiy Tested-by: Joel Stanley Reviewed-by: Fabiano Rosas Message-Id: <20220504065536.3534488-1-aik@ozlabs.ru> [danielhb: use PRIx64 instead of lx in warn_report] Signed-off-by: Daniel Henrique Barboza --- hw/ppc/spapr.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index d112b85b4f..fd4942e881 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -2975,14 +2975,16 @@ static void spapr_machine_init(MachineState *machin= e) } =20 if (kernel_filename) { + uint64_t loaded_addr =3D 0; + spapr->kernel_size =3D load_elf(kernel_filename, NULL, translate_kernel_address, spapr, - NULL, NULL, NULL, NULL, 1, + NULL, &loaded_addr, NULL, NULL, 1, PPC_ELF_MACHINE, 0, 0); if (spapr->kernel_size =3D=3D ELF_LOAD_WRONG_ENDIAN) { spapr->kernel_size =3D load_elf(kernel_filename, NULL, translate_kernel_address, spapr, - NULL, NULL, NULL, NULL, 0, + NULL, &loaded_addr, NULL, NULL, = 0, PPC_ELF_MACHINE, 0, 0); spapr->kernel_le =3D spapr->kernel_size > 0; } @@ -2992,6 +2994,13 @@ static void spapr_machine_init(MachineState *machine) exit(1); } =20 + if (spapr->kernel_addr !=3D loaded_addr) { + warn_report("spapr: kernel_addr changed from 0x%"PRIx64 + " to 0x%"PRIx64, + spapr->kernel_addr, loaded_addr); + spapr->kernel_addr =3D loaded_addr; + } + /* load initrd */ if (initrd_filename) { /* Try to locate the initrd in the gap between the kernel --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653601531; cv=none; d=zohomail.com; s=zohoarc; b=M6vo4sTeWczhPzMjtVscBu4E1YKOh0D0KLFkNo5z+B+AQTn5IBxhC7O5/2ecxUCchQ4k+nfLFQqnfWXRKFsaNbrUi/B/mSrQwN0r22Ex2JlWDuvWv/WiLwrMSvg1PTC/BH4ZCYbRJmqAmaOxqeFFTBgbJ7C7+XC7P5UpmhQkxsg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653601531; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=PyTl8+lSVsVjSgTsn48felgJQ6hKzAQD0I/3SyX7ojk=; b=g2nvpWeHpj0/X+f6pzR2vqgJJOs2gvXx31arEtbmf74SwwVAxarIrHTv2yrP1VESEUva1kp3XmDo5vvuHMt+AoJSbzm+cQ68tVUUTuq0Xbd7wNpg+jeCd91kDoG+gQlddFABOlk8igXnieYDd6q1ZNsxI+4kFQxhRRfbP4Osrqw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653601531645175.1992008424213; Thu, 26 May 2022 14:45:31 -0700 (PDT) Received: from localhost ([::1]:50118 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLIQ-00029F-Ae for importer@patchew.org; Thu, 26 May 2022 17:45:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53290) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLBu-0000uR-BG; Thu, 26 May 2022 17:38:46 -0400 Received: from mail-oa1-x36.google.com ([2001:4860:4864:20::36]:34931) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLBs-00085m-Gq; Thu, 26 May 2022 17:38:46 -0400 Received: by mail-oa1-x36.google.com with SMTP id 586e51a60fabf-f16a3e0529so3773631fac.2; Thu, 26 May 2022 14:38:43 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.38.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:38:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=PyTl8+lSVsVjSgTsn48felgJQ6hKzAQD0I/3SyX7ojk=; b=VE8tbp6HK6wpF6Yfk11fZyap6kAiIZiHiOVqxiSlIdusdiUGMCbyOOS/Of4aKrnJRy gvJc9awGbV/t3ONW7mq6xJ/asiSuXdpr2msyhqT8Q5u7B+6qp3meokn/2fAMjbyAjYUG V2zYyQyLinZi1GjWSRsT4KW03tErs8ahvPNtV4supf25qW6p3QtjfLYG+mbD7hUWo3xL yjbQTVp0tJ2WmRXN2nQUroM546cXDl88IdD87M8GI3fZUNhlrY9aatEBH0WhHtUvI0rK QbvyZ7u7UzpVziUmgo0OnBCuLRZ0mM59c+7O+CovixdxqDaws5lg3+XEVMBhy2lJfTkW kN4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=PyTl8+lSVsVjSgTsn48felgJQ6hKzAQD0I/3SyX7ojk=; b=I7S7ISjruSzldtaVKkCNsZHlOS9USogVLvPuQZhqmtoVsaLlv/bx0G+srMn1GckAMa x3fSARQ5XjNNEB9V71a+v1uGfAqTd9RVNkYWTDh8X7zHZKA/zvxy/BQEXD2JpWxQjKPM VToYqPvkv40N7EpGVqeodj6ls9jHnI2Ut97Kdng6zHWTlI0pLt750Dgn6yLGeuaPCjKX FGydy1ZBU4xCbtH+cMgB3/0Am/rYC6JhRdFklSal3b9oecEBnmAeAXhWqj5CAFqDTo0d 4Ps9ubLLmx4X9CV+uOrCH3GiKoN4whgTNiOQOLAJEj7slETqu5IEJYlfzC2dK2lwe+47 vNRg== X-Gm-Message-State: AOAM530PlH51MGDPxSQ/3TXHlssXFyPQL1JZUC4WqplRLpGV46Rh9II1 DSHpWXEMv9gNqExvqC2FNboHDDuhj88= X-Google-Smtp-Source: ABdhPJwuGqjC5FpPEcRM8PUTzPuRnTtPEU+epMKN+XrsvZLtjfLfoYqNvXaAVBvpbDPav7h4DP4ufQ== X-Received: by 2002:a05:6870:11cd:b0:e5:e565:9185 with SMTP id 13-20020a05687011cd00b000e5e5659185mr2402305oav.251.1653601122915; Thu, 26 May 2022 14:38:42 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Alexey Kardashevskiy Subject: [PULL 04/34] spapr/docs: Add a few words about x-vof Date: Thu, 26 May 2022 18:37:45 -0300 Message-Id: <20220526213815.92701-5-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:4860:4864:20::36; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x36.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653601533876100001 From: Alexey Kardashevskiy The alternative small firmware needs a few words of what it can and absolutely cannot do; this adds those words. Reviewed-by: Daniel Henrique Barboza Signed-off-by: Alexey Kardashevskiy Message-Id: <20220506055124.3822112-1-aik@ozlabs.ru> [danielhb: added linebreaks before and after table] Signed-off-by: Daniel Henrique Barboza --- docs/system/ppc/pseries.rst | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/docs/system/ppc/pseries.rst b/docs/system/ppc/pseries.rst index d9b65ad4e8..3e1bbe6726 100644 --- a/docs/system/ppc/pseries.rst +++ b/docs/system/ppc/pseries.rst @@ -32,14 +32,43 @@ Missing devices Firmware =3D=3D=3D=3D=3D=3D=3D=3D =20 +The pSeries platform in QEMU comes with 2 firmwares: + `SLOF `_ (Slimline Open Firmware) is an implementation of the `IEEE 1275-1994, Standard for Boot (Initialization Configuration) Firmware: Core Requirements and Practices `_. =20 +SLOF performs bus scanning, PCI resource allocation, provides the client +interface to boot from block devices and network. + QEMU includes a prebuilt image of SLOF which is updated when a more recent version is required. =20 +VOF (Virtual Open Firmware) is a minimalistic firmware to work with +``-machine pseries,x-vof=3Don``. When enabled, the firmware acts as a slim +shim and QEMU implements parts of the IEEE 1275 Open Firmware interface. + +VOF does not have device drivers, does not do PCI resource allocation and +relies on ``-kernel`` used with Linux kernels recent enough (v5.4+) +to PCI resource assignment. It is ideal to use with petitboot. + +Booting via ``-kernel`` supports the following: + ++-------------------+-------------------+------------------+ +| kernel | pseries,x-vof=3Doff | pseries,x-vof=3Don | ++=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D+ +| vmlinux BE | =E2=9C=93 | =E2=9C=93 = | ++-------------------+-------------------+------------------+ +| vmlinux LE | =E2=9C=93 | =E2=9C=93 = | ++-------------------+-------------------+------------------+ +| zImage.pseries BE | x | =E2=9C=93=C2=B9 | ++-------------------+-------------------+------------------+ +| zImage.pseries LE | =E2=9C=93 | =E2=9C=93 = | ++-------------------+-------------------+------------------+ + +=C2=B9 must set kernel-addr=3D0 + Build directions =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653601298; cv=none; d=zohomail.com; s=zohoarc; b=M3giyq0KnNuzY0VkPnf9Uwg+z3F4oDJFu9ULxi6VdT0sT1y5dFKFt5Hm4ZlkOgFHL9BV8HsWQyoncvyHzm9yQCBwya1SOvDJlPP4RptvVLODeDkowV11CMlsjT2A0zfVSSxZbMP4Ftd5W/YQlH25oNKulpacJVGLY9iKgMME7xU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653601298; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=7dSR9OjvRjkIla7RkOrlUUAfHLniqwB07am6FyyQQ80=; b=hckPraozYe43lJn1zjrIGc37Bi6O2TuPGSZihHYPAwYibLSgwJIZ7n0HRc75+XyvbIsBbu27EfqxCN1Gd0y/4mXmMXqS3aQv3axKyM9AKK5YbK+UYemAySUE5CVvgme9zgCdVB/Ke7dRQ1NCpLBuIxncI3tQIClS9z6tvrM6QUE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 165360129865868.73182160782324; Thu, 26 May 2022 14:41:38 -0700 (PDT) Received: from localhost ([::1]:40978 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLEe-0004Kf-SE for importer@patchew.org; Thu, 26 May 2022 17:41:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53316) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLBx-00011n-2y; Thu, 26 May 2022 17:38:49 -0400 Received: from mail-oa1-x29.google.com ([2001:4860:4864:20::29]:40784) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLBv-000861-JD; Thu, 26 May 2022 17:38:48 -0400 Received: by mail-oa1-x29.google.com with SMTP id 586e51a60fabf-f2cd424b9cso3749748fac.7; Thu, 26 May 2022 14:38:46 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.38.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:38:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7dSR9OjvRjkIla7RkOrlUUAfHLniqwB07am6FyyQQ80=; b=k5nixNwACHYh8f4hKT1FeeJspMtm4kJFBRsV9ySUvHVoexG7AxlWwg1InvaZV8GQ72 pJXNUQgTEI/6PLIGV7QfRC29AYfPY7n81AoxUfzByOfQFPXeVioz0l7HKmtzlvIlSvqv pmqq2xrL5Q8UG08c4BogWZanCu5JPwTc6gwKJGpXql/q/9nw337xKOF01/8GvPNKYuhm xedND/UJXK5gpojcGU7pGqvb494JwWMR6a+DLQprB8y+DtMQfjO8XOALdbNvAvyWnerG ZvsSKvgfjbp6Dt8hJwiiiTKz19M/aJ0XK6HPhfKZrfGUF/7ROHhLEkgJHqNfDugFpB1G SnWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=7dSR9OjvRjkIla7RkOrlUUAfHLniqwB07am6FyyQQ80=; b=CNlKKf+Z9fyKrPyT+8g/0ofXrHj3CiuvJhhW8lk+F8CxVdT7uNx5Lo7ipqb4AMT4oJ QMyoz0myEYdGHRaV/HF2TjDUjr3z6k0X0w4dahk3GuIVYiebrX/Lp4xLra8gVIlLo/km xfddbUs4yRKuMskIBu9820Ix8o3sklhQHMRY/HvzFwiHVQ3fLSKkOkw6r3N2DXleSzMB l33qXLd8/kqTfWXCdHQcPGhH6rA9QQj2nnYmeUkwgSP0cCwan+Bq6qJscXAjfTo28oqS lIMyxdw13fmx5/SEnl30mguO9u6Hp/DRpuM3xAlb8GdzMMKrBTDK9tN6RWNdBLCYLIHG q1zA== X-Gm-Message-State: AOAM533mwDfZJL2XfLMFsa2xm6u60LBUJnOCMxklU1+ZWPHY8YFaVxt9 Db93LvjuWp1v7Icl6oxTdUp6Y4JOEys= X-Google-Smtp-Source: ABdhPJxEbk7IU4WwtIvO+wVqnfHHAGVrqM5/RQJHXVam4Xzg/Xjuxuk9YA41hxZnGPh+ediTGbMveA== X-Received: by 2002:a05:6870:231f:b0:da:c15:fd43 with SMTP id w31-20020a056870231f00b000da0c15fd43mr2320090oao.135.1653601125921; Thu, 26 May 2022 14:38:45 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Murilo Opsfelder Araujo , Mark Cave-Ayland , Fabiano Rosas , Thomas Huth Subject: [PULL 05/34] mos6522: fix linking error when CONFIG_MOS6522 is not set Date: Thu, 26 May 2022 18:37:46 -0300 Message-Id: <20220526213815.92701-6-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:4860:4864:20::29; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x29.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653601300531100001 Content-Type: text/plain; charset="utf-8" From: Murilo Opsfelder Araujo When CONFIG_MOS6522 is not set, building ppc64-softmmu target fails: /usr/bin/ld: libqemu-ppc64-softmmu.fa.p/monitor_misc.c.o:(.data+0x1158): un= defined reference to `hmp_info_via' Make devices configuration available in hmp-commands*.hx and check for CONFIG_MOS6522. Fixes: 409e9f7131e5 (mos6522: add "info via" HMP command for debugging) Signed-off-by: Murilo Opsfelder Araujo Cc: Mark Cave-Ayland Cc: Fabiano Rosas Cc: Thomas Huth Reviewed-by: Thomas Huth Message-Id: <20220510235439.54775-1-muriloo@linux.ibm.com> Signed-off-by: Daniel Henrique Barboza --- hmp-commands-info.hx | 2 +- monitor/misc.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx index adfa085a9b..834bed089e 100644 --- a/hmp-commands-info.hx +++ b/hmp-commands-info.hx @@ -880,7 +880,7 @@ SRST Show intel SGX information. ERST =20 -#if defined(TARGET_M68K) || defined(TARGET_PPC) +#if defined(CONFIG_MOS6522) { .name =3D "via", .args_type =3D "", diff --git a/monitor/misc.c b/monitor/misc.c index 6c5bb82d3b..3d2312ba8d 100644 --- a/monitor/misc.c +++ b/monitor/misc.c @@ -84,6 +84,9 @@ #include "hw/s390x/storage-attributes.h" #endif =20 +/* Make devices configuration available for use in hmp-commands*.hx templa= tes */ +#include CONFIG_DEVICES + /* file descriptors passed via SCM_RIGHTS */ typedef struct mon_fd_t mon_fd_t; struct mon_fd_t { --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653601804; cv=none; d=zohomail.com; s=zohoarc; b=b2BaEsZvzypKZ9TSPMbdTr4LO6ouJAMX+BWd41Ebbz1ga7wJEb/B5ppVWggwSvppzM0E7DgYVbznuphvlBcLJb9f6DGNwycdvGdSJI4Q6LWSbnSp2BxxY9EaXVKo6iYZxtizR5fDL16jkhKWtVRxvQQRw8szIwJCF9WBBr7YV1A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653601804; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4ft0Fa8XBzPbz7+gPyhu1eqhDDIkHmDYvX80YvQHYfA=; b=IWvh2ZBdKRJz1BkKGJttrnZLjSuXVNPB+7N/jvCaHh473aF2gjDg9k1h71fNSH8U3Z/+7i8PTfx+VHxumJxlHfEZoHQEz3HYy8Bx8T8SG7kB5SvNQQCtTU1TohXuERVL0oAbcVNMpG59hXEeOE7BpxQIV9wFux4HLd+CtAViyOk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653601804673936.7193180425243; Thu, 26 May 2022 14:50:04 -0700 (PDT) Received: from localhost ([::1]:58506 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLMp-00086N-Ky for importer@patchew.org; Thu, 26 May 2022 17:50:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53348) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLC6-0001Md-MY; Thu, 26 May 2022 17:38:58 -0400 Received: from mail-oa1-x2d.google.com ([2001:4860:4864:20::2d]:37350) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLC4-00086h-4x; Thu, 26 May 2022 17:38:58 -0400 Received: by mail-oa1-x2d.google.com with SMTP id 586e51a60fabf-f2c8c0d5bdso3762032fac.4; Thu, 26 May 2022 14:38:55 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.38.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:38:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4ft0Fa8XBzPbz7+gPyhu1eqhDDIkHmDYvX80YvQHYfA=; b=NpX+kYZ0EadO7UKJK7LboLnu6XFRXZEjbdZdF5+AG0V8eCaiNmiGK17IodPXbmqD9E onOsGk/Yr5lbSYYOSYqsBHl9Z3HFbiufrJPLIh8Qf34b9+LJciPsjviF4Ai/Of/eILVn anr0Q0vlw3nl6LejEUDRU64LTISK+wvJKItyHDzOytPbwCP40GFSY9ztW8qNA08OiXfm wmP0rxPPdVIlBj0DorZZsRylWB9LA+hWPloVHHpfl5W5TAeAqCPpmBJZ6xiCstFU1JBm 3nr8eE+AIWrpoEufNWS1zJhrCold1iTcvgEtC5zZ3jIS3sCIto2OhlPs1pIHBMAPy8yZ oY0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4ft0Fa8XBzPbz7+gPyhu1eqhDDIkHmDYvX80YvQHYfA=; b=BlnaolVy3qeBOc3mLagNeFVGtecMqITOBIH3j3ra2y3J8FjAUxrPtdWReWm4XitX1I DW29E8USPrTXVm1Vo1MM7wbrzTJFNSLiKVH3k5t0QAAOZbbEHTGmUCH/U+zwALF922Gd sCoc0yqlNnALvIa9dbrHJwyVt6iPCFC5+p1zhy0rdiGsVLri44XCjtKxFDxFFhAeOelb To8Jp8LDluo64F3p2C3N5MxI49uC0FvEvXLMdqRZr5AG7ZyY1mIn45uJaHFlCzzmEYXB eJmokEgS36rxDDxcNmr+J3KAKfGQ3vI1nJMeklaQon00So+qg+ZoavjPgkbwkRc6CKsA hRSg== X-Gm-Message-State: AOAM531GDuPR+OGJCRRLRhN3BEMr1eOQbavNUshjWtBlm3S+8w5allvP ZvyK8lM6yp2Z1j0vATbRmJbyWd7RNLI= X-Google-Smtp-Source: ABdhPJw2Xv1SXngK78gYl+YyRJ9X6qA0MfCZpXZU6tH2rkWxJug2xxCT13eeUPahdiph7SXNGkHUeQ== X-Received: by 2002:a05:6870:c88a:b0:f2:8d92:318a with SMTP id er10-20020a056870c88a00b000f28d92318amr2395227oab.281.1653601129944; Thu, 26 May 2022 14:38:49 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Leandro Lupori , Fabiano Rosas Subject: [PULL 06/34] target/ppc: Fix tlbie Date: Thu, 26 May 2022 18:37:47 -0300 Message-Id: <20220526213815.92701-7-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:4860:4864:20::2d; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x2d.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653601805364100001 Content-Type: text/plain; charset="utf-8" From: Leandro Lupori Commit 74c4912f097bab98 changed check_tlb_flush() to use tlb_flush_all_cpus_synced() instead of calling tlb_flush() on each CPU. However, as side effect of this, a CPU executing a ptesync after a tlbie will have its TLB flushed only after exiting its current Translation Block (TB). This causes memory accesses to invalid pages to succeed, if they happen to be on the same TB as the ptesync. To fix this, use tlb_flush_all_cpus() instead, that immediately flushes the TLB of the CPU executing the ptesync instruction. Fixes: 74c4912f097bab98 ("target/ppc: Fix synchronization of mttcg with bro= adcast TLB flushes") Signed-off-by: Leandro Lupori Reviewed-by: Fabiano Rosas Message-Id: <20220503163904.22575-1-leandro.lupori@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/helper_regs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/ppc/helper_regs.c b/target/ppc/helper_regs.c index 6159a15b7b..12235ea2e9 100644 --- a/target/ppc/helper_regs.c +++ b/target/ppc/helper_regs.c @@ -292,7 +292,7 @@ void check_tlb_flush(CPUPPCState *env, bool global) if (global && (env->tlb_need_flush & TLB_NEED_GLOBAL_FLUSH)) { env->tlb_need_flush &=3D ~TLB_NEED_GLOBAL_FLUSH; env->tlb_need_flush &=3D ~TLB_NEED_LOCAL_FLUSH; - tlb_flush_all_cpus_synced(cs); + tlb_flush_all_cpus(cs); return; } =20 --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653601981; cv=none; d=zohomail.com; s=zohoarc; b=cfZkdHy3dOU5ec+aFVJe0ec/VyjnHyBWBsxmLjpX77Y3k+PFb3dKb4Laz7ysctG4Y8Vssf9nZJMsQKtFXo2AGoqKwj0anupTAQ1ilRK4dpuKuJ2gYwXxJRTHvwHOfKSclPpH+Uot4OGtf9xMUqLAoDio3wsPgKFLqtFXroukGWk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653601981; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=I4pijh2CE2pq7IlCVu8u4/Tbl3iIG/PPtzEBjS4UC3I=; b=H7Ad+IzJeQJmCwHQhN13wVpRD7DVmd4K0tm6AovXlk5KysD3+zeucm05tON/YpkyZC8uYVB69Zmdn+LkefbwXmrTdbfFwr819g45J64x5nMIh6Xi0zpRXpDpBqsLvpYCiVwtJLXOfC8KofGvdK5hXD4SOG58CHOuquqEuNXfyX0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653601981644951.1490814031758; Thu, 26 May 2022 14:53:01 -0700 (PDT) Received: from localhost ([::1]:38512 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLPg-0005dn-IX for importer@patchew.org; Thu, 26 May 2022 17:53:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53372) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLC8-0001T0-VZ; Thu, 26 May 2022 17:39:01 -0400 Received: from mail-oi1-x233.google.com ([2607:f8b0:4864:20::233]:38660) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLC6-00086s-Bi; Thu, 26 May 2022 17:39:00 -0400 Received: by mail-oi1-x233.google.com with SMTP id v9so3649746oie.5; Thu, 26 May 2022 14:38:57 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.38.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:38:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=I4pijh2CE2pq7IlCVu8u4/Tbl3iIG/PPtzEBjS4UC3I=; b=OMYhbgNwXgmY12tTmkaI6n9L3InHtuyCMC6tWcak45LosEw0KL+UDa9sd6ecgfrxdZ 52TVqILwpqki7pax0S8S2i6xt+3uum6vED6OuhWkCPyG3EBzXeE74tAjmWKbND9cHkrf ShyjKI/UlLBsSYpQ1Eae9gnr/j7drnAn7aZJgnwU1Cy07UyG19+O7sodxM9+uQiDh5nz L4eP2o6Z5BwqzFAVr5XoWEagp4XKIG7dovRO0El3dWyfx8AuNcYAAfrAAvsOFMhbG0za dDGStrK9Z3YPaDh+Dos9ghmKrQLvschNYGAeJSXPgy8ZS+iJmZA2CKwDAj4kOtLOcqc/ 7Ztw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=I4pijh2CE2pq7IlCVu8u4/Tbl3iIG/PPtzEBjS4UC3I=; b=DbQK3e1NMicgqA1xt2wNfdPNAaNKhAt+tRiFMkPCCV5RIK/4zFcrXsGuXn2mkmp32c zk6S1oWxFQx6clc/SWyY8wWM5sYqNFdtHWCeHn9zmdTWqBjY8trT8SzmrIVC0FBE0nJZ tl4msguoPGWZzMRGjBoXuaaoQCxpExOpxDhTegx1tfRgIuB8zV74w5kWwLZQlbwUk2a9 1dXpp9Sf7//ZsHjJmkStyp7jSIvQTKa6M/+c2BF4aOy/ckCkvGvzonqaD6y2bOEfouau IOMhD1av4ElSumb6nvIWId8aJuGDGKVmxOe+P4QPwn5KTXmUE7i9u3C4T8gcAf+xf06F gmaw== X-Gm-Message-State: AOAM530AK+96WcwzlZYjUsyoV5Csjj6pdcGVcvsVTnvk+60kJDRZQQni c3zZKjNpmYSHOlYcLYqvZ8YpgE4WqQM= X-Google-Smtp-Source: ABdhPJw/ntbZnX2XXcZEEep6o/7oYe4s6Xi0OlD3oZFmNzR8SgTY7om5I3e7fttnNroGFVpgiWJMUw== X-Received: by 2002:a05:6808:221a:b0:32b:9564:c949 with SMTP id bd26-20020a056808221a00b0032b9564c949mr2255804oib.149.1653601136171; Thu, 26 May 2022 14:38:56 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, =?UTF-8?q?V=C3=ADctor=20Colombo?= Subject: [PULL 07/34] target/ppc: Fix FPSCR.FI bit being cleared when it shouldn't Date: Thu, 26 May 2022 18:37:48 -0300 Message-Id: <20220526213815.92701-8-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::233; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x233.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653601983362100001 From: V=C3=ADctor Colombo According to Power ISA, the FI bit in FPSCR is non-sticky. This means that if an instruction is said to modify the FI bit, then it should be set or cleared depending on the result of the instruction. Otherwise, it should be kept as was before. However, the following inconsistency was found when comparing results from the hardware (tested on both a Power 9 processor and in Power 10 Mambo): (FI bit is set before the execution of the instruction) Hardware: xscmpeqdp(0xff..ff, 0xff..ff) =3D FI: SET -> SET QEMU: xscmpeqdp(0xff..ff, 0xff..ff) =3D FI: SET -> CLEARED As the FI bit is non-sticky, and xscmpeqdp does not list it as a field that is changed by the instruction, it should not be changed after its execution. This is happening to multiple instructions in the vsx implementations. If the ISA does not list the FI bit as altered for a particular instruction, then it should be kept as it was before the instruction. QEMU is not following this behavior. Affected instructions include: - xv* (all vsx-vector instructions); - xscmp*, xsmax*, xsmin*; - xstdivdp and similars; (to identify the affected instructions, just search in the ISA for the instructions that does not list FI in "Special Registers Altered") Most instructions use the function do_float_check_status() to commit changes in the inexact flag. So the fix is to add a parameter to it that will control if the bit FI should be changed or not. All users of do_float_check_status() are then modified to provide this argument, controlling if that specific instruction changes bit FI or not. Some macro helpers are responsible for both instructions that change and instructions that aren't suposed to change FI. This seems to always overlap with the sfprf flag. So, reuse this flag for this purpose when applicable. Signed-off-by: V=C3=ADctor Colombo Reviewed-by: Richard Henderson Message-Id: <20220517161522.36132-2-victor.colombo@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/cpu.h | 2 + target/ppc/fpu_helper.c | 122 +++++++++++++++++++++------------------- 2 files changed, 66 insertions(+), 58 deletions(-) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index 48596cfb25..901ded79e9 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -735,6 +735,8 @@ enum { (1 << FPSCR_VXSOFT) | (1 << FPSCR_VXSQRT) | \ (1 << FPSCR_VXCVI)) =20 +FIELD(FPSCR, FI, FPSCR_FI, 1) + #define FP_DRN2 (1ull << FPSCR_DRN2) #define FP_DRN1 (1ull << FPSCR_DRN1) #define FP_DRN0 (1ull << FPSCR_DRN0) diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index f6c8318a71..f1ea4aa10e 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -370,7 +370,6 @@ static inline void float_inexact_excp(CPUPPCState *env) { CPUState *cs =3D env_cpu(env); =20 - env->fpscr |=3D FP_FI; env->fpscr |=3D FP_XX; /* Update the floating-point exception summary */ env->fpscr |=3D FP_FX; @@ -462,7 +461,8 @@ void helper_fpscr_check_status(CPUPPCState *env) } } =20 -static void do_float_check_status(CPUPPCState *env, uintptr_t raddr) +static void do_float_check_status(CPUPPCState *env, bool change_fi, + uintptr_t raddr) { CPUState *cs =3D env_cpu(env); int status =3D get_float_exception_flags(&env->fp_status); @@ -474,8 +474,10 @@ static void do_float_check_status(CPUPPCState *env, ui= ntptr_t raddr) } if (status & float_flag_inexact) { float_inexact_excp(env); - } else { - env->fpscr &=3D ~FP_FI; /* clear the FPSCR[FI] bit */ + } + if (change_fi) { + env->fpscr =3D FIELD_DP64(env->fpscr, FPSCR, FI, + !!(status & float_flag_inexact)); } =20 if (cs->exception_index =3D=3D POWERPC_EXCP_PROGRAM && @@ -490,7 +492,7 @@ static void do_float_check_status(CPUPPCState *env, uin= tptr_t raddr) =20 void helper_float_check_status(CPUPPCState *env) { - do_float_check_status(env, GETPC()); + do_float_check_status(env, true, GETPC()); } =20 void helper_reset_fpstatus(CPUPPCState *env) @@ -684,7 +686,7 @@ uint64_t helper_##op(CPUPPCState *env, uint64_t arg) = \ } else { \ farg.d =3D cvtr(arg, &env->fp_status); \ } \ - do_float_check_status(env, GETPC()); \ + do_float_check_status(env, true, GETPC()); \ return farg.ll; \ } =20 @@ -710,7 +712,7 @@ static uint64_t do_fri(CPUPPCState *env, uint64_t arg, =20 /* fri* does not set FPSCR[XX] */ set_float_exception_flags(flags & ~float_flag_inexact, &env->fp_status= ); - do_float_check_status(env, GETPC()); + do_float_check_status(env, true, GETPC()); =20 return arg; } @@ -1721,7 +1723,7 @@ void helper_##name(CPUPPCState *env, ppc_vsr_t *xt, = \ } = \ } = \ *xt =3D t; = \ - do_float_check_status(env, GETPC()); = \ + do_float_check_status(env, sfprf, GETPC()); = \ } =20 VSX_ADD_SUB(xsadddp, add, 1, float64, VsrD(0), 1, 0) @@ -1757,7 +1759,7 @@ void helper_xsaddqp(CPUPPCState *env, uint32_t opcode, helper_compute_fprf_float128(env, t.f128); =20 *xt =3D t; - do_float_check_status(env, GETPC()); + do_float_check_status(env, true, GETPC()); } =20 /* @@ -1798,7 +1800,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, = \ } = \ = \ *xt =3D t; = \ - do_float_check_status(env, GETPC()); = \ + do_float_check_status(env, sfprf, GETPC()); = \ } =20 VSX_MUL(xsmuldp, 1, float64, VsrD(0), 1, 0) @@ -1828,7 +1830,7 @@ void helper_xsmulqp(CPUPPCState *env, uint32_t opcode, helper_compute_fprf_float128(env, t.f128); =20 *xt =3D t; - do_float_check_status(env, GETPC()); + do_float_check_status(env, true, GETPC()); } =20 /* @@ -1872,7 +1874,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, = \ } = \ = \ *xt =3D t; = \ - do_float_check_status(env, GETPC()); = \ + do_float_check_status(env, sfprf, GETPC()); = \ } =20 VSX_DIV(xsdivdp, 1, float64, VsrD(0), 1, 0) @@ -1905,7 +1907,7 @@ void helper_xsdivqp(CPUPPCState *env, uint32_t opcode, =20 helper_compute_fprf_float128(env, t.f128); *xt =3D t; - do_float_check_status(env, GETPC()); + do_float_check_status(env, true, GETPC()); } =20 /* @@ -1940,7 +1942,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc= _vsr_t *xb) \ } = \ = \ *xt =3D t; = \ - do_float_check_status(env, GETPC()); = \ + do_float_check_status(env, sfprf, GETPC()); = \ } =20 VSX_RE(xsredp, 1, float64, VsrD(0), 1, 0) @@ -1985,7 +1987,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc= _vsr_t *xb) \ } = \ = \ *xt =3D t; = \ - do_float_check_status(env, GETPC()); = \ + do_float_check_status(env, sfprf, GETPC()); = \ } =20 VSX_SQRT(xssqrtdp, 1, float64, VsrD(0), 1, 0) @@ -2029,7 +2031,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc= _vsr_t *xb) \ } = \ = \ *xt =3D t; = \ - do_float_check_status(env, GETPC()); = \ + do_float_check_status(env, sfprf, GETPC()); = \ } =20 VSX_RSQRTE(xsrsqrtedp, 1, float64, VsrD(0), 1, 0) @@ -2182,7 +2184,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, = \ } = \ } = \ *xt =3D t; = \ - do_float_check_status(env, GETPC()); = \ + do_float_check_status(env, sfprf, GETPC()); = \ } =20 VSX_MADD(XSMADDDP, 1, float64, VsrD(0), MADD_FLGS, 1) @@ -2234,7 +2236,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc= _vsr_t *s1, ppc_vsr_t *s2,\ = \ helper_compute_fprf_float128(env, t.f128); = \ *xt =3D t; = \ - do_float_check_status(env, GETPC()); = \ + do_float_check_status(env, true, GETPC()); = \ } =20 VSX_MADDQ(XSMADDQP, MADD_FLGS, 0) @@ -2283,7 +2285,7 @@ VSX_MADDQ(XSNMSUBQPO, NMSUB_FLGS, 0) = \ memset(xt, 0, sizeof(*xt)); = \ memset(&xt->fld, -r, sizeof(xt->fld)); = \ - do_float_check_status(env, GETPC()); = \ + do_float_check_status(env, false, GETPC()); = \ } =20 VSX_SCALAR_CMP(XSCMPEQDP, float64, eq, VsrD(0), 0) @@ -2319,7 +2321,7 @@ void helper_xscmpexpdp(CPUPPCState *env, uint32_t opc= ode, env->fpscr |=3D cc << FPSCR_FPCC; env->crf[BF(opcode)] =3D cc; =20 - do_float_check_status(env, GETPC()); + do_float_check_status(env, false, GETPC()); } =20 void helper_xscmpexpqp(CPUPPCState *env, uint32_t opcode, @@ -2348,7 +2350,7 @@ void helper_xscmpexpqp(CPUPPCState *env, uint32_t opc= ode, env->fpscr |=3D cc << FPSCR_FPCC; env->crf[BF(opcode)] =3D cc; =20 - do_float_check_status(env, GETPC()); + do_float_check_status(env, false, GETPC()); } =20 static inline void do_scalar_cmp(CPUPPCState *env, ppc_vsr_t *xa, ppc_vsr_= t *xb, @@ -2401,7 +2403,7 @@ static inline void do_scalar_cmp(CPUPPCState *env, pp= c_vsr_t *xa, ppc_vsr_t *xb, float_invalid_op_vxvc(env, 0, GETPC()); } =20 - do_float_check_status(env, GETPC()); + do_float_check_status(env, false, GETPC()); } =20 void helper_xscmpodp(CPUPPCState *env, uint32_t opcode, ppc_vsr_t *xa, @@ -2466,7 +2468,7 @@ static inline void do_scalar_cmpq(CPUPPCState *env, p= pc_vsr_t *xa, float_invalid_op_vxvc(env, 0, GETPC()); } =20 - do_float_check_status(env, GETPC()); + do_float_check_status(env, false, GETPC()); } =20 void helper_xscmpoqp(CPUPPCState *env, uint32_t opcode, ppc_vsr_t *xa, @@ -2505,7 +2507,7 @@ void helper_##name(CPUPPCState *env, ppc_vsr_t *xt, = \ } = \ = \ *xt =3D t; = \ - do_float_check_status(env, GETPC()); = \ + do_float_check_status(env, false, GETPC()); = \ } =20 VSX_MAX_MIN(xsmaxdp, maxnum, 1, float64, VsrD(0)) @@ -2688,7 +2690,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc= _vsr_t *xb) \ } \ \ *xt =3D t; \ - do_float_check_status(env, GETPC()); \ + do_float_check_status(env, sfprf, GETPC()); \ } =20 VSX_CVT_FP_TO_FP(xscvspdp, 1, float32, float64, VsrW(0), VsrD(0), 1) @@ -2714,7 +2716,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc= _vsr_t *xb) \ } \ \ *xt =3D t; \ - do_float_check_status(env, GETPC()); \ + do_float_check_status(env, sfprf, GETPC()); \ } =20 VSX_CVT_FP_TO_FP2(xvcvdpsp, 2, float64, float32, 0) @@ -2750,7 +2752,7 @@ void helper_##op(CPUPPCState *env, uint32_t opcode, = \ } \ \ *xt =3D t; \ - do_float_check_status(env, GETPC()); \ + do_float_check_status(env, true, GETPC()); \ } =20 VSX_CVT_FP_TO_FP_VECTOR(xscvdpqp, 1, float64, float128, VsrD(0), f128, 1) @@ -2785,7 +2787,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc= _vsr_t *xb) \ } \ \ *xt =3D t; \ - do_float_check_status(env, GETPC()); \ + do_float_check_status(env, sfprf, GETPC()); \ } =20 VSX_CVT_FP_TO_FP_HP(xscvdphp, 1, float64, float16, VsrD(0), VsrH(3), 1) @@ -2810,7 +2812,7 @@ void helper_XVCVSPBF16(CPUPPCState *env, ppc_vsr_t *x= t, ppc_vsr_t *xb) } =20 *xt =3D t; - do_float_check_status(env, GETPC()); + do_float_check_status(env, false, GETPC()); } =20 void helper_XSCVQPDP(CPUPPCState *env, uint32_t ro, ppc_vsr_t *xt, @@ -2833,7 +2835,7 @@ void helper_XSCVQPDP(CPUPPCState *env, uint32_t ro, p= pc_vsr_t *xt, helper_compute_fprf_float64(env, t.VsrD(0)); =20 *xt =3D t; - do_float_check_status(env, GETPC()); + do_float_check_status(env, true, GETPC()); } =20 uint64_t helper_xscvdpspn(CPUPPCState *env, uint64_t xb) @@ -2889,9 +2891,10 @@ uint64_t helper_xscvspdpn(CPUPPCState *env, uint64_t= xb) * ttp - target type (int32, uint32, int64 or uint64) * sfld - source vsr_t field * tfld - target vsr_t field + * sfi - set FI * rnan - resulting NaN */ -#define VSX_CVT_FP_TO_INT(op, nels, stp, ttp, sfld, tfld, rnan) = \ +#define VSX_CVT_FP_TO_INT(op, nels, stp, ttp, sfld, tfld, sfi, rnan) = \ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc_vsr_t *xb) = \ { = \ int all_flags =3D env->fp_status.float_exception_flags, flags; = \ @@ -2910,20 +2913,23 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, p= pc_vsr_t *xb) \ = \ *xt =3D t; = \ env->fp_status.float_exception_flags =3D all_flags; = \ - do_float_check_status(env, GETPC()); = \ + do_float_check_status(env, sfi, GETPC()); = \ } =20 -VSX_CVT_FP_TO_INT(xscvdpsxds, 1, float64, int64, VsrD(0), VsrD(0), \ +VSX_CVT_FP_TO_INT(xscvdpsxds, 1, float64, int64, VsrD(0), VsrD(0), true, \ 0x8000000000000000ULL) -VSX_CVT_FP_TO_INT(xscvdpuxds, 1, float64, uint64, VsrD(0), VsrD(0), 0ULL) -VSX_CVT_FP_TO_INT(xvcvdpsxds, 2, float64, int64, VsrD(i), VsrD(i), \ +VSX_CVT_FP_TO_INT(xscvdpuxds, 1, float64, uint64, VsrD(0), VsrD(0), true, = 0ULL) +VSX_CVT_FP_TO_INT(xvcvdpsxds, 2, float64, int64, VsrD(i), VsrD(i), false, \ 0x8000000000000000ULL) -VSX_CVT_FP_TO_INT(xvcvdpuxds, 2, float64, uint64, VsrD(i), VsrD(i), 0ULL) -VSX_CVT_FP_TO_INT(xvcvspsxds, 2, float32, int64, VsrW(2 * i), VsrD(i), \ +VSX_CVT_FP_TO_INT(xvcvdpuxds, 2, float64, uint64, VsrD(i), VsrD(i), false,= \ + 0ULL) +VSX_CVT_FP_TO_INT(xvcvspsxds, 2, float32, int64, VsrW(2 * i), VsrD(i), fal= se, \ 0x8000000000000000ULL) -VSX_CVT_FP_TO_INT(xvcvspsxws, 4, float32, int32, VsrW(i), VsrW(i), 0x80000= 000U) -VSX_CVT_FP_TO_INT(xvcvspuxds, 2, float32, uint64, VsrW(2 * i), VsrD(i), 0U= LL) -VSX_CVT_FP_TO_INT(xvcvspuxws, 4, float32, uint32, VsrW(i), VsrW(i), 0U) +VSX_CVT_FP_TO_INT(xvcvspsxws, 4, float32, int32, VsrW(i), VsrW(i), false, \ + 0x80000000ULL) +VSX_CVT_FP_TO_INT(xvcvspuxds, 2, float32, uint64, VsrW(2 * i), VsrD(i), \ + false, 0ULL) +VSX_CVT_FP_TO_INT(xvcvspuxws, 4, float32, uint32, VsrW(i), VsrW(i), false,= 0U) =20 #define VSX_CVT_FP_TO_INT128(op, tp, rnan) = \ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc_vsr_t *xb) = \ @@ -2940,7 +2946,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc= _vsr_t *xb) \ } = \ = \ *xt =3D t; = \ - do_float_check_status(env, GETPC()); = \ + do_float_check_status(env, true, GETPC()); = \ } =20 VSX_CVT_FP_TO_INT128(XSCVQPUQZ, uint128, 0) @@ -2955,7 +2961,7 @@ VSX_CVT_FP_TO_INT128(XSCVQPSQZ, int128, 0x80000000000= 00000ULL); * words 0 and 1 (and words 2 and 3) of the result register, as * is required by this version of the architecture. */ -#define VSX_CVT_FP_TO_INT2(op, nels, stp, ttp, rnan) = \ +#define VSX_CVT_FP_TO_INT2(op, nels, stp, ttp, sfi, rnan) = \ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc_vsr_t *xb) = \ { = \ int all_flags =3D env->fp_status.float_exception_flags, flags; = \ @@ -2977,13 +2983,13 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, p= pc_vsr_t *xb) \ = \ *xt =3D t; = \ env->fp_status.float_exception_flags =3D all_flags; = \ - do_float_check_status(env, GETPC()); = \ + do_float_check_status(env, sfi, GETPC()); = \ } =20 -VSX_CVT_FP_TO_INT2(xscvdpsxws, 1, float64, int32, 0x80000000U) -VSX_CVT_FP_TO_INT2(xscvdpuxws, 1, float64, uint32, 0U) -VSX_CVT_FP_TO_INT2(xvcvdpsxws, 2, float64, int32, 0x80000000U) -VSX_CVT_FP_TO_INT2(xvcvdpuxws, 2, float64, uint32, 0U) +VSX_CVT_FP_TO_INT2(xscvdpsxws, 1, float64, int32, true, 0x80000000U) +VSX_CVT_FP_TO_INT2(xscvdpuxws, 1, float64, uint32, true, 0U) +VSX_CVT_FP_TO_INT2(xvcvdpsxws, 2, float64, int32, false, 0x80000000U) +VSX_CVT_FP_TO_INT2(xvcvdpuxws, 2, float64, uint32, false, 0U) =20 /* * VSX_CVT_FP_TO_INT_VECTOR - VSX floating point to integer conversion @@ -3008,7 +3014,7 @@ void helper_##op(CPUPPCState *env, uint32_t opcode, = \ } = \ = \ *xt =3D t; = \ - do_float_check_status(env, GETPC()); = \ + do_float_check_status(env, true, GETPC()); = \ } =20 VSX_CVT_FP_TO_INT_VECTOR(xscvqpsdz, float128, int64, f128, VsrD(0), = \ @@ -3047,7 +3053,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc= _vsr_t *xb) \ } \ \ *xt =3D t; \ - do_float_check_status(env, GETPC()); \ + do_float_check_status(env, sfprf, GETPC()); \ } =20 VSX_CVT_INT_TO_FP(xscvsxddp, 1, int64, float64, VsrD(0), VsrD(0), 1, 0) @@ -3073,7 +3079,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc= _vsr_t *xb) \ } \ \ *xt =3D t; \ - do_float_check_status(env, GETPC()); \ + do_float_check_status(env, false, GETPC()); \ } =20 VSX_CVT_INT_TO_FP2(xvcvsxdsp, int64, float32) @@ -3085,7 +3091,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc= _vsr_t *xb)\ helper_reset_fpstatus(env); \ xt->f128 =3D tp##_to_float128(xb->s128, &env->fp_status); \ helper_compute_fprf_float128(env, xt->f128); \ - do_float_check_status(env, GETPC()); \ + do_float_check_status(env, true, GETPC()); \ } =20 VSX_CVT_INT128_TO_FP(XSCVUQQP, uint128); @@ -3109,7 +3115,7 @@ void helper_##op(CPUPPCState *env, uint32_t opcode, = \ helper_compute_fprf_##ttp(env, t.tfld); \ \ *xt =3D t; \ - do_float_check_status(env, GETPC()); \ + do_float_check_status(env, true, GETPC()); \ } =20 VSX_CVT_INT_TO_FP_VECTOR(xscvsdqp, int64, float128, VsrD(0), f128) @@ -3167,7 +3173,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc= _vsr_t *xb) \ } \ \ *xt =3D t; \ - do_float_check_status(env, GETPC()); \ + do_float_check_status(env, sfprf, GETPC()); \ } =20 VSX_ROUND(xsrdpi, 1, float64, VsrD(0), float_round_ties_away, 1) @@ -3195,7 +3201,7 @@ uint64_t helper_xsrsp(CPUPPCState *env, uint64_t xb) uint64_t xt =3D do_frsp(env, xb, GETPC()); =20 helper_compute_fprf_float64(env, xt); - do_float_check_status(env, GETPC()); + do_float_check_status(env, true, GETPC()); return xt; } =20 @@ -3355,7 +3361,7 @@ void helper_xsrqpi(CPUPPCState *env, uint32_t opcode, } =20 helper_compute_fprf_float128(env, t.f128); - do_float_check_status(env, GETPC()); + do_float_check_status(env, true, GETPC()); *xt =3D t; } =20 @@ -3408,7 +3414,7 @@ void helper_xsrqpxp(CPUPPCState *env, uint32_t opcode, =20 helper_compute_fprf_float128(env, t.f128); *xt =3D t; - do_float_check_status(env, GETPC()); + do_float_check_status(env, true, GETPC()); } =20 void helper_xssqrtqp(CPUPPCState *env, uint32_t opcode, @@ -3434,7 +3440,7 @@ void helper_xssqrtqp(CPUPPCState *env, uint32_t opcod= e, =20 helper_compute_fprf_float128(env, t.f128); *xt =3D t; - do_float_check_status(env, GETPC()); + do_float_check_status(env, true, GETPC()); } =20 void helper_xssubqp(CPUPPCState *env, uint32_t opcode, @@ -3460,5 +3466,5 @@ void helper_xssubqp(CPUPPCState *env, uint32_t opcode, =20 helper_compute_fprf_float128(env, t.f128); *xt =3D t; - do_float_check_status(env, GETPC()); + do_float_check_status(env, true, GETPC()); } --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653602248; cv=none; d=zohomail.com; s=zohoarc; b=TdXoAvdUqEfF3yscp5bPaG9vXJkRRngnmxe0O+F2yXWctBpwrEHmlxd8jUxFo5JQYVIClMrOVS3mlt2fP46GmicdC8S9o66kvJ9rqq8T4yBfIxoCljSUSIHsO529KlC3FDZLZJVRA9qy+YNii7tG5O8SJpvkRcQwwDpCbh3laew= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653602248; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=J848FYSgRu6IL+DQp4slez9fVUZ6cS0EFjZXM7XkCPQ=; b=ft7xO0xs27bm4sX7PdGht+93gg+jYaUhywpbEpyb/6KGYB8EEaV/XUf7LmS++ij+8q6xNLhZ2ObkOsUSrKRv5laEAtuXnb8yQInOgHk0Z1u8KCkk6h182SeG268MVDNc2ApgtrM6Vm7FD2jLhsJFz4YMk7t3ecSUnEs8GbpaNe4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653602248009618.79651215825; Thu, 26 May 2022 14:57:28 -0700 (PDT) Received: from localhost ([::1]:46992 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLTy-0003EJ-N0 for importer@patchew.org; Thu, 26 May 2022 17:57:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53428) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCH-0001oT-Te; Thu, 26 May 2022 17:39:11 -0400 Received: from mail-ot1-x336.google.com ([2607:f8b0:4864:20::336]:36633) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLC8-000878-I8; Thu, 26 May 2022 17:39:09 -0400 Received: by mail-ot1-x336.google.com with SMTP id e11-20020a9d6e0b000000b0060afcbafa80so1832793otr.3; Thu, 26 May 2022 14:38:59 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.38.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:38:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=J848FYSgRu6IL+DQp4slez9fVUZ6cS0EFjZXM7XkCPQ=; b=bdbCTjVyyFSkWwI3PyLheLIo8GvH/Awe7hTrdcskM7zF0wzTgeEh4Twt/MRWNg/Vxn GCrHCVpgYOVUfPuXN8T0UBYdcUMq5jkN+YN0W8tTyl2+tXFvSjisYYy4ZIRJMfdrxIgu SzJjNkwVSFUOBczwxHy/h1cz1NTVuKJGR9xjLb/M/XSL0/gFFMDdYxbxkrY1o6e7QaAz 9eI0jCOfp36C4unf9s8BwHlbmmVQAlzcsHOnHG5svsYSSPJbWiRlTIubu3Z3cqq8ccFG sry2zlLm6WrNtsN0WodggbNrLxZK5REu7gUxQ1BPenaBAgZHjgm1pSTIqwXJzdrU8qU9 BIhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=J848FYSgRu6IL+DQp4slez9fVUZ6cS0EFjZXM7XkCPQ=; b=qZvEiYoQADMiVDTMmHHYvbn4LdZpe9JTXxt3nA9cMdF0ttBVou1Jj9bFObhg3Hta4U cWd4TAPSUkC6SYccdjBDdCNmYmm7816aCYg5Zjw32D35dR101RlURqe7vz3aS6u+sLRm g7AUH+BEhwUxM1JvxP4Lvpn4MeaFIuNVdi/ijKhPYW/FgQpeFRrFRg+ARyK2HS5fesXG OTvfiXyxTd1dT6IzWNlE2aNF6e9W/SKP0GLBOvcAa1Cvxy0rBNyXTb7PFHqDyy1DZDnx Xvw532ohLHCHwV+Orr7aY9mh7Mij9bpbrdE5iQBzF4gCl59/znhjc2iBEl0tWvfb6uSJ lCOw== X-Gm-Message-State: AOAM532g+JEfbyTbhQ+BrRZdf+Zrj+LTSPPBJi3zlfWpv9ubjunEFxk/ 5SoiS4se9DxBKFTreaHhvFupHABcoc0= X-Google-Smtp-Source: ABdhPJx01Z/8+nb4UXmJDvsMUmNUohHs7stZgznlJ73UFOPEip5utHoTzAltzSy7Lwj8s0U5kawmkw== X-Received: by 2002:a05:6830:2647:b0:60b:138f:5254 with SMTP id f7-20020a056830264700b0060b138f5254mr9135792otu.218.1653601138973; Thu, 26 May 2022 14:38:58 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, =?UTF-8?q?V=C3=ADctor=20Colombo?= , Rashmica Gupta Subject: [PULL 08/34] target/ppc: Fix FPSCR.FI changing in float_overflow_excp() Date: Thu, 26 May 2022 18:37:49 -0300 Message-Id: <20220526213815.92701-9-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::336; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x336.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653602250065100003 From: V=C3=ADctor Colombo This patch fixes another not-so-clear situation in Power ISA regarding the inexact bits in FPSCR. The ISA states that: """ When Overflow Exception is disabled (OE=3D0) and an Overflow Exception occurs, the following actions are taken: ... 2. Inexact Exception is set XX <- 1 ... FI is set to 1 ... """ However, when tested on a Power 9 hardware, some instructions that trigger an OX don't set the FI bit: xvcvdpsp(0x4050533fcdb7b95ff8d561c40bf90996) =3D FI: CLEARED -> CLEARED xvnmsubmsp(0xf3c0c1fc8f3230, 0xbeaab9c5) =3D FI: CLEARED -> CLEARED (just a few examples. Other instructions are also affected) The root cause for this seems to be that only instructions that list the bit FI in the "Special Registers Altered" should modify it. QEMU is, today, not working like the hardware: xvcvdpsp(0x4050533fcdb7b95ff8d561c40bf90996) =3D FI: CLEARED -> SET xvnmsubmsp(0xf3c0c1fc8f3230, 0xbeaab9c5) =3D FI: CLEARED -> SET (all tests assume FI is cleared beforehand) Fix this by making float_overflow_excp() return float_flag_inexact if it should update the inexact flags. Signed-off-by: V=C3=ADctor Colombo Reviewed-by: Richard Henderson Reviewed-by: Rashmica Gupta Message-Id: <20220517161522.36132-3-victor.colombo@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/fpu_helper.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index f1ea4aa10e..88f9e756a5 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -329,24 +329,25 @@ static inline void float_zero_divide_excp(CPUPPCState= *env, uintptr_t raddr) } } =20 -static inline void float_overflow_excp(CPUPPCState *env) +static inline int float_overflow_excp(CPUPPCState *env) { CPUState *cs =3D env_cpu(env); =20 env->fpscr |=3D FP_OX; /* Update the floating-point exception summary */ env->fpscr |=3D FP_FX; - if (env->fpscr & FP_OE) { + + bool overflow_enabled =3D !!(env->fpscr & FP_OE); + if (overflow_enabled) { /* XXX: should adjust the result */ /* Update the floating-point enabled exception summary */ env->fpscr |=3D FP_FEX; /* We must update the target FPR before raising the exception */ cs->exception_index =3D POWERPC_EXCP_PROGRAM; env->error_code =3D POWERPC_EXCP_FP | POWERPC_EXCP_FP_OX; - } else { - env->fpscr |=3D FP_XX; - env->fpscr |=3D FP_FI; } + + return overflow_enabled ? 0 : float_flag_inexact; } =20 static inline void float_underflow_excp(CPUPPCState *env) @@ -468,7 +469,7 @@ static void do_float_check_status(CPUPPCState *env, boo= l change_fi, int status =3D get_float_exception_flags(&env->fp_status); =20 if (status & float_flag_overflow) { - float_overflow_excp(env); + status |=3D float_overflow_excp(env); } else if (status & float_flag_underflow) { float_underflow_excp(env); } --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653601556; cv=none; d=zohomail.com; s=zohoarc; b=Au0e508/j5ufaeNZY8eyBfzW7do3OSNA2rvNCNGy1W1YYvhcV3Ieds6WjS0KCQqrx+gacO84cvpjxm5oArXbfOzXtKmXYVC+iJ4gbsEjSM3nIzCyyjU/4WTCvTKrqJ9rRqZfmKOreDRW7xh7CmkShleu2JXnZBACnNy8v5tTT5E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653601556; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=c5GgsOpDjeA+vC8pR0ZSMAzm3cG/iVjGaJ452lWpcYc=; b=gp6f2QLwOS1iTF6vyXbpemKkPSPLqzGRsclAR3AsX1oGgqq9OAZqDVPvO8YK9Raf9fjAqwBLGwt7E1BHPs1Ss9PhM8bqi7g7HRh9MmIGkUPhoNjrjaFBeAt76Y2Zc9LoRlaY/56djOEVLLy/3U6aThvKy0SSJzCfZ4SJRYMVwEQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 165360155639251.09450143342633; Thu, 26 May 2022 14:45:56 -0700 (PDT) Received: from localhost ([::1]:51166 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLIo-0002tK-Ev for importer@patchew.org; Thu, 26 May 2022 17:45:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53398) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCE-0001he-3Z; Thu, 26 May 2022 17:39:06 -0400 Received: from mail-ot1-x329.google.com ([2607:f8b0:4864:20::329]:39459) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCB-00087U-PE; Thu, 26 May 2022 17:39:05 -0400 Received: by mail-ot1-x329.google.com with SMTP id w19-20020a9d6393000000b0060aeb359ca8so1805428otk.6; Thu, 26 May 2022 14:39:03 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.38.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=c5GgsOpDjeA+vC8pR0ZSMAzm3cG/iVjGaJ452lWpcYc=; b=Aim/QprPOzV0APBAGjDHDP0u/JBQzi9TAMjrdkeg/XXku0u2nkjYcmyF+fKvPgi+ze vmmGo45M+Y83nq86SplzMteGoYAIr4uQh//oWCPZ6kEz1uVPVjLZLriGyhtavlpGKR6S ZBH1yKJn1Dw3enPDkavFu2F4cx2Uxn6viGaW7E3CEKn0JrNHXvRpK/tiCW1N1mjsgcX7 jndv1Umr6mPIOTcmffeIys1CD7z295lsAkICcpF6gnJ7fmG4JdZ4f6yhCYrJgMEhMW7k YulfsRIALBmWmaS3QhX6ado6YsCBkFc2fkR0TEl3myiVQVWDm3vwC8PHo0fujz9OqtGZ P9Og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=c5GgsOpDjeA+vC8pR0ZSMAzm3cG/iVjGaJ452lWpcYc=; b=ceiIr9nlIY0etkKVawM5jq7WamKmgeb4o9QFMYoo+tJYWTuKbh79k5cB95i2cxpZdf vrNvtwSeBy93ze1WkewhAvl/yIx9gQzkk2DkBZYkSKN8PhTip0Yetpq1IzvkDBl9iMbj iyp+VeQG/JVJkD3yQAKguaY1KTPLVdRmEZEhfFScvUBgO2RdFmy381NyWRNW+bu4cZc/ tvEff5LUB5uvhJC97t8WABvUsp9MsgI5kcB9azohvm6x1G4UO+Y7Ei9fVcBKGiMqwVfb LyLGZlUEnYQ+o9w+5SLNogb2uS+Et+qdzUsLm75Wv8q7Cifx/c/xErrg1/jCADS0QYki UKZw== X-Gm-Message-State: AOAM532CFpkYjZELqPjC2jMT6yWOY1TEYLKyZbeh8YfRP0Cj1nbSYqib ZfAlj5mm0u/i6YyW9/YodVlVmfZ57H4= X-Google-Smtp-Source: ABdhPJzdP3386vM66cMUNESmIvKOmYVupQBh91HgGZbEIam4e7ycTiFbq2ppamddmn+MkBDVJlco8A== X-Received: by 2002:a9d:70c9:0:b0:60b:111f:7dc0 with SMTP id w9-20020a9d70c9000000b0060b111f7dc0mr8828056otj.140.1653601142158; Thu, 26 May 2022 14:39:02 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, =?UTF-8?q?V=C3=ADctor=20Colombo?= , Rashmica Gupta Subject: [PULL 09/34] target/ppc: Rename sfprf to sfifprf where it's also used as set fi flag Date: Thu, 26 May 2022 18:37:50 -0300 Message-Id: <20220526213815.92701-10-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::329; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x329.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653601557885100001 From: V=C3=ADctor Colombo The bit FI fix used the sfprf flag as a flag for the set_fi parameter in do_float_check_status where applicable. Now, this patch rename this flag to sfifprf to state this dual usage. Signed-off-by: V=C3=ADctor Colombo Reviewed-by: Richard Henderson Reviewed-by: Rashmica Gupta Message-Id: <20220517161522.36132-4-victor.colombo@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/fpu_helper.c | 112 ++++++++++++++++++++-------------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index 88f9e756a5..8592727792 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -1693,9 +1693,9 @@ uint32_t helper_efdcmpeq(CPUPPCState *env, uint64_t o= p1, uint64_t op2) * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) * fld - vsr_t field (VsrD(*) or VsrW(*)) - * sfprf - set FPRF + * sfifprf - set FI and FPRF */ -#define VSX_ADD_SUB(name, op, nels, tp, fld, sfprf, r2sp) = \ +#define VSX_ADD_SUB(name, op, nels, tp, fld, sfifprf, r2sp) = \ void helper_##name(CPUPPCState *env, ppc_vsr_t *xt, = \ ppc_vsr_t *xa, ppc_vsr_t *xb) = \ { = \ @@ -1712,19 +1712,19 @@ void helper_##name(CPUPPCState *env, ppc_vsr_t *xt,= \ = \ if (unlikely(tstat.float_exception_flags & float_flag_invalid)) { = \ float_invalid_op_addsub(env, tstat.float_exception_flags, = \ - sfprf, GETPC()); = \ + sfifprf, GETPC()); = \ } = \ = \ if (r2sp) { = \ t.fld =3D do_frsp(env, t.fld, GETPC()); = \ } = \ = \ - if (sfprf) { = \ + if (sfifprf) { = \ helper_compute_fprf_float64(env, t.fld); = \ } = \ } = \ *xt =3D t; = \ - do_float_check_status(env, sfprf, GETPC()); = \ + do_float_check_status(env, sfifprf, GETPC()); = \ } =20 VSX_ADD_SUB(xsadddp, add, 1, float64, VsrD(0), 1, 0) @@ -1769,9 +1769,9 @@ void helper_xsaddqp(CPUPPCState *env, uint32_t opcode, * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) * fld - vsr_t field (VsrD(*) or VsrW(*)) - * sfprf - set FPRF + * sfifprf - set FI and FPRF */ -#define VSX_MUL(op, nels, tp, fld, sfprf, r2sp) = \ +#define VSX_MUL(op, nels, tp, fld, sfifprf, r2sp) = \ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, = \ ppc_vsr_t *xa, ppc_vsr_t *xb) = \ { = \ @@ -1788,20 +1788,20 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, = \ = \ if (unlikely(tstat.float_exception_flags & float_flag_invalid)) { = \ float_invalid_op_mul(env, tstat.float_exception_flags, = \ - sfprf, GETPC()); = \ + sfifprf, GETPC()); = \ } = \ = \ if (r2sp) { = \ t.fld =3D do_frsp(env, t.fld, GETPC()); = \ } = \ = \ - if (sfprf) { = \ + if (sfifprf) { = \ helper_compute_fprf_float64(env, t.fld); = \ } = \ } = \ = \ *xt =3D t; = \ - do_float_check_status(env, sfprf, GETPC()); = \ + do_float_check_status(env, sfifprf, GETPC()); = \ } =20 VSX_MUL(xsmuldp, 1, float64, VsrD(0), 1, 0) @@ -1840,9 +1840,9 @@ void helper_xsmulqp(CPUPPCState *env, uint32_t opcode, * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) * fld - vsr_t field (VsrD(*) or VsrW(*)) - * sfprf - set FPRF + * sfifprf - set FI and FPRF */ -#define VSX_DIV(op, nels, tp, fld, sfprf, r2sp) = \ +#define VSX_DIV(op, nels, tp, fld, sfifprf, r2sp) = \ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, = \ ppc_vsr_t *xa, ppc_vsr_t *xb) = \ { = \ @@ -1859,7 +1859,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, = \ = \ if (unlikely(tstat.float_exception_flags & float_flag_invalid)) { = \ float_invalid_op_div(env, tstat.float_exception_flags, = \ - sfprf, GETPC()); = \ + sfifprf, GETPC()); = \ } = \ if (unlikely(tstat.float_exception_flags & float_flag_divbyzero)) = { \ float_zero_divide_excp(env, GETPC()); = \ @@ -1869,13 +1869,13 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, = \ t.fld =3D do_frsp(env, t.fld, GETPC()); = \ } = \ = \ - if (sfprf) { = \ + if (sfifprf) { = \ helper_compute_fprf_float64(env, t.fld); = \ } = \ } = \ = \ *xt =3D t; = \ - do_float_check_status(env, sfprf, GETPC()); = \ + do_float_check_status(env, sfifprf, GETPC()); = \ } =20 VSX_DIV(xsdivdp, 1, float64, VsrD(0), 1, 0) @@ -1917,9 +1917,9 @@ void helper_xsdivqp(CPUPPCState *env, uint32_t opcode, * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) * fld - vsr_t field (VsrD(*) or VsrW(*)) - * sfprf - set FPRF + * sfifprf - set FI and FPRF */ -#define VSX_RE(op, nels, tp, fld, sfprf, r2sp) = \ +#define VSX_RE(op, nels, tp, fld, sfifprf, r2sp) = \ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc_vsr_t *xb) = \ { = \ ppc_vsr_t t =3D { }; = \ @@ -1937,13 +1937,13 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, p= pc_vsr_t *xb) \ t.fld =3D do_frsp(env, t.fld, GETPC()); = \ } = \ = \ - if (sfprf) { = \ + if (sfifprf) { = \ helper_compute_fprf_float64(env, t.fld); = \ } = \ } = \ = \ *xt =3D t; = \ - do_float_check_status(env, sfprf, GETPC()); = \ + do_float_check_status(env, sfifprf, GETPC()); = \ } =20 VSX_RE(xsredp, 1, float64, VsrD(0), 1, 0) @@ -1957,9 +1957,9 @@ VSX_RE(xvresp, 4, float32, VsrW(i), 0, 0) * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) * fld - vsr_t field (VsrD(*) or VsrW(*)) - * sfprf - set FPRF + * sfifprf - set FI and FPRF */ -#define VSX_SQRT(op, nels, tp, fld, sfprf, r2sp) = \ +#define VSX_SQRT(op, nels, tp, fld, sfifprf, r2sp) = \ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc_vsr_t *xb) = \ { = \ ppc_vsr_t t =3D { }; = \ @@ -1975,20 +1975,20 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, p= pc_vsr_t *xb) \ = \ if (unlikely(tstat.float_exception_flags & float_flag_invalid)) { = \ float_invalid_op_sqrt(env, tstat.float_exception_flags, = \ - sfprf, GETPC()); = \ + sfifprf, GETPC()); = \ } = \ = \ if (r2sp) { = \ t.fld =3D do_frsp(env, t.fld, GETPC()); = \ } = \ = \ - if (sfprf) { = \ + if (sfifprf) { = \ helper_compute_fprf_float64(env, t.fld); = \ } = \ } = \ = \ *xt =3D t; = \ - do_float_check_status(env, sfprf, GETPC()); = \ + do_float_check_status(env, sfifprf, GETPC()); = \ } =20 VSX_SQRT(xssqrtdp, 1, float64, VsrD(0), 1, 0) @@ -2002,9 +2002,9 @@ VSX_SQRT(xvsqrtsp, 4, float32, VsrW(i), 0, 0) * nels - number of elements (1, 2 or 4) * tp - type (float32 or float64) * fld - vsr_t field (VsrD(*) or VsrW(*)) - * sfprf - set FPRF + * sfifprf - set FI and FPRF */ -#define VSX_RSQRTE(op, nels, tp, fld, sfprf, r2sp) = \ +#define VSX_RSQRTE(op, nels, tp, fld, sfifprf, r2sp) = \ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc_vsr_t *xb) = \ { = \ ppc_vsr_t t =3D { }; = \ @@ -2020,19 +2020,19 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, p= pc_vsr_t *xb) \ env->fp_status.float_exception_flags |=3D tstat.float_exception_fl= ags; \ if (unlikely(tstat.float_exception_flags & float_flag_invalid)) { = \ float_invalid_op_sqrt(env, tstat.float_exception_flags, = \ - sfprf, GETPC()); = \ + sfifprf, GETPC()); = \ } = \ if (r2sp) { = \ t.fld =3D do_frsp(env, t.fld, GETPC()); = \ } = \ = \ - if (sfprf) { = \ + if (sfifprf) { = \ helper_compute_fprf_float64(env, t.fld); = \ } = \ } = \ = \ *xt =3D t; = \ - do_float_check_status(env, sfprf, GETPC()); = \ + do_float_check_status(env, sfifprf, GETPC()); = \ } =20 VSX_RSQRTE(xsrsqrtedp, 1, float64, VsrD(0), 1, 0) @@ -2158,9 +2158,9 @@ VSX_TSQRT(xvtsqrtsp, 4, float32, VsrW(i), -126, 23) * fld - vsr_t field (VsrD(*) or VsrW(*)) * maddflgs - flags for the float*muladd routine that control the * various forms (madd, msub, nmadd, nmsub) - * sfprf - set FPRF + * sfifprf - set FI and FPRF */ -#define VSX_MADD(op, nels, tp, fld, maddflgs, sfprf) = \ +#define VSX_MADD(op, nels, tp, fld, maddflgs, sfifprf) = \ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, = \ ppc_vsr_t *s1, ppc_vsr_t *s2, ppc_vsr_t *s3) = \ { = \ @@ -2177,15 +2177,15 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, = \ = \ if (unlikely(tstat.float_exception_flags & float_flag_invalid)) { = \ float_invalid_op_madd(env, tstat.float_exception_flags, = \ - sfprf, GETPC()); = \ + sfifprf, GETPC()); = \ } = \ = \ - if (sfprf) { = \ + if (sfifprf) { = \ helper_compute_fprf_float64(env, t.fld); = \ } = \ } = \ *xt =3D t; = \ - do_float_check_status(env, sfprf, GETPC()); = \ + do_float_check_status(env, sfifprf, GETPC()); = \ } =20 VSX_MADD(XSMADDDP, 1, float64, VsrD(0), MADD_FLGS, 1) @@ -2670,9 +2670,9 @@ VSX_CMP(xvcmpnesp, 4, float32, VsrW(i), eq, 0, 0) * ttp - target type (float32 or float64) * sfld - source vsr_t field * tfld - target vsr_t field (f32 or f64) - * sfprf - set FPRF + * sfifprf - set FI and FPRF */ -#define VSX_CVT_FP_TO_FP(op, nels, stp, ttp, sfld, tfld, sfprf) \ +#define VSX_CVT_FP_TO_FP(op, nels, stp, ttp, sfld, tfld, sfifprf) \ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc_vsr_t *xb) \ { \ ppc_vsr_t t =3D { }; \ @@ -2685,19 +2685,19 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, p= pc_vsr_t *xb) \ float_invalid_op_vxsnan(env, GETPC()); \ t.tfld =3D ttp##_snan_to_qnan(t.tfld); \ } \ - if (sfprf) { \ + if (sfifprf) { \ helper_compute_fprf_##ttp(env, t.tfld); \ } \ } \ \ *xt =3D t; \ - do_float_check_status(env, sfprf, GETPC()); \ + do_float_check_status(env, sfifprf, GETPC()); \ } =20 VSX_CVT_FP_TO_FP(xscvspdp, 1, float32, float64, VsrW(0), VsrD(0), 1) VSX_CVT_FP_TO_FP(xvcvspdp, 2, float32, float64, VsrW(2 * i), VsrD(i), 0) =20 -#define VSX_CVT_FP_TO_FP2(op, nels, stp, ttp, sfprf) \ +#define VSX_CVT_FP_TO_FP2(op, nels, stp, ttp, sfifprf) \ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc_vsr_t *xb) \ { \ ppc_vsr_t t =3D { }; \ @@ -2710,14 +2710,14 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, p= pc_vsr_t *xb) \ float_invalid_op_vxsnan(env, GETPC()); \ t.VsrW(2 * i) =3D ttp##_snan_to_qnan(t.VsrW(2 * i)); \ } \ - if (sfprf) { \ + if (sfifprf) { \ helper_compute_fprf_##ttp(env, t.VsrW(2 * i)); \ } \ t.VsrW(2 * i + 1) =3D t.VsrW(2 * i); \ } \ \ *xt =3D t; \ - do_float_check_status(env, sfprf, GETPC()); \ + do_float_check_status(env, sfifprf, GETPC()); \ } =20 VSX_CVT_FP_TO_FP2(xvcvdpsp, 2, float64, float32, 0) @@ -2733,9 +2733,9 @@ VSX_CVT_FP_TO_FP2(xscvdpsp, 1, float64, float32, 1) * tfld - target vsr_t field (f32 or f64) * sfprf - set FPRF */ -#define VSX_CVT_FP_TO_FP_VECTOR(op, nels, stp, ttp, sfld, tfld, sfprf) \ -void helper_##op(CPUPPCState *env, uint32_t opcode, \ - ppc_vsr_t *xt, ppc_vsr_t *xb) \ +#define VSX_CVT_FP_TO_FP_VECTOR(op, nels, stp, ttp, sfld, tfld, sfprf) \ +void helper_##op(CPUPPCState *env, uint32_t opcode, \ + ppc_vsr_t *xt, ppc_vsr_t *xb) \ { \ ppc_vsr_t t =3D *xt; \ int i; \ @@ -2767,9 +2767,9 @@ VSX_CVT_FP_TO_FP_VECTOR(xscvdpqp, 1, float64, float12= 8, VsrD(0), f128, 1) * ttp - target type * sfld - source vsr_t field * tfld - target vsr_t field - * sfprf - set FPRF + * sfifprf - set FI and FPRF */ -#define VSX_CVT_FP_TO_FP_HP(op, nels, stp, ttp, sfld, tfld, sfprf) \ +#define VSX_CVT_FP_TO_FP_HP(op, nels, stp, ttp, sfld, tfld, sfifprf) \ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc_vsr_t *xb) \ { \ ppc_vsr_t t =3D { }; \ @@ -2782,13 +2782,13 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, p= pc_vsr_t *xb) \ float_invalid_op_vxsnan(env, GETPC()); \ t.tfld =3D ttp##_snan_to_qnan(t.tfld); \ } \ - if (sfprf) { \ + if (sfifprf) { \ helper_compute_fprf_##ttp(env, t.tfld); \ } \ } \ \ *xt =3D t; \ - do_float_check_status(env, sfprf, GETPC()); \ + do_float_check_status(env, sfifprf, GETPC()); \ } =20 VSX_CVT_FP_TO_FP_HP(xscvdphp, 1, float64, float16, VsrD(0), VsrH(3), 1) @@ -3035,9 +3035,9 @@ VSX_CVT_FP_TO_INT_VECTOR(xscvqpuwz, float128, uint32,= f128, VsrD(0), 0x0ULL) * sfld - source vsr_t field * tfld - target vsr_t field * jdef - definition of the j index (i or 2*i) - * sfprf - set FPRF + * sfifprf - set FI and FPRF */ -#define VSX_CVT_INT_TO_FP(op, nels, stp, ttp, sfld, tfld, sfprf, r2sp) \ +#define VSX_CVT_INT_TO_FP(op, nels, stp, ttp, sfld, tfld, sfifprf, r2sp)\ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc_vsr_t *xb) \ { \ ppc_vsr_t t =3D { }; \ @@ -3048,13 +3048,13 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, p= pc_vsr_t *xb) \ if (r2sp) { \ t.tfld =3D do_frsp(env, t.tfld, GETPC()); \ } \ - if (sfprf) { \ + if (sfifprf) { \ helper_compute_fprf_float64(env, t.tfld); \ } \ } \ \ *xt =3D t; \ - do_float_check_status(env, sfprf, GETPC()); \ + do_float_check_status(env, sfifprf, GETPC()); \ } =20 VSX_CVT_INT_TO_FP(xscvsxddp, 1, int64, float64, VsrD(0), VsrD(0), 1, 0) @@ -3136,9 +3136,9 @@ VSX_CVT_INT_TO_FP_VECTOR(xscvudqp, uint64, float128, = VsrD(0), f128) * tp - type (float32 or float64) * fld - vsr_t field (VsrD(*) or VsrW(*)) * rmode - rounding mode - * sfprf - set FPRF + * sfifprf - set FI and FPRF */ -#define VSX_ROUND(op, nels, tp, fld, rmode, sfprf) \ +#define VSX_ROUND(op, nels, tp, fld, rmode, sfifprf) \ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc_vsr_t *xb) \ { \ ppc_vsr_t t =3D { }; \ @@ -3158,7 +3158,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc= _vsr_t *xb) \ } else { \ t.fld =3D tp##_round_to_int(xb->fld, &env->fp_status); \ } \ - if (sfprf) { \ + if (sfifprf) { \ helper_compute_fprf_float64(env, t.fld); \ } \ } \ @@ -3174,7 +3174,7 @@ void helper_##op(CPUPPCState *env, ppc_vsr_t *xt, ppc= _vsr_t *xb) \ } \ \ *xt =3D t; \ - do_float_check_status(env, sfprf, GETPC()); \ + do_float_check_status(env, sfifprf, GETPC()); \ } =20 VSX_ROUND(xsrdpi, 1, float64, VsrD(0), float_round_ties_away, 1) --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653602391; cv=none; d=zohomail.com; s=zohoarc; b=GZ+3kj1whDpYWxvUGNHKipPG26ttWCTC43Ag8Ib9+jNSg3ERaWILZr6LhfKe+Fsa/YJy4ncTZWj27aaTfNZ3XF0nxahtfkCSX0IrMTxYpQvQLqbEwZqr/MZW+VwhCrCQdMpUO0GFPrK3DVzNQfulnuTCg+aJZRQ2txJLuYANuME= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653602391; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=VSNL4OevG9cw8y5LNytE2yhoXe6nu0ALTHWdV92uj+o=; b=VQ9VQGip7PmgwWSuROqp9ERUsZg1ZEw/Tw348055AYp4Ol8yZMmUms8Nknws9ldyfwnGIN44TkR79pZQKqYKXX/aa258IZ3bbLjxAcyJISbfVKd6dq4gNxpU8QE4RhnDIg1DwU1I1kyGk6WeH+rdV4APWF8mdnqNHjNqV4RODns= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653602391781736.8319453867075; Thu, 26 May 2022 14:59:51 -0700 (PDT) Received: from localhost ([::1]:55190 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLWI-0000nM-MJ for importer@patchew.org; Thu, 26 May 2022 17:59:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53438) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCI-0001ot-Tp; Thu, 26 May 2022 17:39:11 -0400 Received: from mail-oi1-x235.google.com ([2607:f8b0:4864:20::235]:42963) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCE-00087c-8w; Thu, 26 May 2022 17:39:10 -0400 Received: by mail-oi1-x235.google.com with SMTP id q10so3632533oia.9; Thu, 26 May 2022 14:39:05 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=VSNL4OevG9cw8y5LNytE2yhoXe6nu0ALTHWdV92uj+o=; b=efs8G8sTEC3B22CcRpvPlTWFPn3KblhAMKl8TqehRlPaKxxUDDDu/uKBkQb+M4WyRA 6QfsXk4paPpuB2m744mhPa3VpaeyP0SvknQLby/S8PTIk0xJF8RKI4dajkhdMk2yHl9f dsLQ/NePGL9xtR/fyvvNNb4Zce6vOMZFVQy47sLJU0ficmJ6TJeChDqqZGc0RpvhBM5R ZfRHYe1kegPR18sk71n8tvcVkcoTodHhwtMllKbu53EdWuEYgeMMtl+ZLL1IoEYQCmew ZBGK2DhEoQRoAV4EgNVzyzm1LXIyKn1ExYal0mDXA3RE78upDuNXj9FIdSYNIbUHthf8 nqjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=VSNL4OevG9cw8y5LNytE2yhoXe6nu0ALTHWdV92uj+o=; b=D42tHICLXP0P6/Psh9+Eri+EQkG6HtxPoQbsHarNvisXq06s80UzjG+PwhcSt/5P2z usVOBXxZcSblRHwfoSpZZ3qBjUu+vod3FcWJK8u9dd1k4b+Rz/0AEBMChoA+xISdxhcO AgbJjVP43knwdfe3qhGwKVC5wqyhySghlQsUk0yS++lR5d+d1PUPPL1YaLrzPx6Nwdcn RqSQTe3Sr5TdYU+Y7y5JQ0wNPXRrjqlb/8s0/2+EQAdSkxuK4S8C+70/keJDBCo30+/C QMdtB055MwABWDnKheAYGWTgJfWH3v9EhEGC2yDqC6tjYXE4Tb0suQU1ddobjdEZDpD7 eBTg== X-Gm-Message-State: AOAM533fk7GOrgDS2IYwQa/UiOAXAlHs6Z9NA3Qj2lfrkouDt2ia+tLB ayrl1JrZRuzS6ek9Oyh3uZ5HKN/RpQ8= X-Google-Smtp-Source: ABdhPJyS5Yy1cMug4UNrqaXEwIyT6bycLcb1Ecun+iQxGYccSpxPu9QqkAbDZMQjf69mNcZFnvj2KA== X-Received: by 2002:a05:6808:dc3:b0:2ef:86e7:a0b with SMTP id g3-20020a0568080dc300b002ef86e70a0bmr2249071oic.48.1653601144736; Thu, 26 May 2022 14:39:04 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Frederic Barrat , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Subject: [PULL 10/34] pnv/xive2: Don't overwrite PC registers when writing TCTXT registers Date: Thu, 26 May 2022 18:37:51 -0300 Message-Id: <20220526213815.92701-11-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::235; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x235.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, T_SPF_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653602392811100003 From: Frederic Barrat When writing a register from the TCTXT memory region (4th page within the IC BAR), we were overwriting the Presentation Controller (PC) register at the same offset. It looks like a silly cut and paste error. We were somehow lucky: the TCTXT registers being touched are TCTXT_ENx/_SET/_RESET to enable physical threads and the PC registers at the same offset are either not used by our model or the update was harmless. Found through code inspection. Signed-off-by: Frederic Barrat Reviewed-by: C=C3=A9dric Le Goater Message-Id: <20220523151859.72283-1-fbarrat@linux.ibm.com> Signed-off-by: Daniel Henrique Barboza --- hw/intc/pnv_xive2.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/hw/intc/pnv_xive2.c b/hw/intc/pnv_xive2.c index 87303b4064..a39e070e82 100644 --- a/hw/intc/pnv_xive2.c +++ b/hw/intc/pnv_xive2.c @@ -1295,7 +1295,6 @@ static void pnv_xive2_ic_tctxt_write(void *opaque, hw= addr offset, uint64_t val, unsigned size) { PnvXive2 *xive =3D PNV_XIVE2(opaque); - uint32_t reg =3D offset >> 3; =20 switch (offset) { /* @@ -1322,8 +1321,6 @@ static void pnv_xive2_ic_tctxt_write(void *opaque, hw= addr offset, xive2_error(xive, "TCTXT: invalid write @%"HWADDR_PRIx, offset); return; } - - xive->pc_regs[reg] =3D val; } =20 static const MemoryRegionOps pnv_xive2_ic_tctxt_ops =3D { --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653601409; cv=none; d=zohomail.com; s=zohoarc; b=L/ESZ9681KeJDxUuQteK41EISQykqeeaWxg0xg9Z2o33TWsWUC8bOc9arjH0uDBFP4CsgDd51BtVmVLThIgSTEnr9SLErNvLfazt3iw5+0k6XgodE79zaRa/OAl1A/2mhYwQutY0vkOSNOP+1bFa6OxRNsOtHZsTi8yHwoTFaKY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653601409; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=rtaaTkmydv57MS2qQRZNutWbRE00by7MzJJzalxnVwo=; b=LKL+tOp2EKN2ytRVxFb2d6nvwQztTcZiRf59LFON8107k/gC1YTqM+vY4Nxd6UgaXHF+rjrqV9dfLiaqg/w/aUwOxx668/y7hah7bqhu6++91H0dDVwbX5kbE3eHWWHZHw90jr9AsrkiXfZnRyX/yMaOFknfIdbzRmEdTnVmwlI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653601409402590.5523674047187; Thu, 26 May 2022 14:43:29 -0700 (PDT) Received: from localhost ([::1]:45446 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLGR-0007Po-My for importer@patchew.org; Thu, 26 May 2022 17:43:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53432) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCI-0001om-1L; Thu, 26 May 2022 17:39:11 -0400 Received: from mail-oo1-xc2f.google.com ([2607:f8b0:4864:20::c2f]:39740) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCG-00087q-Je; Thu, 26 May 2022 17:39:09 -0400 Received: by mail-oo1-xc2f.google.com with SMTP id q7-20020a4adc47000000b0035f4d798376so506573oov.6; Thu, 26 May 2022 14:39:07 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rtaaTkmydv57MS2qQRZNutWbRE00by7MzJJzalxnVwo=; b=ogeqBaMf1CnhYX8BQH0vV4kYzQvTL9Reb8YVZjvO6LyVkCZGyVB3Ukmf/rEyHDKsru i1Hn4u7YAqekNiWk3nbCavDgUWNmrSnd1OgwNvogw6M8VwdGqVLWd843nIpPirWl+8PQ pOwl7G9ZA0rb6RXy/ZaKmWvSgHRDn0APxeec/H1TzPWG8A6JzvfzQQ8YUr1CDbJfwrT2 WYxapxnKochTFlzzvgLQxbkTkNzhsp1MPKYnLzmETi3AHXNPQ/qVlB3IpBMsv0DF8gHE DRy3wC+Z0fdAtvCEcHsbWAWYvYRZNThdSWkc511O1o3CIc3hWyyZqoWK50hVSFYqb5XQ rg7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rtaaTkmydv57MS2qQRZNutWbRE00by7MzJJzalxnVwo=; b=hJpqcbuwXZwHiZJ5MPfC7wJTem1s1jliIJalG2WFI76Cn53Lo2ugPaemeiyX+vk1Eb tMBOE41VEzKgl2T3BtPIKeBgDgrNZpowb3xw5SbpHcwAnVoAeJfu7Slm+v1Cezy8Ch/P CoG2afLp8/bWtTXIGbUleumsGBpq4G23cdVSmq42/e7pBeKYBlRWW0E+C51qIYurZ+0A AHyCTZEbFKnHfVw9gXm1IuxlLsCdnBR7LhXEzS1VPwqlU29oSHQknSAQhBZQthysjml8 NIfKQVs8qRl6GWoVhQCWTWHIePO56KFPr2uyrm3zwV+p4Z0FubFQhRlPTOFAEw7kAjLZ rSfw== X-Gm-Message-State: AOAM531Z6DbDvl/lEhAGpyH560vTvO3cMfXayqtRrKOHrj1siTHQqeZA NrX47ASoMBnTB9qKMGbITh7OE/mfF3c= X-Google-Smtp-Source: ABdhPJzp6gV15ub66Ap0vLfDQLBP4qQrCN33LjYIwXottJi65sHrZfJvWhpZ8+OVdekxGxhGtbKIRQ== X-Received: by 2002:a4a:c894:0:b0:40e:85a3:484b with SMTP id t20-20020a4ac894000000b0040e85a3484bmr9263147ooq.11.1653601147097; Thu, 26 May 2022 14:39:07 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Matheus Ferst Subject: [PULL 11/34] target/ppc: declare darn32/darn64 helpers with TCG_CALL_NO_RWG Date: Thu, 26 May 2022 18:37:52 -0300 Message-Id: <20220526213815.92701-12-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::c2f; envelope-from=danielhb413@gmail.com; helo=mail-oo1-xc2f.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653601411114100001 Content-Type: text/plain; charset="utf-8" From: Matheus Ferst Signed-off-by: Matheus Ferst Reviewed-by: Richard Henderson Message-Id: <20220517123929.284511-2-matheus.ferst@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/helper.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/ppc/helper.h b/target/ppc/helper.h index aa6773c4a5..44eb6b7b7c 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -59,8 +59,8 @@ DEF_HELPER_FLAGS_2(cmpeqb, TCG_CALL_NO_RWG_SE, i32, tl, t= l) DEF_HELPER_FLAGS_1(popcntw, TCG_CALL_NO_RWG_SE, tl, tl) DEF_HELPER_FLAGS_2(bpermd, TCG_CALL_NO_RWG_SE, i64, i64, i64) DEF_HELPER_3(srad, tl, env, tl, tl) -DEF_HELPER_0(darn32, tl) -DEF_HELPER_0(darn64, tl) +DEF_HELPER_FLAGS_0(darn32, TCG_CALL_NO_RWG, tl) +DEF_HELPER_FLAGS_0(darn64, TCG_CALL_NO_RWG, tl) #endif =20 DEF_HELPER_FLAGS_1(cntlsw32, TCG_CALL_NO_RWG_SE, i32, i32) --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653601995; cv=none; d=zohomail.com; s=zohoarc; b=m2T8OJRHr7MwcEuQvbPUuYBflz0ylo3SdOXwbrXSN0OMqdtRbJj3sSoDcQAk0vrw/gJTTMqG7ahBP0dvrNFP5h91svP0R/qI/ogaNcyEZ6ATxAHlABs8mjLKPlmk613rwVlbS/5u07gDQobuxHpM+Fr97Wi3zSWMz9XxQg8Doo4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653601995; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=IghjpFIgAbh+RrP/YcW2+ELNPVGW/cxRMtHfzRObM1c=; b=mltt19BreO2HJhAxSasxE3y+GpruPTEC/u0WxIbXTxFo/SylapCtiapFGTRqoszFRtCCQ7+OGS+bh/fNVht5aMs33K1jA0J4n/eLeQIkLWcYecYPv+A2XUEShSAOtd/N/G1Zf6m5Qimep1MqMeITSo8rFftD3TOJbyPm69n8WpQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653601995393872.5733537278431; Thu, 26 May 2022 14:53:15 -0700 (PDT) Received: from localhost ([::1]:39328 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLPu-0006Dp-51 for importer@patchew.org; Thu, 26 May 2022 17:53:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53454) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCL-0001pk-S9; Thu, 26 May 2022 17:39:13 -0400 Received: from mail-oo1-xc33.google.com ([2607:f8b0:4864:20::c33]:36754) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCJ-00088B-5s; Thu, 26 May 2022 17:39:13 -0400 Received: by mail-oo1-xc33.google.com with SMTP id f5-20020a4aa685000000b0040e7e819183so506913oom.3; Thu, 26 May 2022 14:39:10 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=IghjpFIgAbh+RrP/YcW2+ELNPVGW/cxRMtHfzRObM1c=; b=mQRn5lmaAQoZ6zfSl4rSybgG1OvPdEC0k1LrdpUFvuHs8fc10LRzJ9tpHWRac//utb WGdPg9OpckAEsb67i6LDZy3OblLCoWSMJ/9WlLp/ELavRJLpb9HXfMVZJgCF6w/wYNYr VVsv3D2FliZzsAb+4ptt0pHPKZ+jHKBFxTIOVElZE3mqA4ljayMoS9RkSiYbSLZ5e6pt uTE5MtaeI25dCzYNlN90dOh/KzDRrxWlQTh0Vq/yb3V4YWDMaBQgL2AE8jC0bcScuoOd UI206TyrvqBx1mqB13DXKEN0gsAfZ0oXbWD2uuPXnkE0O51p3AsJzfAP82tX0mPFMUHD QymA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IghjpFIgAbh+RrP/YcW2+ELNPVGW/cxRMtHfzRObM1c=; b=bMBFWzQ2MxSxAry3nt+5V4ponQX+vIPMauiWc89Q0F2FGrQCS2sm3GpONUwEIzH8Oe SohJU/7ZSG2vdD9z42ZvYa/3hyW5MRTbzafXvUvqakKLUq/c0JZ81REJMpX+JBAdW59w TabgWL4p+ti7lc3hU6rJO4yvNt+pSCPklt8yI/2n2dj+S+hsWiT8CYGndeTmpuZe/HaV aD53Q6khw3pjZB7vBRwUege5DtQX9/nm/QZeClLTz5Ae1B2ePz+IkgwzmmhBxt27ts2K 3BuCrQ9pD5PDBrlhOb/GPyHyLl6ROYXMeCkmBd9OOVnpRjjT/9y3qFUIqLhYdsM229YX ICpQ== X-Gm-Message-State: AOAM531UTHxqoyU4X6My8u2cbe3ulUiYd+NGsJcearNXiAhS5v4H94qr wHEsG1N938KuRWdtm3PlS1kZ3DBl8B0= X-Google-Smtp-Source: ABdhPJwJVwaBTzF3E4H1gm6d3UgLK8BGXrcyRUXiLIOJ/+4et7CWf7KmnLD48ZZIeUyleAUqhiY8vA== X-Received: by 2002:a4a:6f49:0:b0:35e:1902:1d3b with SMTP id i9-20020a4a6f49000000b0035e19021d3bmr15895217oof.1.1653601149484; Thu, 26 May 2022 14:39:09 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Matheus Ferst Subject: [PULL 12/34] target/ppc: use TCG_CALL_NO_RWG in vector helpers without env Date: Thu, 26 May 2022 18:37:53 -0300 Message-Id: <20220526213815.92701-13-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::c33; envelope-from=danielhb413@gmail.com; helo=mail-oo1-xc33.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653601997836100001 Content-Type: text/plain; charset="utf-8" From: Matheus Ferst Helpers of vector instructions without cpu_env as an argument do not access globals. Signed-off-by: Matheus Ferst Reviewed-by: Richard Henderson Message-Id: <20220517123929.284511-3-matheus.ferst@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/helper.h | 162 ++++++++++++++++++++++---------------------- 1 file changed, 81 insertions(+), 81 deletions(-) diff --git a/target/ppc/helper.h b/target/ppc/helper.h index 44eb6b7b7c..da740ad9af 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -133,15 +133,15 @@ DEF_HELPER_FLAGS_1(ftsqrt, TCG_CALL_NO_RWG_SE, i32, i= 64) #define dh_ctype_vsr ppc_vsr_t * #define dh_typecode_vsr dh_typecode_ptr =20 -DEF_HELPER_3(vavgub, void, avr, avr, avr) -DEF_HELPER_3(vavguh, void, avr, avr, avr) -DEF_HELPER_3(vavguw, void, avr, avr, avr) -DEF_HELPER_3(vabsdub, void, avr, avr, avr) -DEF_HELPER_3(vabsduh, void, avr, avr, avr) -DEF_HELPER_3(vabsduw, void, avr, avr, avr) -DEF_HELPER_3(vavgsb, void, avr, avr, avr) -DEF_HELPER_3(vavgsh, void, avr, avr, avr) -DEF_HELPER_3(vavgsw, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vavgub, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vavguh, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vavguw, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vabsdub, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vabsduh, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vabsduw, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vavgsb, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vavgsh, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vavgsw, TCG_CALL_NO_RWG, void, avr, avr, avr) DEF_HELPER_4(vcmpeqfp, void, env, avr, avr, avr) DEF_HELPER_4(vcmpgefp, void, env, avr, avr, avr) DEF_HELPER_4(vcmpgtfp, void, env, avr, avr, avr) @@ -153,12 +153,12 @@ DEF_HELPER_4(vcmpeqfp_dot, void, env, avr, avr, avr) DEF_HELPER_4(vcmpgefp_dot, void, env, avr, avr, avr) DEF_HELPER_4(vcmpgtfp_dot, void, env, avr, avr, avr) DEF_HELPER_4(vcmpbfp_dot, void, env, avr, avr, avr) -DEF_HELPER_3(vmrglb, void, avr, avr, avr) -DEF_HELPER_3(vmrglh, void, avr, avr, avr) -DEF_HELPER_3(vmrglw, void, avr, avr, avr) -DEF_HELPER_3(vmrghb, void, avr, avr, avr) -DEF_HELPER_3(vmrghh, void, avr, avr, avr) -DEF_HELPER_3(vmrghw, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vmrglb, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vmrglh, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vmrglw, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vmrghb, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vmrghh, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vmrghw, TCG_CALL_NO_RWG, void, avr, avr, avr) DEF_HELPER_FLAGS_3(VMULESB, TCG_CALL_NO_RWG, void, avr, avr, avr) DEF_HELPER_FLAGS_3(VMULESH, TCG_CALL_NO_RWG, void, avr, avr, avr) DEF_HELPER_FLAGS_3(VMULESW, TCG_CALL_NO_RWG, void, avr, avr, avr) @@ -171,15 +171,15 @@ DEF_HELPER_FLAGS_3(VMULOSW, TCG_CALL_NO_RWG, void, av= r, avr, avr) DEF_HELPER_FLAGS_3(VMULOUB, TCG_CALL_NO_RWG, void, avr, avr, avr) DEF_HELPER_FLAGS_3(VMULOUH, TCG_CALL_NO_RWG, void, avr, avr, avr) DEF_HELPER_FLAGS_3(VMULOUW, TCG_CALL_NO_RWG, void, avr, avr, avr) -DEF_HELPER_3(vslo, void, avr, avr, avr) -DEF_HELPER_3(vsro, void, avr, avr, avr) -DEF_HELPER_3(vsrv, void, avr, avr, avr) -DEF_HELPER_3(vslv, void, avr, avr, avr) -DEF_HELPER_3(vaddcuw, void, avr, avr, avr) -DEF_HELPER_2(vprtybw, void, avr, avr) -DEF_HELPER_2(vprtybd, void, avr, avr) -DEF_HELPER_2(vprtybq, void, avr, avr) -DEF_HELPER_3(vsubcuw, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vslo, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vsro, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vsrv, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vslv, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vaddcuw, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_2(vprtybw, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vprtybd, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vprtybq, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_3(vsubcuw, TCG_CALL_NO_RWG, void, avr, avr, avr) DEF_HELPER_FLAGS_5(vaddsbs, TCG_CALL_NO_RWG, void, avr, avr, avr, avr, i32) DEF_HELPER_FLAGS_5(vaddshs, TCG_CALL_NO_RWG, void, avr, avr, avr, avr, i32) DEF_HELPER_FLAGS_5(vaddsws, TCG_CALL_NO_RWG, void, avr, avr, avr, avr, i32) @@ -192,19 +192,19 @@ DEF_HELPER_FLAGS_5(vadduws, TCG_CALL_NO_RWG, void, av= r, avr, avr, avr, i32) DEF_HELPER_FLAGS_5(vsububs, TCG_CALL_NO_RWG, void, avr, avr, avr, avr, i32) DEF_HELPER_FLAGS_5(vsubuhs, TCG_CALL_NO_RWG, void, avr, avr, avr, avr, i32) DEF_HELPER_FLAGS_5(vsubuws, TCG_CALL_NO_RWG, void, avr, avr, avr, avr, i32) -DEF_HELPER_3(vadduqm, void, avr, avr, avr) -DEF_HELPER_4(vaddecuq, void, avr, avr, avr, avr) -DEF_HELPER_4(vaddeuqm, void, avr, avr, avr, avr) -DEF_HELPER_3(vaddcuq, void, avr, avr, avr) -DEF_HELPER_3(vsubuqm, void, avr, avr, avr) -DEF_HELPER_4(vsubecuq, void, avr, avr, avr, avr) -DEF_HELPER_4(vsubeuqm, void, avr, avr, avr, avr) -DEF_HELPER_3(vsubcuq, void, avr, avr, avr) -DEF_HELPER_4(vsldoi, void, avr, avr, avr, i32) -DEF_HELPER_3(vextractub, void, avr, avr, i32) -DEF_HELPER_3(vextractuh, void, avr, avr, i32) -DEF_HELPER_3(vextractuw, void, avr, avr, i32) -DEF_HELPER_3(vextractd, void, avr, avr, i32) +DEF_HELPER_FLAGS_3(vadduqm, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_4(vaddecuq, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) +DEF_HELPER_FLAGS_4(vaddeuqm, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) +DEF_HELPER_FLAGS_3(vaddcuq, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vsubuqm, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_4(vsubecuq, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) +DEF_HELPER_FLAGS_4(vsubeuqm, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) +DEF_HELPER_FLAGS_3(vsubcuq, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_4(vsldoi, TCG_CALL_NO_RWG, void, avr, avr, avr, i32) +DEF_HELPER_FLAGS_3(vextractub, TCG_CALL_NO_RWG, void, avr, avr, i32) +DEF_HELPER_FLAGS_3(vextractuh, TCG_CALL_NO_RWG, void, avr, avr, i32) +DEF_HELPER_FLAGS_3(vextractuw, TCG_CALL_NO_RWG, void, avr, avr, i32) +DEF_HELPER_FLAGS_3(vextractd, TCG_CALL_NO_RWG, void, avr, avr, i32) DEF_HELPER_4(VINSBLX, void, env, avr, i64, tl) DEF_HELPER_4(VINSHLX, void, env, avr, i64, tl) DEF_HELPER_4(VINSWLX, void, env, avr, i64, tl) @@ -213,16 +213,16 @@ DEF_HELPER_FLAGS_2(VSTRIBL, TCG_CALL_NO_RWG, i32, avr= , avr) DEF_HELPER_FLAGS_2(VSTRIBR, TCG_CALL_NO_RWG, i32, avr, avr) DEF_HELPER_FLAGS_2(VSTRIHL, TCG_CALL_NO_RWG, i32, avr, avr) DEF_HELPER_FLAGS_2(VSTRIHR, TCG_CALL_NO_RWG, i32, avr, avr) -DEF_HELPER_2(vnegw, void, avr, avr) -DEF_HELPER_2(vnegd, void, avr, avr) -DEF_HELPER_2(vupkhpx, void, avr, avr) -DEF_HELPER_2(vupklpx, void, avr, avr) -DEF_HELPER_2(vupkhsb, void, avr, avr) -DEF_HELPER_2(vupkhsh, void, avr, avr) -DEF_HELPER_2(vupkhsw, void, avr, avr) -DEF_HELPER_2(vupklsb, void, avr, avr) -DEF_HELPER_2(vupklsh, void, avr, avr) -DEF_HELPER_2(vupklsw, void, avr, avr) +DEF_HELPER_FLAGS_2(vnegw, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vnegd, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vupkhpx, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vupklpx, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vupkhsb, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vupkhsh, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vupkhsw, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vupklsb, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vupklsh, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vupklsw, TCG_CALL_NO_RWG, void, avr, avr) DEF_HELPER_5(vmsumubm, void, env, avr, avr, avr, avr) DEF_HELPER_5(vmsummbm, void, env, avr, avr, avr, avr) DEF_HELPER_FLAGS_4(VPERM, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) @@ -239,14 +239,14 @@ DEF_HELPER_4(vpkudus, void, env, avr, avr, avr) DEF_HELPER_4(vpkuhum, void, env, avr, avr, avr) DEF_HELPER_4(vpkuwum, void, env, avr, avr, avr) DEF_HELPER_4(vpkudum, void, env, avr, avr, avr) -DEF_HELPER_3(vpkpx, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vpkpx, TCG_CALL_NO_RWG, void, avr, avr, avr) DEF_HELPER_5(vmhaddshs, void, env, avr, avr, avr, avr) DEF_HELPER_5(vmhraddshs, void, env, avr, avr, avr, avr) DEF_HELPER_5(vmsumuhm, void, env, avr, avr, avr, avr) DEF_HELPER_5(vmsumuhs, void, env, avr, avr, avr, avr) DEF_HELPER_5(vmsumshm, void, env, avr, avr, avr, avr) DEF_HELPER_5(vmsumshs, void, env, avr, avr, avr, avr) -DEF_HELPER_4(vmladduhm, void, avr, avr, avr, avr) +DEF_HELPER_FLAGS_4(vmladduhm, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) DEF_HELPER_FLAGS_2(mtvscr, TCG_CALL_NO_RWG, void, env, i32) DEF_HELPER_FLAGS_1(mfvscr, TCG_CALL_NO_RWG, i32, env) DEF_HELPER_3(lvebx, void, env, avr, tl) @@ -289,43 +289,43 @@ DEF_HELPER_4(vcfsx, void, env, avr, avr, i32) DEF_HELPER_4(vctuxs, void, env, avr, avr, i32) DEF_HELPER_4(vctsxs, void, env, avr, avr, i32) =20 -DEF_HELPER_2(vclzb, void, avr, avr) -DEF_HELPER_2(vclzh, void, avr, avr) -DEF_HELPER_2(vctzb, void, avr, avr) -DEF_HELPER_2(vctzh, void, avr, avr) -DEF_HELPER_2(vctzw, void, avr, avr) -DEF_HELPER_2(vctzd, void, avr, avr) -DEF_HELPER_2(vpopcntb, void, avr, avr) -DEF_HELPER_2(vpopcnth, void, avr, avr) -DEF_HELPER_2(vpopcntw, void, avr, avr) -DEF_HELPER_2(vpopcntd, void, avr, avr) -DEF_HELPER_1(vclzlsbb, tl, avr) -DEF_HELPER_1(vctzlsbb, tl, avr) -DEF_HELPER_3(vbpermd, void, avr, avr, avr) -DEF_HELPER_3(vbpermq, void, avr, avr, avr) -DEF_HELPER_3(vpmsumb, void, avr, avr, avr) -DEF_HELPER_3(vpmsumh, void, avr, avr, avr) -DEF_HELPER_3(vpmsumw, void, avr, avr, avr) -DEF_HELPER_3(vpmsumd, void, avr, avr, avr) -DEF_HELPER_2(vextublx, tl, tl, avr) -DEF_HELPER_2(vextuhlx, tl, tl, avr) -DEF_HELPER_2(vextuwlx, tl, tl, avr) -DEF_HELPER_2(vextubrx, tl, tl, avr) -DEF_HELPER_2(vextuhrx, tl, tl, avr) -DEF_HELPER_2(vextuwrx, tl, tl, avr) +DEF_HELPER_FLAGS_2(vclzb, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vclzh, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vctzb, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vctzh, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vctzw, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vctzd, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vpopcntb, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vpopcnth, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vpopcntw, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_2(vpopcntd, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_1(vclzlsbb, TCG_CALL_NO_RWG, tl, avr) +DEF_HELPER_FLAGS_1(vctzlsbb, TCG_CALL_NO_RWG, tl, avr) +DEF_HELPER_FLAGS_3(vbpermd, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vbpermq, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vpmsumb, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vpmsumh, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vpmsumw, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vpmsumd, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_2(vextublx, TCG_CALL_NO_RWG, tl, tl, avr) +DEF_HELPER_FLAGS_2(vextuhlx, TCG_CALL_NO_RWG, tl, tl, avr) +DEF_HELPER_FLAGS_2(vextuwlx, TCG_CALL_NO_RWG, tl, tl, avr) +DEF_HELPER_FLAGS_2(vextubrx, TCG_CALL_NO_RWG, tl, tl, avr) +DEF_HELPER_FLAGS_2(vextuhrx, TCG_CALL_NO_RWG, tl, tl, avr) +DEF_HELPER_FLAGS_2(vextuwrx, TCG_CALL_NO_RWG, tl, tl, avr) DEF_HELPER_5(VEXTDUBVLX, void, env, avr, avr, avr, tl) DEF_HELPER_5(VEXTDUHVLX, void, env, avr, avr, avr, tl) DEF_HELPER_5(VEXTDUWVLX, void, env, avr, avr, avr, tl) DEF_HELPER_5(VEXTDDVLX, void, env, avr, avr, avr, tl) =20 -DEF_HELPER_2(vsbox, void, avr, avr) -DEF_HELPER_3(vcipher, void, avr, avr, avr) -DEF_HELPER_3(vcipherlast, void, avr, avr, avr) -DEF_HELPER_3(vncipher, void, avr, avr, avr) -DEF_HELPER_3(vncipherlast, void, avr, avr, avr) -DEF_HELPER_3(vshasigmaw, void, avr, avr, i32) -DEF_HELPER_3(vshasigmad, void, avr, avr, i32) -DEF_HELPER_4(vpermxor, void, avr, avr, avr, avr) +DEF_HELPER_FLAGS_2(vsbox, TCG_CALL_NO_RWG, void, avr, avr) +DEF_HELPER_FLAGS_3(vcipher, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vcipherlast, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vncipher, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vncipherlast, TCG_CALL_NO_RWG, void, avr, avr, avr) +DEF_HELPER_FLAGS_3(vshasigmaw, TCG_CALL_NO_RWG, void, avr, avr, i32) +DEF_HELPER_FLAGS_3(vshasigmad, TCG_CALL_NO_RWG, void, avr, avr, i32) +DEF_HELPER_FLAGS_4(vpermxor, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) =20 DEF_HELPER_4(bcdadd, i32, avr, avr, avr, i32) DEF_HELPER_4(bcdsub, i32, avr, avr, avr, i32) --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653601848; cv=none; d=zohomail.com; s=zohoarc; b=cdmEDwyrHzrYAuZCxBLDg3EYY9AAur7AI8F2i9b2S0+xngMjk6cBgq8cvbKYv2BEWLgd5tNxQg+N6QDQOw8irqsASU/fRUT5prvDZKQ05k0HYDP4qUQxNq03P3eOe7ATlV1qQqRyrN5ZH/2/Dtp8mZF2oH6R2spzQO8qPktgHTs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653601848; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=t1QR62rZfVR+ZIJYCbSorjt2bN524zb9I6F5uFQ8+tw=; b=KX6k2NYqmqNSz19aC+kyQqgKSWCL9XLNgzfSHHNfBagO+LTc5Bn6NeTbFeh6d0WVUs9pK+sUHO0lzPhqC4tlhIDHfzUG3vULafvsC9AQMMsTBRjGeF3reoxU2UMB3PJMOwYK2banva6rPsR6MtNTvHsUl11A87loFbhgArCqX/Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653601848551612.6974079168133; Thu, 26 May 2022 14:50:48 -0700 (PDT) Received: from localhost ([::1]:59742 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLNX-0000cs-G1 for importer@patchew.org; Thu, 26 May 2022 17:50:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53486) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCP-0001rk-4I; Thu, 26 May 2022 17:39:18 -0400 Received: from mail-oo1-xc32.google.com ([2607:f8b0:4864:20::c32]:40947) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCL-00089E-Tn; Thu, 26 May 2022 17:39:16 -0400 Received: by mail-oo1-xc32.google.com with SMTP id s11-20020a4ab54b000000b0035f0178dfcfso506402ooo.7; Thu, 26 May 2022 14:39:12 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=t1QR62rZfVR+ZIJYCbSorjt2bN524zb9I6F5uFQ8+tw=; b=GSZBUFO3yMdSoWOKVBmo+lRV3lVtF5GnMaHJ+syR90pmQEGBDpV3GpsdFi+dYhf+KB NQ5iqiHhcxHGiwF3QimHLM6PBihKXjwsS3ixycvgB4pMe7u9Wd6eWUr05dsEv9WZZmEd dp8AkbBWFCPh7cp/0aI5j2DTq2BbQAHaEt04hyVPkCja23foRI+UjhK7cBs9iBexHsak 7JCy0XggEtmnLUSkMx0gPnXNgkVXGqmT87WEsX6yLzDTERgdplpMmDZ7KWL+N9k7Vhfq dhPrCJh9dpdFnwIYMilOsgvXnETbBJ5y2ZOhX3NROYkdnW720HqTYXlSp0Xc6UF653sK Lepg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=t1QR62rZfVR+ZIJYCbSorjt2bN524zb9I6F5uFQ8+tw=; b=c1PYcTTY7p6XMx0cAGXU5KCduxxEglz6PsdzKEWfThaze9oj1s+CGhO0vRyLHUuxTN jy/lrqLHgn60BcS44ev75M2RJFj2+XUJM18Vk/LQOYlDLC6MnSIsR8kGTW+Mryw+wXd9 0as+b2JBl4oWfqCkXvo5EWTtqOi4qry9tSwT8mw9JK2XuYjKO2dxiwUt8OdLbSDgG74R iFznAbqA0FNpIVdIB7ZP8o3VFLYXCZ9E+6dsLuMfJSyTyLytH3bCjTsh8pYJSvrGWI7M ECCzKYwghkeuQ3cdc8KWzU2qh/vh6m3SX+DNDj+8O+aWyxwYex+kHqmEnAzGVNwf7co1 O4RA== X-Gm-Message-State: AOAM533+FGjqei4ZizB1Py2g+XQp6X6WmTXK+cRDPG0WbLA4I1I5fc7R hgeVROmdR6ihdiShJa45kq6pZx2xH3I= X-Google-Smtp-Source: ABdhPJyrsk4pt2+im5gtayKnRPCLeIfwo6n7VOAvg7XttKrJfj6VTk1PIfz0CgtT10cns9LUwD2wfg== X-Received: by 2002:a05:6820:1794:b0:40e:5e86:1dd4 with SMTP id bs20-20020a056820179400b0040e5e861dd4mr13400222oob.19.1653601151891; Thu, 26 May 2022 14:39:11 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Matheus Ferst Subject: [PULL 13/34] target/ppc: use TCG_CALL_NO_RWG in BCD helpers Date: Thu, 26 May 2022 18:37:54 -0300 Message-Id: <20220526213815.92701-14-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::c32; envelope-from=danielhb413@gmail.com; helo=mail-oo1-xc32.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653601849539100001 Content-Type: text/plain; charset="utf-8" From: Matheus Ferst Helpers of BCD instructions only access the VSRs supplied by the TCGv_ptr arguments, no globals are accessed. Signed-off-by: Matheus Ferst Reviewed-by: Richard Henderson Message-Id: <20220517123929.284511-4-matheus.ferst@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/helper.h | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/target/ppc/helper.h b/target/ppc/helper.h index da740ad9af..a02c4be906 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -327,21 +327,21 @@ DEF_HELPER_FLAGS_3(vshasigmaw, TCG_CALL_NO_RWG, void,= avr, avr, i32) DEF_HELPER_FLAGS_3(vshasigmad, TCG_CALL_NO_RWG, void, avr, avr, i32) DEF_HELPER_FLAGS_4(vpermxor, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) =20 -DEF_HELPER_4(bcdadd, i32, avr, avr, avr, i32) -DEF_HELPER_4(bcdsub, i32, avr, avr, avr, i32) -DEF_HELPER_3(bcdcfn, i32, avr, avr, i32) -DEF_HELPER_3(bcdctn, i32, avr, avr, i32) -DEF_HELPER_3(bcdcfz, i32, avr, avr, i32) -DEF_HELPER_3(bcdctz, i32, avr, avr, i32) -DEF_HELPER_3(bcdcfsq, i32, avr, avr, i32) -DEF_HELPER_3(bcdctsq, i32, avr, avr, i32) -DEF_HELPER_4(bcdcpsgn, i32, avr, avr, avr, i32) -DEF_HELPER_3(bcdsetsgn, i32, avr, avr, i32) -DEF_HELPER_4(bcds, i32, avr, avr, avr, i32) -DEF_HELPER_4(bcdus, i32, avr, avr, avr, i32) -DEF_HELPER_4(bcdsr, i32, avr, avr, avr, i32) -DEF_HELPER_4(bcdtrunc, i32, avr, avr, avr, i32) -DEF_HELPER_4(bcdutrunc, i32, avr, avr, avr, i32) +DEF_HELPER_FLAGS_4(bcdadd, TCG_CALL_NO_RWG, i32, avr, avr, avr, i32) +DEF_HELPER_FLAGS_4(bcdsub, TCG_CALL_NO_RWG, i32, avr, avr, avr, i32) +DEF_HELPER_FLAGS_3(bcdcfn, TCG_CALL_NO_RWG, i32, avr, avr, i32) +DEF_HELPER_FLAGS_3(bcdctn, TCG_CALL_NO_RWG, i32, avr, avr, i32) +DEF_HELPER_FLAGS_3(bcdcfz, TCG_CALL_NO_RWG, i32, avr, avr, i32) +DEF_HELPER_FLAGS_3(bcdctz, TCG_CALL_NO_RWG, i32, avr, avr, i32) +DEF_HELPER_FLAGS_3(bcdcfsq, TCG_CALL_NO_RWG, i32, avr, avr, i32) +DEF_HELPER_FLAGS_3(bcdctsq, TCG_CALL_NO_RWG, i32, avr, avr, i32) +DEF_HELPER_FLAGS_4(bcdcpsgn, TCG_CALL_NO_RWG, i32, avr, avr, avr, i32) +DEF_HELPER_FLAGS_3(bcdsetsgn, TCG_CALL_NO_RWG, i32, avr, avr, i32) +DEF_HELPER_FLAGS_4(bcds, TCG_CALL_NO_RWG, i32, avr, avr, avr, i32) +DEF_HELPER_FLAGS_4(bcdus, TCG_CALL_NO_RWG, i32, avr, avr, avr, i32) +DEF_HELPER_FLAGS_4(bcdsr, TCG_CALL_NO_RWG, i32, avr, avr, avr, i32) +DEF_HELPER_FLAGS_4(bcdtrunc, TCG_CALL_NO_RWG, i32, avr, avr, avr, i32) +DEF_HELPER_FLAGS_4(bcdutrunc, TCG_CALL_NO_RWG, i32, avr, avr, avr, i32) =20 DEF_HELPER_4(xsadddp, void, env, vsr, vsr, vsr) DEF_HELPER_5(xsaddqp, void, env, i32, vsr, vsr, vsr) --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653601620; cv=none; d=zohomail.com; s=zohoarc; b=N/NW9MdYWlLQof7u25RdRodQJMm2X/0IIkh4bUD7HiPwvqr53i3mhoLoN9ndWbQTBSeaC5cUR1jpUw3QEi2NnQQOwoN0pQ0LsMeI8rOBp+IA29CqryuqvHO6Xh0nddYT81qq/YG4wGgK0LvY32DBfj1r5qaTjKsX4SAdUCL6KaU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653601620; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=77khqh3eVBXc495ngnvV1+fZAbX8fHobtC8q49sWqn8=; b=OyPPBLGAAbzJ4prlwIM0ciwIbSogZGQ/LDZqVQkDeAbj/rz7CKNbTCnHbBviTUqeSSHFxgP4vWNaUEklhuriwgG/90E9+tnYg1cwFDtnh5En+egkgmmNskTFi/s47m+hYLiXamA9TnsXG48R3k4kQSJI88sFERZ7mbC49sp+QQU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653601620984667.4426626960035; Thu, 26 May 2022 14:47:00 -0700 (PDT) Received: from localhost ([::1]:54066 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLJr-0004zo-Tn for importer@patchew.org; Thu, 26 May 2022 17:46:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53484) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCP-0001rj-3u; Thu, 26 May 2022 17:39:18 -0400 Received: from mail-oa1-x36.google.com ([2001:4860:4864:20::36]:34931) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCN-00085m-65; Thu, 26 May 2022 17:39:16 -0400 Received: by mail-oa1-x36.google.com with SMTP id 586e51a60fabf-f16a3e0529so3773631fac.2; Thu, 26 May 2022 14:39:14 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=77khqh3eVBXc495ngnvV1+fZAbX8fHobtC8q49sWqn8=; b=q3ISWvxKH0L7xpype0jYOu6cZW8DYKF8N3YwflSk+7cEFYdoJ6+zj4mNAjs0BA7GNf +398av1x/qDclKhfgHqOm25JjU+4LAy9z+mmiuN+i68oEwDmMh9u+W33LImvqdB/gZiP lAXdi2pN8/aJ3cayrMaWiM8QCLr1rljLaWACoo5fXzL8IiK1uzCqHKgn2iPdC1TDryb2 eZs8PL+UdoP/VnhAkwRYhUWkpBxasDczBI+IsF9GkuvUHdzNNhEI6V+YXDhIoWaHrE19 300kD1SzDWkCUhgjt9anaCMDSBDnxwPnvCiGvLCzOHphHdkKd5Jgzvhzt0ZQ4NpBiIOj ktew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=77khqh3eVBXc495ngnvV1+fZAbX8fHobtC8q49sWqn8=; b=wj3+NLC/WjvccffAq210Y65B06wrVl6LxDahv8hvjgrB77We4SA5lhxQVJHpHLuoQX /jmi7z+OAoyZL5JCSA2jCW+jcrHXFdTSjM3DWAZyzp8S2s6Dfk3JFz207d+x3dsMoehL y21j7C4C6+NI4YIFlvRpUH4kSpCTzl/tl5tByuvQ28PL2ioeyCd9Na3xHfGsmaikCwQN 5/sbRHQTo85eF1fUOzlPz5Lre3SQRXMJ6gS9Kf20st5a1fXxBcTH1IsCZb1UYlBEF5Os IZwkGo6nRQAblX9OBOp7HzAKOaK3bpzQK72jjOuryZSLiz2M8DLjy9Aq2lMSZwQVDfxO 51Yw== X-Gm-Message-State: AOAM533V1jtv0U7Y/FK+h0klKRtImzJkRw9dvGCWUicC500djfilMkpM eLaYgSjwunvoKw13Zqc4kfW8t4Q/Mjc= X-Google-Smtp-Source: ABdhPJxHWnIuMQV2gl/e34HuQkAfkzCeI6Sm1DNGva0B/aOREw0W7LtT57T9J8Ec+14duq/0e+uazg== X-Received: by 2002:a05:6870:17a6:b0:f1:ccf4:ad53 with SMTP id r38-20020a05687017a600b000f1ccf4ad53mr2385153oae.48.1653601154172; Thu, 26 May 2022 14:39:14 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Matheus Ferst Subject: [PULL 14/34] target/ppc: use TCG_CALL_NO_RWG in VSX helpers without env Date: Thu, 26 May 2022 18:37:55 -0300 Message-Id: <20220526213815.92701-15-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:4860:4864:20::36; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x36.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653601622262100001 Content-Type: text/plain; charset="utf-8" From: Matheus Ferst Helpers of VSX instructions without cpu_env as an argument do not access globals. Signed-off-by: Matheus Ferst Reviewed-by: Richard Henderson Message-Id: <20220517123929.284511-5-matheus.ferst@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/helper.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/target/ppc/helper.h b/target/ppc/helper.h index a02c4be906..f82c5bd0db 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -533,10 +533,10 @@ DEF_HELPER_FLAGS_5(XXPERMX, TCG_CALL_NO_RWG, void, vs= r, vsr, vsr, vsr, tl) DEF_HELPER_4(xxinsertw, void, env, vsr, vsr, i32) DEF_HELPER_3(xvxsigsp, void, env, vsr, vsr) DEF_HELPER_FLAGS_5(XXEVAL, TCG_CALL_NO_RWG, void, vsr, vsr, vsr, vsr, i32) -DEF_HELPER_5(XXBLENDVB, void, vsr, vsr, vsr, vsr, i32) -DEF_HELPER_5(XXBLENDVH, void, vsr, vsr, vsr, vsr, i32) -DEF_HELPER_5(XXBLENDVW, void, vsr, vsr, vsr, vsr, i32) -DEF_HELPER_5(XXBLENDVD, void, vsr, vsr, vsr, vsr, i32) +DEF_HELPER_FLAGS_5(XXBLENDVB, TCG_CALL_NO_RWG, void, vsr, vsr, vsr, vsr, i= 32) +DEF_HELPER_FLAGS_5(XXBLENDVH, TCG_CALL_NO_RWG, void, vsr, vsr, vsr, vsr, i= 32) +DEF_HELPER_FLAGS_5(XXBLENDVW, TCG_CALL_NO_RWG, void, vsr, vsr, vsr, vsr, i= 32) +DEF_HELPER_FLAGS_5(XXBLENDVD, TCG_CALL_NO_RWG, void, vsr, vsr, vsr, vsr, i= 32) =20 DEF_HELPER_2(efscfsi, i32, env, i32) DEF_HELPER_2(efscfui, i32, env, i32) --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653601898; cv=none; d=zohomail.com; s=zohoarc; b=gOHfoqHBBUXBN9EcWCmYemGC9kx/4MtUnbxHHeZOqFx5+HVjLbwAnqMypKZPNa5SV9K+1UBfv8CuwRxRzGd4EqJK4c1XGmHD8kwOqL44KxI0bjw4lbKNjIcZtl18lQjy9Q2iS+/y0S/jcshZ5VNIY9ZjQfri1zqX/BFnNxa3pcQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653601898; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=GbAOFTEzfGwyyOg6VT6HcjeZQdbcVx0fCwVonLKzZgc=; b=hLPXVhzKDvsN2NgrSBMC9uDtN7XIsW2RyVvb9CXu31p9wfsO504pMkEisa0qYz8kEGlr+bAfytI6MljFCPS7kkmGogQHNPmJnLED5Lo9/UjThdmJYBxKhAUdLVaOGPk5taKszQW+sFP+xnhrTXOL7f6Vv2JCxfLxXRRhVNK1Giw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653601898264563.4042267079748; Thu, 26 May 2022 14:51:38 -0700 (PDT) Received: from localhost ([::1]:35120 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLOL-0003GD-0q for importer@patchew.org; Thu, 26 May 2022 17:51:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53504) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCR-0001uD-VY; Thu, 26 May 2022 17:39:20 -0400 Received: from mail-oi1-x22a.google.com ([2607:f8b0:4864:20::22a]:41716) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCQ-0008AZ-5K; Thu, 26 May 2022 17:39:19 -0400 Received: by mail-oi1-x22a.google.com with SMTP id e189so3640184oia.8; Thu, 26 May 2022 14:39:17 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=GbAOFTEzfGwyyOg6VT6HcjeZQdbcVx0fCwVonLKzZgc=; b=XFyQ6G/ORmsQWvYIWi8tt23azQ23XM7Z53YL4H3PGThGWFXfXbxIK2CnsJC8KKqqYq i3xxRa9KUGmsSu0gq6tZBBBrnlgLweONC/c9Tdjccqzg2DXhoiduyYKNSDLwgn5PeY1B 9PRUR4LSqPRlou6jco8vqy0CY8VjNnYrka4q4kYRsyiF0r4TGmxXnZWNzU8vXFvoIiII 5ZJYMeMvjsh7Dzgs60yrPWZFfU/LWabCCPOzpGoBes+tWAynoOTekFP/RjoI/RV32QRs oJ/Ozczlsl8xWDd3ZDCMzAaG+Vc2cYBcGb19QwiRDqONqTqChxVqKcX5oBHN6xJ5JZt8 GsTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GbAOFTEzfGwyyOg6VT6HcjeZQdbcVx0fCwVonLKzZgc=; b=LZ2qTWSjXuNk3twskqt6aokzzsmjpEeJ8ofgWvIEoBctxW6I6hG9qnoHthQ66AARJH ba5UpMpfTblezPSdcMXwO9MsB2qbP8grclsz8dgawH3kTmFOOrxdnoCmVE+QLpCfpJN2 P3At7VqVHLlx/kFdwVAMY7Lja5aQAQAx8H+NMmZdk4v4WkZesQX/CCWSiqkFpdZHXENZ /n4Ha7VCeLmrDh+UkUgnkTbwPZdJLiqCr344A6fYTo+eKL0lPx63zljtEnVGjyYqaHZ1 t08iq/GdM20aVoc4sSGH2Tnt8cbknSCXnA6NnoKA0O0u4H3IQtXoK9a8OMM2qIGVIQzX 2oRg== X-Gm-Message-State: AOAM530CPGHJwR2/tQf/dnQONtKyUNKPORofP/Ety2XJUUPw4/IbMLrA CYJxp6g53YR95eserE9T7shZzNVde88= X-Google-Smtp-Source: ABdhPJyul5zkTTjPN3ZrySkKW1ii0cYGamL1Gtph7KKrXS8Z6s7ApXfaYdUFkVXVjbeHaze5OUOJZQ== X-Received: by 2002:a05:6808:17a8:b0:327:9efa:cf1a with SMTP id bg40-20020a05680817a800b003279efacf1amr2202389oib.81.1653601156512; Thu, 26 May 2022 14:39:16 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Matheus Ferst Subject: [PULL 15/34] target/ppc: Use TCG_CALL_NO_RWG_SE in fsel helper Date: Thu, 26 May 2022 18:37:56 -0300 Message-Id: <20220526213815.92701-16-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::22a; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x22a.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653601900404100001 Content-Type: text/plain; charset="utf-8" From: Matheus Ferst fsel doesn't change FPSCR and CR1 is handled by gen_set_cr1_from_fpscr, so helper_fsel doesn't need the env argument and can be declared with TCG_CALL_NO_RWG_SE. We also take this opportunity to move the insn to decodetree. Signed-off-by: Matheus Ferst Reviewed-by: Richard Henderson Message-Id: <20220517123929.284511-6-matheus.ferst@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/fpu_helper.c | 15 +++++++-------- target/ppc/helper.h | 2 +- target/ppc/insn32.decode | 7 +++++++ target/ppc/translate/fp-impl.c.inc | 30 ++++++++++++++++++++++++++++-- target/ppc/translate/fp-ops.c.inc | 1 - 5 files changed, 43 insertions(+), 12 deletions(-) diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index 8592727792..588448702f 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -919,18 +919,17 @@ float64 helper_frsqrtes(CPUPPCState *env, float64 arg) } =20 /* fsel - fsel. */ -uint64_t helper_fsel(CPUPPCState *env, uint64_t arg1, uint64_t arg2, - uint64_t arg3) +uint64_t helper_FSEL(uint64_t a, uint64_t b, uint64_t c) { - CPU_DoubleU farg1; + CPU_DoubleU fa; =20 - farg1.ll =3D arg1; + fa.ll =3D a; =20 - if ((!float64_is_neg(farg1.d) || float64_is_zero(farg1.d)) && - !float64_is_any_nan(farg1.d)) { - return arg2; + if ((!float64_is_neg(fa.d) || float64_is_zero(fa.d)) && + !float64_is_any_nan(fa.d)) { + return c; } else { - return arg3; + return b; } } =20 diff --git a/target/ppc/helper.h b/target/ppc/helper.h index f82c5bd0db..ddfa0308bc 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -120,7 +120,7 @@ DEF_HELPER_2(fre, i64, env, i64) DEF_HELPER_2(fres, i64, env, i64) DEF_HELPER_2(frsqrte, i64, env, i64) DEF_HELPER_2(frsqrtes, i64, env, i64) -DEF_HELPER_4(fsel, i64, env, i64, i64, i64) +DEF_HELPER_FLAGS_3(FSEL, TCG_CALL_NO_RWG_SE, i64, i64, i64, i64) =20 DEF_HELPER_FLAGS_2(ftdiv, TCG_CALL_NO_RWG_SE, i32, i64, i64) DEF_HELPER_FLAGS_1(ftsqrt, TCG_CALL_NO_RWG_SE, i32, i64) diff --git a/target/ppc/insn32.decode b/target/ppc/insn32.decode index 39372fe673..1d0b55bde3 100644 --- a/target/ppc/insn32.decode +++ b/target/ppc/insn32.decode @@ -17,6 +17,9 @@ # License along with this library; if not, see . # =20 +&A frt fra frb frc rc:bool +@A ...... frt:5 fra:5 frb:5 frc:5 ..... rc:1 &A + &D rt ra si:int64_t @D ...... rt:5 ra:5 si:s16 &D =20 @@ -308,6 +311,10 @@ STFDU 110111 ..... ...... ............... = @D STFDX 011111 ..... ...... .... 1011010111 - @X STFDUX 011111 ..... ...... .... 1011110111 - @X =20 +### Floating-Point Select Instruction + +FSEL 111111 ..... ..... ..... ..... 10111 . @A + ### Move To/From System Register Instructions =20 SETBC 011111 ..... ..... ----- 0110000000 - @X_bi diff --git a/target/ppc/translate/fp-impl.c.inc b/target/ppc/translate/fp-i= mpl.c.inc index cfb27bd020..f9b58b844e 100644 --- a/target/ppc/translate/fp-impl.c.inc +++ b/target/ppc/translate/fp-impl.c.inc @@ -222,8 +222,34 @@ static void gen_frsqrtes(DisasContext *ctx) tcg_temp_free_i64(t1); } =20 -/* fsel */ -_GEN_FLOAT_ACB(sel, 0x3F, 0x17, 0, PPC_FLOAT_FSEL); +static bool trans_FSEL(DisasContext *ctx, arg_A *a) +{ + TCGv_i64 t0, t1, t2; + + REQUIRE_INSNS_FLAGS(ctx, FLOAT_FSEL); + REQUIRE_FPU(ctx); + + t0 =3D tcg_temp_new_i64(); + t1 =3D tcg_temp_new_i64(); + t2 =3D tcg_temp_new_i64(); + + get_fpr(t0, a->fra); + get_fpr(t1, a->frb); + get_fpr(t2, a->frc); + + gen_helper_FSEL(t0, t0, t1, t2); + set_fpr(a->frt, t0); + if (a->rc) { + gen_set_cr1_from_fpscr(ctx); + } + + tcg_temp_free_i64(t0); + tcg_temp_free_i64(t1); + tcg_temp_free_i64(t2); + + return true; +} + /* fsub - fsubs */ GEN_FLOAT_AB(sub, 0x14, 0x000007C0, 1, PPC_FLOAT); /* Optional: */ diff --git a/target/ppc/translate/fp-ops.c.inc b/target/ppc/translate/fp-op= s.c.inc index 4260635a12..0538ab2d2d 100644 --- a/target/ppc/translate/fp-ops.c.inc +++ b/target/ppc/translate/fp-ops.c.inc @@ -24,7 +24,6 @@ GEN_FLOAT_AC(mul, 0x19, 0x0000F800, 1, PPC_FLOAT), GEN_FLOAT_BS(re, 0x3F, 0x18, 1, PPC_FLOAT_EXT), GEN_FLOAT_BS(res, 0x3B, 0x18, 1, PPC_FLOAT_FRES), GEN_FLOAT_BS(rsqrte, 0x3F, 0x1A, 1, PPC_FLOAT_FRSQRTE), -_GEN_FLOAT_ACB(sel, sel, 0x3F, 0x17, 0, 0, PPC_FLOAT_FSEL), GEN_FLOAT_AB(sub, 0x14, 0x000007C0, 1, PPC_FLOAT), GEN_FLOAT_ACB(madd, 0x1D, 1, PPC_FLOAT), GEN_FLOAT_ACB(msub, 0x1C, 1, PPC_FLOAT), --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653602018; cv=none; d=zohomail.com; s=zohoarc; b=RtLKaApTDglpiE4V5jDUwPf0DQt4lc92vxvLiUi7l0CL8/amwy+AK8CQTo0FCHvrdK0SVRqR0EIrFVNg/LUuOrglIBZGTOKr08S3SN2M6GZu4xdmMDC+xw2uYO22HrYY4/IM4p0cJxnuuNnpPEiIuud4uNDTFx3JTorl+6g3f8I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653602018; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9ZPMxauLQzqGZMA2XAOP14VZN+YIw1f6RR3xyPK7LGo=; b=M9TVMm8JKDPlK3N7WuULHed1nN1tuN2cydsu3i4m3lt0o+8iroHq18pBJz4z4o8stULm6BwblZwZ1Eh4ZOI4sQtxR8f3PzmotpJvJsQ4DaabosQUj9CjxAQIjT3FVPghOlKOse/OckKd3GVP8e1EPorATPegHua4iOWoDvJ7rj4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653602018559224.92997239596866; Thu, 26 May 2022 14:53:38 -0700 (PDT) Received: from localhost ([::1]:40504 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLQH-00072i-Hm for importer@patchew.org; Thu, 26 May 2022 17:53:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53518) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCT-0001w7-T4; Thu, 26 May 2022 17:39:22 -0400 Received: from mail-oo1-xc34.google.com ([2607:f8b0:4864:20::c34]:35623) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCS-0008Aw-7d; Thu, 26 May 2022 17:39:21 -0400 Received: by mail-oo1-xc34.google.com with SMTP id a16-20020a4ad1d0000000b0040edb942aa2so124292oos.2; Thu, 26 May 2022 14:39:19 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9ZPMxauLQzqGZMA2XAOP14VZN+YIw1f6RR3xyPK7LGo=; b=Wx5mgqwwJ/RyT8icdNpQkwyKjDlXiWMwRvZjB6H4Wex531omto/6OuBqn4eDxNr6iW zX8tXh89y2L4+wEmuXriJRkwAG/UZ4zX2j2t9hvdMPm2Td2F/eqzZv+x9ze/soyzoVKA KRJ2AY8VLRE+bpcG1IF83T0FWgJQm5kE5SvB3JnigwAUI3hKdTm12E3CVXiY+OWOJKk7 /i7n/68o03PQS+N3ACVIrw2u1Z1/rg+ZjI+LuCQOfMrgX6251DMCgiBu48LqNABctu5O xrSpyGSjrBn5L9jRSzQs0ztCTuwo1OmGJN2qvNNHhCkHJaLi0WGgHaVIHxo7gztTRmwN KIIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9ZPMxauLQzqGZMA2XAOP14VZN+YIw1f6RR3xyPK7LGo=; b=Hb3b2S1uP9ribNP40LDbqh9AluWN0Mm/Pcd51WTu6f6g6a0r6h/tbGmccwCtePcYAN NGwOgtRgen4xYpQ+mdUW3eWdkfwOlzDKhu85au8KbAU2ZFVeGsCYGSFBf6o30nKEGOzZ ivCVA5kTanxeWoYfCWC9AMxadWbEW+EHO+XrDysCmvbxc4UwyMzrqtIwzx5jCWvaxrEv jnBJRTgtX1sgJ6mWmsXiA4J/umH5soSua9JmZWA4CLpOp+Tr3/lsqtO9Y9cvn/Juqf8C xpOwabmWDZ/GKF0ebkpnjaDKarpAFd86yjiSxXPWhQR91ln/vHX1XT/GOtvHuh7ev/HM WE6w== X-Gm-Message-State: AOAM533cBn0P4JgpFE+r+fr2CCYejNkA0mIiSZ6YC2WSp5ZY7b+RYFlU AemFZ51tnsFBtw+F2BzX1lwFfdbsdek= X-Google-Smtp-Source: ABdhPJwWRBV8IarwLAe5C7hxFn9Hrajp9rpC5u/t0lFpSGRN/GFYu0mk8pEs475Te17txPaWSbQevA== X-Received: by 2002:a4a:2819:0:b0:40e:6f37:1ae8 with SMTP id h25-20020a4a2819000000b0040e6f371ae8mr11695621ooa.44.1653601158792; Thu, 26 May 2022 14:39:18 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Matheus Ferst Subject: [PULL 16/34] target/ppc: declare xscvspdpn helper with call flags Date: Thu, 26 May 2022 18:37:57 -0300 Message-Id: <20220526213815.92701-17-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::c34; envelope-from=danielhb413@gmail.com; helo=mail-oo1-xc34.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653602019381100001 Content-Type: text/plain; charset="utf-8" From: Matheus Ferst Move xscvspdpn to decodetree, declare helper_xscvspdpn with TCG_CALL_NO_RWG_SE and drop the unused env argument. Signed-off-by: Matheus Ferst Reviewed-by: Richard Henderson Message-Id: <20220517123929.284511-7-matheus.ferst@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/fpu_helper.c | 2 +- target/ppc/helper.h | 2 +- target/ppc/insn32.decode | 1 + target/ppc/translate/vsx-impl.c.inc | 22 +++++++++++++++++++++- target/ppc/translate/vsx-ops.c.inc | 1 - 5 files changed, 24 insertions(+), 4 deletions(-) diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index 588448702f..55ef4b5d48 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -2878,7 +2878,7 @@ uint64_t helper_xscvdpspn(CPUPPCState *env, uint64_t = xb) return (result << 32) | result; } =20 -uint64_t helper_xscvspdpn(CPUPPCState *env, uint64_t xb) +uint64_t helper_XSCVSPDPN(uint64_t xb) { return helper_todouble(xb >> 32); } diff --git a/target/ppc/helper.h b/target/ppc/helper.h index ddfa0308bc..9be69fa91e 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -395,7 +395,7 @@ DEF_HELPER_3(XSCVSQQP, void, env, vsr, vsr) DEF_HELPER_3(xscvhpdp, void, env, vsr, vsr) DEF_HELPER_4(xscvsdqp, void, env, i32, vsr, vsr) DEF_HELPER_3(xscvspdp, void, env, vsr, vsr) -DEF_HELPER_2(xscvspdpn, i64, env, i64) +DEF_HELPER_FLAGS_1(XSCVSPDPN, TCG_CALL_NO_RWG_SE, i64, i64) DEF_HELPER_3(xscvdpsxds, void, env, vsr, vsr) DEF_HELPER_3(xscvdpsxws, void, env, vsr, vsr) DEF_HELPER_3(xscvdpuxds, void, env, vsr, vsr) diff --git a/target/ppc/insn32.decode b/target/ppc/insn32.decode index 1d0b55bde3..d4c2615b1a 100644 --- a/target/ppc/insn32.decode +++ b/target/ppc/insn32.decode @@ -708,6 +708,7 @@ XSCVUQQP 111111 ..... 00011 ..... 1101000100 - = @X_tb XSCVSQQP 111111 ..... 01011 ..... 1101000100 - @X_tb XVCVBF16SPN 111100 ..... 10000 ..... 111011011 .. @XX2 XVCVSPBF16 111100 ..... 10001 ..... 111011011 .. @XX2 +XSCVSPDPN 111100 ..... ----- ..... 101001011 .. @XX2 =20 ## VSX Vector Test Least-Significant Bit by Byte Instruction =20 diff --git a/target/ppc/translate/vsx-impl.c.inc b/target/ppc/translate/vsx= -impl.c.inc index 3692740736..9b4f309d9d 100644 --- a/target/ppc/translate/vsx-impl.c.inc +++ b/target/ppc/translate/vsx-impl.c.inc @@ -1045,7 +1045,27 @@ GEN_VSX_HELPER_R2(xscvqpuwz, 0x04, 0x1A, 0x01, PPC2_= ISA300) GEN_VSX_HELPER_X2(xscvhpdp, 0x16, 0x15, 0x10, PPC2_ISA300) GEN_VSX_HELPER_R2(xscvsdqp, 0x04, 0x1A, 0x0A, PPC2_ISA300) GEN_VSX_HELPER_X2(xscvspdp, 0x12, 0x14, 0, PPC2_VSX) -GEN_VSX_HELPER_XT_XB_ENV(xscvspdpn, 0x16, 0x14, 0, PPC2_VSX207) + +bool trans_XSCVSPDPN(DisasContext *ctx, arg_XX2 *a) +{ + TCGv_i64 tmp; + + REQUIRE_INSNS_FLAGS2(ctx, VSX207); + REQUIRE_VSX(ctx); + + tmp =3D tcg_temp_new_i64(); + get_cpu_vsr(tmp, a->xb, true); + + gen_helper_XSCVSPDPN(tmp, tmp); + + set_cpu_vsr(a->xt, tmp, true); + set_cpu_vsr(a->xt, tcg_constant_i64(0), false); + + tcg_temp_free_i64(tmp); + + return true; +} + GEN_VSX_HELPER_X2(xscvdpsxds, 0x10, 0x15, 0, PPC2_VSX) GEN_VSX_HELPER_X2(xscvdpsxws, 0x10, 0x05, 0, PPC2_VSX) GEN_VSX_HELPER_X2(xscvdpuxds, 0x10, 0x14, 0, PPC2_VSX) diff --git a/target/ppc/translate/vsx-ops.c.inc b/target/ppc/translate/vsx-= ops.c.inc index b8fd116728..52d7ab30cd 100644 --- a/target/ppc/translate/vsx-ops.c.inc +++ b/target/ppc/translate/vsx-ops.c.inc @@ -200,7 +200,6 @@ GEN_XX2FORM(xscvdpspn, 0x16, 0x10, PPC2_VSX207), GEN_XX2FORM_EO(xscvhpdp, 0x16, 0x15, 0x10, PPC2_ISA300), GEN_VSX_XFORM_300_EO(xscvsdqp, 0x04, 0x1A, 0x0A, 0x00000001), GEN_XX2FORM(xscvspdp, 0x12, 0x14, PPC2_VSX), -GEN_XX2FORM(xscvspdpn, 0x16, 0x14, PPC2_VSX207), GEN_XX2FORM(xscvdpsxds, 0x10, 0x15, PPC2_VSX), GEN_XX2FORM(xscvdpsxws, 0x10, 0x05, PPC2_VSX), GEN_XX2FORM(xscvdpuxds, 0x10, 0x14, PPC2_VSX), --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653602292; cv=none; d=zohomail.com; s=zohoarc; b=ehIxwZO423m4M+2rt82oDujwxVSzyT5lQrn0CIfo7o6K+VEOJW/o0MuyAh4kE5QaoEJI5HM1dFeAxRiEtqBqUJBZyQa0mpBs52+dRpeq3d2BR79B4WU5/aB3DKBiCrMa0hIJh+8FpIBV3WgD0fBaQg8yDwjulM3/YVAkki9qwfk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653602292; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=GI+749Neze7S/y7cQmy/1jkItDMv0WlylwQZHYhEKCk=; b=VjsyrlLKQoKB5BCOkohgHi4CFjPMGAWSoopKqSwqWlJjRzXK+r06ecHd5AtwaYMRV/3amygGBRgotZcWLWbCmH0/4vM8BEekglDZR8WHT/kRfxqmu6UHCfSUX/5EAO7mCQk/o7Sk85X+P7nrUbY79bQiGcFfIzFEMnjtcoRyqIs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653602292859448.79569749464076; Thu, 26 May 2022 14:58:12 -0700 (PDT) Received: from localhost ([::1]:49730 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLUh-0005LD-D8 for importer@patchew.org; Thu, 26 May 2022 17:58:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53532) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCX-0001xN-Ow; Thu, 26 May 2022 17:39:27 -0400 Received: from mail-oi1-x234.google.com ([2607:f8b0:4864:20::234]:33443) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCU-0008BM-R1; Thu, 26 May 2022 17:39:24 -0400 Received: by mail-oi1-x234.google.com with SMTP id w130so3714878oig.0; Thu, 26 May 2022 14:39:22 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=GI+749Neze7S/y7cQmy/1jkItDMv0WlylwQZHYhEKCk=; b=V60Xgw4BGQRoXYhFBNQTbCQRjAVGlW4jpmgXbjN5R0RbJTt1JYl7RYPDmFf5woWbBg 2gtGMtbckQWKN7q5JcoW7kYjPNyDIkxhmsZzswjrhBYxRGFV06dVAcHkYx7oVaat58gz ycbh80ZNtNstTGDEBFS3fke3ZOC/gfkhMCLXK/1176xOzJZNumzejMz2E6grxGuwfhDx mmZ/FZqxr3BG9ajBOVYsGhRv7MS0T8nfXDAwbVy6glEEIVfu0XaQoJY0tATCCaXn1AFq 5qdg7I8UzhCNsEfIxMYK+Y275AkPddV9kmQzARbwqQo3/DHtXNCGth9Jr1tlw6pcKGOY Oatg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GI+749Neze7S/y7cQmy/1jkItDMv0WlylwQZHYhEKCk=; b=bAYOVSMiZRfAVZZret8i1E+I+GRLkkc9GCltWIyaOmUJO8jlDJVAju99RWTKv7bbBq kyCgaVmPNnLdEmsGmW0ESl6dpWBfvWeBuM5s6cUBSb8TwuREB4UsULrqd5GU1O5bv/s3 0JEYO5hEZVcmhs6/8GVur46dDe8zYYNm3DXha/DMsmchkdMowq4kyDYvW6qpFpHGOZrO R1rF4/OEyPhIyYrtt9kBEwh1n11Ca/dw3JpuPMmmY/WRKw1wzhKwv4yB45pGkQdzRTs7 DQ2EoLfBfMKo7127i/j8ZQ82zX6DYv7JWjH2MMZP3BPSgiLtQDzM8eIVidrGKIffmX9S B1Zw== X-Gm-Message-State: AOAM530QysKTHjecVKuRi8WLXHJUqzdolzApTEc44se95TJnKbSw3zmK uvxkWMYgjQqBG1/+TmyWkE8dMXry7zQ= X-Google-Smtp-Source: ABdhPJzBDXdY8qbGF7wYi++EcNuonP+ym5VZ+jyKxKaMl1IFgWIu+YfmiyW5QIAG5Zob4ra3/+3f2g== X-Received: by 2002:aca:3bc1:0:b0:32b:243e:2542 with SMTP id i184-20020aca3bc1000000b0032b243e2542mr2227552oia.175.1653601161498; Thu, 26 May 2022 14:39:21 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Matheus Ferst Subject: [PULL 17/34] target/ppc: declare xvxsigsp helper with call flags Date: Thu, 26 May 2022 18:37:58 -0300 Message-Id: <20220526213815.92701-18-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::234; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x234.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653602294190100003 Content-Type: text/plain; charset="utf-8" From: Matheus Ferst Move xvxsigsp to decodetree, declare helper_xvxsigsp with TCG_CALL_NO_RWG, and drop the unused env argument. Signed-off-by: Matheus Ferst Reviewed-by: Richard Henderson Message-Id: <20220517123929.284511-8-matheus.ferst@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/fpu_helper.c | 2 +- target/ppc/helper.h | 2 +- target/ppc/insn32.decode | 4 ++++ target/ppc/translate/vsx-impl.c.inc | 18 +++++++++++++++++- target/ppc/translate/vsx-ops.c.inc | 1 - 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index 55ef4b5d48..9489e06504 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -3205,7 +3205,7 @@ uint64_t helper_xsrsp(CPUPPCState *env, uint64_t xb) return xt; } =20 -void helper_xvxsigsp(CPUPPCState *env, ppc_vsr_t *xt, ppc_vsr_t *xb) +void helper_XVXSIGSP(ppc_vsr_t *xt, ppc_vsr_t *xb) { ppc_vsr_t t =3D { }; uint32_t exp, i, fraction; diff --git a/target/ppc/helper.h b/target/ppc/helper.h index 9be69fa91e..aed1b24fdb 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -531,7 +531,7 @@ DEF_HELPER_FLAGS_2(XXGENPCVDM_le_comp, TCG_CALL_NO_RWG,= void, vsr, avr) DEF_HELPER_4(xxextractuw, void, env, vsr, vsr, i32) DEF_HELPER_FLAGS_5(XXPERMX, TCG_CALL_NO_RWG, void, vsr, vsr, vsr, vsr, tl) DEF_HELPER_4(xxinsertw, void, env, vsr, vsr, i32) -DEF_HELPER_3(xvxsigsp, void, env, vsr, vsr) +DEF_HELPER_FLAGS_2(XVXSIGSP, TCG_CALL_NO_RWG, void, vsr, vsr) DEF_HELPER_FLAGS_5(XXEVAL, TCG_CALL_NO_RWG, void, vsr, vsr, vsr, vsr, i32) DEF_HELPER_FLAGS_5(XXBLENDVB, TCG_CALL_NO_RWG, void, vsr, vsr, vsr, vsr, i= 32) DEF_HELPER_FLAGS_5(XXBLENDVH, TCG_CALL_NO_RWG, void, vsr, vsr, vsr, vsr, i= 32) diff --git a/target/ppc/insn32.decode b/target/ppc/insn32.decode index d4c2615b1a..483349ff6d 100644 --- a/target/ppc/insn32.decode +++ b/target/ppc/insn32.decode @@ -710,6 +710,10 @@ XVCVBF16SPN 111100 ..... 10000 ..... 111011011 .. = @XX2 XVCVSPBF16 111100 ..... 10001 ..... 111011011 .. @XX2 XSCVSPDPN 111100 ..... ----- ..... 101001011 .. @XX2 =20 +## VSX Binary Floating-Point Math Support Instructions + +XVXSIGSP 111100 ..... 01001 ..... 111011011 .. @XX2 + ## VSX Vector Test Least-Significant Bit by Byte Instruction =20 XVTLSBB 111100 ... -- 00010 ..... 111011011 . - @XX2_bf_xb diff --git a/target/ppc/translate/vsx-impl.c.inc b/target/ppc/translate/vsx= -impl.c.inc index 9b4f309d9d..ca11e2c4b8 100644 --- a/target/ppc/translate/vsx-impl.c.inc +++ b/target/ppc/translate/vsx-impl.c.inc @@ -2151,7 +2151,23 @@ static void gen_xvxexpdp(DisasContext *ctx) tcg_temp_free_i64(xbl); } =20 -GEN_VSX_HELPER_X2(xvxsigsp, 0x00, 0x04, 0, PPC2_ISA300) +static bool trans_XVXSIGSP(DisasContext *ctx, arg_XX2 *a) +{ + TCGv_ptr t, b; + + REQUIRE_INSNS_FLAGS2(ctx, ISA300); + REQUIRE_VSX(ctx); + + t =3D gen_vsr_ptr(a->xt); + b =3D gen_vsr_ptr(a->xb); + + gen_helper_XVXSIGSP(t, b); + + tcg_temp_free_ptr(t); + tcg_temp_free_ptr(b); + + return true; +} =20 static void gen_xvxsigdp(DisasContext *ctx) { diff --git a/target/ppc/translate/vsx-ops.c.inc b/target/ppc/translate/vsx-= ops.c.inc index 52d7ab30cd..4524c5b02a 100644 --- a/target/ppc/translate/vsx-ops.c.inc +++ b/target/ppc/translate/vsx-ops.c.inc @@ -156,7 +156,6 @@ GEN_XX3FORM(xviexpdp, 0x00, 0x1F, PPC2_ISA300), GEN_XX2FORM_EO(xvxexpdp, 0x16, 0x1D, 0x00, PPC2_ISA300), GEN_XX2FORM_EO(xvxsigdp, 0x16, 0x1D, 0x01, PPC2_ISA300), GEN_XX2FORM_EO(xvxexpsp, 0x16, 0x1D, 0x08, PPC2_ISA300), -GEN_XX2FORM_EO(xvxsigsp, 0x16, 0x1D, 0x09, PPC2_ISA300), =20 /* DCMX =3D bit[25] << 6 | bit[29] << 5 | bit[11:15] */ #define GEN_XX2FORM_DCMX(name, opc2, opc3, fl2) \ --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653602477; cv=none; d=zohomail.com; s=zohoarc; b=gkdqnMVFYAj7J1gO5iiNhDFAc7ug7ahIF5b73BVHwlKsKvS+Upix+nqYZ+oDXt28X5GGiXcQkp2nqmzi+vlSlfqRDSP9PZpLbBV2dOady1kjw72qHfmGBB3Q1bWXbum4wE49BcnBxNjooLKc08U/yvRyh7/lc2VGwAr1SWe318E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653602477; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=tXRBSWKb4PLjXZLqu3E7JPfkFMAssAWYop7DBinq1Io=; b=KkcUppgmFSdP1gojhLdutTUKZWB4xfKrZdoWYnLiuGUZFr6hTFfz28qMygl/CTYrEd6g8MxSojesR6KUfadpCDzGwi3uMTDQp3dAaZfgeIU9FuT/wJ0cxGEPtfUfMw54JqJ8fMAW0AWfGXJXgq+bwWUCDs8OCF0lKcZ4FXzbDZc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653602477237761.5506504363583; Thu, 26 May 2022 15:01:17 -0700 (PDT) Received: from localhost ([::1]:58092 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLXf-0002vt-Sm for importer@patchew.org; Thu, 26 May 2022 18:01:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53546) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCZ-0001xj-LD; Thu, 26 May 2022 17:39:29 -0400 Received: from mail-oi1-x235.google.com ([2607:f8b0:4864:20::235]:42963) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCX-00087c-RP; Thu, 26 May 2022 17:39:27 -0400 Received: by mail-oi1-x235.google.com with SMTP id q10so3632533oia.9; Thu, 26 May 2022 14:39:24 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tXRBSWKb4PLjXZLqu3E7JPfkFMAssAWYop7DBinq1Io=; b=AhWNET7RRQuVa5zRTeng2AHTwh4UsKq87Gp+sv0OzJCc2WCQKjMkXmg5DjYxqxfV6P LDej6jDMoqpJFQUxwsYqzEj6J+FEDp2+Lz0bJsuISun21T0VHS9lAf9YPD4dhTVSehi8 3dGS1npggXGAT3Ci2Opf3ASeHKzwW8StvE0Rnyh4QvYznlVxqQGmjvqWi7SvOX3cco+q XB/6+ieyk2AQ3gyqsz0m/YEdjnyYWbHQyqMrc1b9cSp9I3vwaVDmSbo7/yNC8N+qLmcS kiJHOrWMsUDXiDkxbhrtbvQE/9bPSIhxvehyWRmmdon/+OvGPyOsJc98UEucZajomwcg qHkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tXRBSWKb4PLjXZLqu3E7JPfkFMAssAWYop7DBinq1Io=; b=7SrnhTFx/aPrhAeYR5cqQmJTcxEhjFac9XxFnGBH+w2jZa/Fep+NTxXBjzUcFl5+kE D1pmlesXIzRJ149izRgL95euHk8zCLPcc/tb4TkGl0+H2pa7fslwSoLA7B3nUu+zDL+b eFRcLQgPnXR1oF67NIcLxZ2fsfHMILarVtKfKRIZzYkhRvup6pPa1vIsAV5VyIqN+OYy ty6DpEFO1fTEXQRdCvCnLugKII2q01Hv96HEelirCaYvQLUPrxbVUbhbAseQ1QZutycP 37MTnngOkBetJERgiL/x8omKa/i1+Va3e1GvLB5NgeNe21elIJbzIg8gSi3C8B8yPviS /h+Q== X-Gm-Message-State: AOAM530XVFhAi9+AkRwySXdtLnikWWbjnxv+6mBhwf7R/RZaf4f65I0h 6awK38cCAIAcQWww7Z58Xns21Bnt3uw= X-Google-Smtp-Source: ABdhPJysRC4yXz0zp9paSSXVc6smaMEXtuRoOWcFXuMScN0+/cnOMq8qzMxSbrhMQtNH38i9mU3CCA== X-Received: by 2002:a05:6808:1487:b0:32b:ac3a:6316 with SMTP id e7-20020a056808148700b0032bac3a6316mr2255526oiw.75.1653601163846; Thu, 26 May 2022 14:39:23 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Matheus Ferst Subject: [PULL 18/34] target/ppc: declare xxextractuw and xxinsertw helpers with call flags Date: Thu, 26 May 2022 18:37:59 -0300 Message-Id: <20220526213815.92701-19-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::235; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x235.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653602479525100001 Content-Type: text/plain; charset="utf-8" From: Matheus Ferst Move xxextractuw and xxinsertw to decodetree, declare both helpers with TCG_CALL_NO_RWG, and drop the unused env argument. Signed-off-by: Matheus Ferst Reviewed-by: Richard Henderson Message-Id: <20220517123929.284511-9-matheus.ferst@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/helper.h | 4 +- target/ppc/insn32.decode | 9 +++- target/ppc/int_helper.c | 6 +-- target/ppc/translate/vsx-impl.c.inc | 67 +++++++++++++---------------- target/ppc/translate/vsx-ops.c.inc | 2 - 5 files changed, 41 insertions(+), 47 deletions(-) diff --git a/target/ppc/helper.h b/target/ppc/helper.h index aed1b24fdb..640a70cd5c 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -528,9 +528,9 @@ DEF_HELPER_FLAGS_2(XXGENPCVDM_be_exp, TCG_CALL_NO_RWG, = void, vsr, avr) DEF_HELPER_FLAGS_2(XXGENPCVDM_be_comp, TCG_CALL_NO_RWG, void, vsr, avr) DEF_HELPER_FLAGS_2(XXGENPCVDM_le_exp, TCG_CALL_NO_RWG, void, vsr, avr) DEF_HELPER_FLAGS_2(XXGENPCVDM_le_comp, TCG_CALL_NO_RWG, void, vsr, avr) -DEF_HELPER_4(xxextractuw, void, env, vsr, vsr, i32) +DEF_HELPER_FLAGS_3(XXEXTRACTUW, TCG_CALL_NO_RWG, void, vsr, vsr, i32) DEF_HELPER_FLAGS_5(XXPERMX, TCG_CALL_NO_RWG, void, vsr, vsr, vsr, vsr, tl) -DEF_HELPER_4(xxinsertw, void, env, vsr, vsr, i32) +DEF_HELPER_FLAGS_3(XXINSERTW, TCG_CALL_NO_RWG, void, vsr, vsr, i32) DEF_HELPER_FLAGS_2(XVXSIGSP, TCG_CALL_NO_RWG, void, vsr, vsr) DEF_HELPER_FLAGS_5(XXEVAL, TCG_CALL_NO_RWG, void, vsr, vsr, vsr, vsr, i32) DEF_HELPER_FLAGS_5(XXBLENDVB, TCG_CALL_NO_RWG, void, vsr, vsr, vsr, vsr, i= 32) diff --git a/target/ppc/insn32.decode b/target/ppc/insn32.decode index 483349ff6d..435cf1320c 100644 --- a/target/ppc/insn32.decode +++ b/target/ppc/insn32.decode @@ -161,8 +161,10 @@ &XX2 xt xb @XX2 ...... ..... ..... ..... ......... .. &XX2 xt=3D= %xx_xt xb=3D%xx_xb =20 -&XX2_uim2 xt xb uim:uint8_t -@XX2_uim2 ...... ..... ... uim:2 ..... ......... .. &XX2_uim2 = xt=3D%xx_xt xb=3D%xx_xb +&XX2_uim xt xb uim:uint8_t +@XX2_uim2 ...... ..... ... uim:2 ..... ......... .. &XX2_uim x= t=3D%xx_xt xb=3D%xx_xb + +@XX2_uim4 ...... ..... . uim:4 ..... ......... .. &XX2_uim x= t=3D%xx_xt xb=3D%xx_xb =20 &XX2_bf_xb bf xb @XX2_bf_xb ...... bf:3 .. ..... ..... ......... . . &XX2_bf_xb= xb=3D%xx_xb @@ -666,6 +668,9 @@ XXSPLTW 111100 ..... ---.. ..... 010100100 . . = @XX2_uim2 =20 ## VSX Permute Instructions =20 +XXEXTRACTUW 111100 ..... - .... ..... 010100101 .. @XX2_uim4 +XXINSERTW 111100 ..... - .... ..... 010110101 .. @XX2_uim4 + XXPERM 111100 ..... ..... ..... 00011010 ... @XX3 XXPERMR 111100 ..... ..... ..... 00111010 ... @XX3 XXPERMDI 111100 ..... ..... ..... 0 .. 01010 ... @XX3_dm diff --git a/target/ppc/int_helper.c b/target/ppc/int_helper.c index 8c1674510b..9a361ad241 100644 --- a/target/ppc/int_helper.c +++ b/target/ppc/int_helper.c @@ -1647,8 +1647,7 @@ VSTRI(VSTRIHL, H, 8, true) VSTRI(VSTRIHR, H, 8, false) #undef VSTRI =20 -void helper_xxextractuw(CPUPPCState *env, ppc_vsr_t *xt, - ppc_vsr_t *xb, uint32_t index) +void helper_XXEXTRACTUW(ppc_vsr_t *xt, ppc_vsr_t *xb, uint32_t index) { ppc_vsr_t t =3D { }; size_t es =3D sizeof(uint32_t); @@ -1663,8 +1662,7 @@ void helper_xxextractuw(CPUPPCState *env, ppc_vsr_t *= xt, *xt =3D t; } =20 -void helper_xxinsertw(CPUPPCState *env, ppc_vsr_t *xt, - ppc_vsr_t *xb, uint32_t index) +void helper_XXINSERTW(ppc_vsr_t *xt, ppc_vsr_t *xb, uint32_t index) { ppc_vsr_t t =3D *xt; size_t es =3D sizeof(uint32_t); diff --git a/target/ppc/translate/vsx-impl.c.inc b/target/ppc/translate/vsx= -impl.c.inc index ca11e2c4b8..900c1a1ab2 100644 --- a/target/ppc/translate/vsx-impl.c.inc +++ b/target/ppc/translate/vsx-impl.c.inc @@ -1585,7 +1585,7 @@ static bool trans_XXSEL(DisasContext *ctx, arg_XX4 *a) return true; } =20 -static bool trans_XXSPLTW(DisasContext *ctx, arg_XX2_uim2 *a) +static bool trans_XXSPLTW(DisasContext *ctx, arg_XX2_uim *a) { int tofs, bofs; =20 @@ -1795,42 +1795,35 @@ static void gen_xxsldwi(DisasContext *ctx) tcg_temp_free_i64(xtl); } =20 -#define VSX_EXTRACT_INSERT(name) \ -static void gen_##name(DisasContext *ctx) \ -{ \ - TCGv_ptr xt, xb; \ - TCGv_i32 t0; \ - TCGv_i64 t1; \ - uint8_t uimm =3D UIMM4(ctx->opcode); \ - \ - if (unlikely(!ctx->vsx_enabled)) { \ - gen_exception(ctx, POWERPC_EXCP_VSXU); \ - return; \ - } \ - xt =3D gen_vsr_ptr(xT(ctx->opcode)); \ - xb =3D gen_vsr_ptr(xB(ctx->opcode)); \ - t0 =3D tcg_temp_new_i32(); \ - t1 =3D tcg_temp_new_i64(); \ - /* \ - * uimm > 15 out of bound and for \ - * uimm > 12 handle as per hardware in helper \ - */ \ - if (uimm > 15) { \ - tcg_gen_movi_i64(t1, 0); \ - set_cpu_vsr(xT(ctx->opcode), t1, true); \ - set_cpu_vsr(xT(ctx->opcode), t1, false); \ - return; \ - } \ - tcg_gen_movi_i32(t0, uimm); \ - gen_helper_##name(cpu_env, xt, xb, t0); \ - tcg_temp_free_ptr(xb); \ - tcg_temp_free_ptr(xt); \ - tcg_temp_free_i32(t0); \ - tcg_temp_free_i64(t1); \ -} - -VSX_EXTRACT_INSERT(xxextractuw) -VSX_EXTRACT_INSERT(xxinsertw) +static bool do_vsx_extract_insert(DisasContext *ctx, arg_XX2_uim *a, + void (*gen_helper)(TCGv_ptr, TCGv_ptr, TCGv_i32)) +{ + TCGv_i64 zero =3D tcg_constant_i64(0); + TCGv_ptr xt, xb; + + REQUIRE_INSNS_FLAGS2(ctx, ISA300); + REQUIRE_VSX(ctx); + + /* + * uim > 15 out of bound and for + * uim > 12 handle as per hardware in helper + */ + if (a->uim > 15) { + set_cpu_vsr(a->xt, zero, true); + set_cpu_vsr(a->xt, zero, false); + } else { + xt =3D gen_vsr_ptr(a->xt); + xb =3D gen_vsr_ptr(a->xb); + gen_helper(xt, xb, tcg_constant_i32(a->uim)); + tcg_temp_free_ptr(xb); + tcg_temp_free_ptr(xt); + } + + return true; +} + +TRANS(XXEXTRACTUW, do_vsx_extract_insert, gen_helper_XXEXTRACTUW) +TRANS(XXINSERTW, do_vsx_extract_insert, gen_helper_XXINSERTW) =20 #ifdef TARGET_PPC64 static void gen_xsxexpdp(DisasContext *ctx) diff --git a/target/ppc/translate/vsx-ops.c.inc b/target/ppc/translate/vsx-= ops.c.inc index 4524c5b02a..bff14bbece 100644 --- a/target/ppc/translate/vsx-ops.c.inc +++ b/target/ppc/translate/vsx-ops.c.inc @@ -320,5 +320,3 @@ VSX_LOGICAL(xxlorc, 0x8, 0x15, PPC2_VSX207), GEN_XX3FORM(xxmrghw, 0x08, 0x02, PPC2_VSX), GEN_XX3FORM(xxmrglw, 0x08, 0x06, PPC2_VSX), GEN_XX3FORM_DM(xxsldwi, 0x08, 0x00), -GEN_XX2FORM_EXT(xxextractuw, 0x0A, 0x0A, PPC2_ISA300), -GEN_XX2FORM_EXT(xxinsertw, 0x0A, 0x0B, PPC2_ISA300), --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653602280; cv=none; d=zohomail.com; s=zohoarc; b=FZotsQd69ypYQXl5bkpH2VjDaJeVCpsgp1LQpdIRSAQm5DjxrICLfeQ0jcTunis8vNHB/wCtVL9J1Chb2AMmkBnEuuujPJ41uHFfmC6WqwgrLmkpezYUIlLT1yTPQknke94uI8PUl0x/OeMYtlVJLNWhZZ4t25BZwQ9rBJE3mIQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653602280; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=OSARLpvl5HOEG35MaaIA9lU2nypVaQbJw20HJ3sH30M=; b=LI4FAsW8QS76OpOBxg6qIhlJ2jnusfs1nPAwJi6iZuS4x4dOzMZnuvjw9uGs0bK0RLOZ6FT9g5at/lqPQiyjlgTS/FNg6izKSlluwwtaGck74gDbbVkbPdskLBI3kQi0nJFOU8puhSyKFz7ZuZe9dGogpvh3ZzXysqydPUvfygg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 165360228017141.188373196898965; Thu, 26 May 2022 14:58:00 -0700 (PDT) Received: from localhost ([::1]:48628 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLUV-0004Ye-1e for importer@patchew.org; Thu, 26 May 2022 17:57:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53560) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCb-0001xt-4h; Thu, 26 May 2022 17:39:29 -0400 Received: from mail-ot1-x336.google.com ([2607:f8b0:4864:20::336]:36633) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCZ-000878-Kn; Thu, 26 May 2022 17:39:28 -0400 Received: by mail-ot1-x336.google.com with SMTP id e11-20020a9d6e0b000000b0060afcbafa80so1832793otr.3; Thu, 26 May 2022 14:39:26 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OSARLpvl5HOEG35MaaIA9lU2nypVaQbJw20HJ3sH30M=; b=obdwbCCoO6lY5C3wUfXCw8+OTkUe0DOVLVW/OFNrVGrjPSlOg0WHqRAlZRKYhVTP/s d2D8cSY0yFkOgJc8VGJHwxituep8YYCy4YesT/sZ/hNVxZHcV1Lxdijcq4cKBpqlRnPh DtucUDoqEcnnu/akgUM4/kMlFD372jIp2uyotcMza9wVWr3xiQg7fe+w4ZUGVi48lREF l9WtnquZMhYCgBX9Lrb5SMk6VI0jNZZAUbg3tsLCos5PvpagHb62z9zf6JcPA9sj3mA0 lq8fMRAL2vMLwmysWUsGOQmokZQlliibkPvaYyiY41BMJyDHl+18RycfHpZaJ9tg4NW7 lrTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=OSARLpvl5HOEG35MaaIA9lU2nypVaQbJw20HJ3sH30M=; b=0b+m7AntaVBJTtvQzRRKIsx+wsAq3L5Rkob0yCfuPcC2gaOvLNm1CDw4r2Fo/qFLka FPHQLEjD17f4QP6dvJZ0ZMNnZjfWvPKbEUX4idwQwLzs51TlN8VIT4dnayUBXuVR7jcO v/BfttEWAEeosvMHdMcQMuVVvnmL54Eto6n3Jsqdj3owU8FMkWmwGzZ/d5e++2JyEPHe m/8iavjKtkWWOuCw5r1aG/WFg1PWSq2Vv/8H3pxlwrswfobj8LRtk/DOXoR35XtG62FD qbyt4qIhma3IJPuXH8vQZ/jrstseEEA39aNVcPmyrGFcDm2a7M/0+DTweSmSE066ke/t F/UQ== X-Gm-Message-State: AOAM531OndGxZaoP4qzFrRQhqjtrat9o4pNUWjNYPN0iKZizYQV1pRwO M/pp259nxeHg2rN/9RlqSaaoiMx3OSU= X-Google-Smtp-Source: ABdhPJw5wktXpc2nKBHmzCVrFKFiO+gnT/TexmkTsRGTjn3iOS8TXYS24nefkpqZ1JBV5H4fbpbFqA== X-Received: by 2002:a9d:4802:0:b0:60a:f005:d18f with SMTP id c2-20020a9d4802000000b0060af005d18fmr12840863otf.253.1653601166111; Thu, 26 May 2022 14:39:26 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Matheus Ferst Subject: [PULL 19/34] target/ppc: introduce do_va_helper Date: Thu, 26 May 2022 18:38:00 -0300 Message-Id: <20220526213815.92701-20-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::336; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x336.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653602282112100001 Content-Type: text/plain; charset="utf-8" From: Matheus Ferst Signed-off-by: Matheus Ferst Reviewed-by: Richard Henderson Message-Id: <20220517123929.284511-10-matheus.ferst@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/translate/vmx-impl.c.inc | 32 +++++------------------------ 1 file changed, 5 insertions(+), 27 deletions(-) diff --git a/target/ppc/translate/vmx-impl.c.inc b/target/ppc/translate/vmx= -impl.c.inc index 764ac45409..e66301c007 100644 --- a/target/ppc/translate/vmx-impl.c.inc +++ b/target/ppc/translate/vmx-impl.c.inc @@ -2553,20 +2553,17 @@ static void gen_vmladduhm(DisasContext *ctx) tcg_temp_free_ptr(rd); } =20 -static bool trans_VPERM(DisasContext *ctx, arg_VA *a) +static bool do_va_helper(DisasContext *ctx, arg_VA *a, + void (*gen_helper)(TCGv_ptr, TCGv_ptr, TCGv_ptr, TCGv_ptr)) { TCGv_ptr vrt, vra, vrb, vrc; - - REQUIRE_INSNS_FLAGS(ctx, ALTIVEC); REQUIRE_VECTOR(ctx); =20 vrt =3D gen_avr_ptr(a->vrt); vra =3D gen_avr_ptr(a->vra); vrb =3D gen_avr_ptr(a->vrb); vrc =3D gen_avr_ptr(a->rc); - - gen_helper_VPERM(vrt, vra, vrb, vrc); - + gen_helper(vrt, vra, vrb, vrc); tcg_temp_free_ptr(vrt); tcg_temp_free_ptr(vra); tcg_temp_free_ptr(vrb); @@ -2575,27 +2572,8 @@ static bool trans_VPERM(DisasContext *ctx, arg_VA *a) return true; } =20 -static bool trans_VPERMR(DisasContext *ctx, arg_VA *a) -{ - TCGv_ptr vrt, vra, vrb, vrc; - - REQUIRE_INSNS_FLAGS2(ctx, ISA300); - REQUIRE_VECTOR(ctx); - - vrt =3D gen_avr_ptr(a->vrt); - vra =3D gen_avr_ptr(a->vra); - vrb =3D gen_avr_ptr(a->vrb); - vrc =3D gen_avr_ptr(a->rc); - - gen_helper_VPERMR(vrt, vra, vrb, vrc); - - tcg_temp_free_ptr(vrt); - tcg_temp_free_ptr(vra); - tcg_temp_free_ptr(vrb); - tcg_temp_free_ptr(vrc); - - return true; -} +TRANS_FLAGS(ALTIVEC, VPERM, do_va_helper, gen_helper_VPERM) +TRANS_FLAGS2(ISA300, VPERMR, do_va_helper, gen_helper_VPERMR) =20 static bool trans_VSEL(DisasContext *ctx, arg_VA *a) { --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653602707; cv=none; d=zohomail.com; s=zohoarc; b=RBFK7Ip/3II4SWy+cb6f0mh9P7pz9b4z6lkHGOx6wMShYdEkdDAhfmIJiv56yrgYxqEL7gPqQD0q+zceVHFIFkX+Gc2MwwYhrsH3pYfWkxymaEtk06tEEXcCccSisdmi2jnTlOZY09Q6395UvmcH380CAZUtQM+JNbyYBa6kWvY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653602707; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Ec57wqfj4/4HaYaaPMeNNLCFRUZkog8v+rdAl0XYud4=; b=Hmqcxav767dGJzqVvOEE5PVgioEfLvQZwZF+x8DBTRutRJBy9vhFdCsnxF6PMikMvSEYLKfBiDOQ5trE05/712fP6qUvO5sQGmtOqUHjiq9Ktpbo8GXqt3nbg7iyKbZKbzaAaJ3Hd21/4Ggu+55B7SUlBK2ekGww7Mmld9L3eoI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653602707189418.8398205317661; Thu, 26 May 2022 15:05:07 -0700 (PDT) Received: from localhost ([::1]:38122 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLbN-0001OQ-MS for importer@patchew.org; Thu, 26 May 2022 18:05:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53576) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCd-0001zN-Vv; Thu, 26 May 2022 17:39:33 -0400 Received: from mail-ot1-x330.google.com ([2607:f8b0:4864:20::330]:41787) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCc-0008Bz-BB; Thu, 26 May 2022 17:39:31 -0400 Received: by mail-ot1-x330.google.com with SMTP id g13-20020a9d6b0d000000b0060b13026e0dso1795674otp.8; Thu, 26 May 2022 14:39:29 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Ec57wqfj4/4HaYaaPMeNNLCFRUZkog8v+rdAl0XYud4=; b=HiVBwELznCkGd+JmGLz9W+dU5/4neUSGSYqI6GydgmQEsxIbfZ1YHd6Sto//jziJOF tcDowsSska2bJ0eSt6Drj6dd43R0d5EL0RQP6TX2XngkhB7sTiGnWpG3d4c0SOhyFzb4 RDTyUhyz5lC3ZfMEwCDw/CakuLnKvCNkZjX6bPM2pFM2uziHSjEkXmJr2hOxWPI2gD8d qNcKhGQznclKM1EYQSmXG1rP4eZLS3gJ/SlQyifvtZ3+2tbrSbBRKblNLjbUFrO2c9kP 9Cz4MpB7qzcDl04u3RVFBqjKC3guSvhZsHBRgbR6L8REeA08JclJFmN/Fu/ySaGPySav QDmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Ec57wqfj4/4HaYaaPMeNNLCFRUZkog8v+rdAl0XYud4=; b=mcVB8eMEce30eE7MhBBfqpyD2RdoJvc2U0gMiTXm9rxyZtG0oHd4ypjzTR4xtQE0Ka QMSW1dePhkuPWI8j33ojsqNcQYNhL/lO8dXpVG6SILFH29xoehz5VLvgzop+Z6bUG7z1 JMaO2KhQnJ9T0Nqdp4dhHloijyHQ1Us5lTELIO5uQYTpUPPMMZTg0q4HV2cvF0AHWYfX mgi+fJ79rgPNyDNDWk8EPStePRvPGnu5iBzSqY0/cO9zVGdy3Vw6TQd5LWSUUiowb632 CJqnlSWPXWkaEyCDwp0iuky6cGf+7b6n54+2AU3vbh0WSTESzYyWwB14EVs6/hU5Y1kc EZVQ== X-Gm-Message-State: AOAM532ZD325WTPwQPLVOgrOmpiwwVKuFhh9DH0lMnb5/npIvP91Wffq 2RT0d1jBveQglq7VpT5pjsKW0aaUAYI= X-Google-Smtp-Source: ABdhPJxJW0R/I8NqpVMzDV9RAxFMRks/OCLp6nzOswDL+09FQqnCZn9gkY6l6/5hFZeSdCWUo/80Pg== X-Received: by 2002:a9d:69d7:0:b0:60b:cee:4cd0 with SMTP id v23-20020a9d69d7000000b0060b0cee4cd0mr9408198oto.145.1653601168742; Thu, 26 May 2022 14:39:28 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Matheus Ferst Subject: [PULL 20/34] target/ppc: declare vmsum[um]bm helpers with call flags Date: Thu, 26 May 2022 18:38:01 -0300 Message-Id: <20220526213815.92701-21-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::330; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x330.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653602708996100001 Content-Type: text/plain; charset="utf-8" From: Matheus Ferst Move vmsumubm and vmsummbm to decodetree, declare both helpers with TCG_CALL_NO_RWG, and drop the unused env argument. Signed-off-by: Matheus Ferst Reviewed-by: Richard Henderson Message-Id: <20220517123929.284511-11-matheus.ferst@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/helper.h | 4 ++-- target/ppc/insn32.decode | 3 +++ target/ppc/int_helper.c | 6 ++---- target/ppc/translate/vmx-impl.c.inc | 5 ++++- target/ppc/translate/vmx-ops.c.inc | 2 -- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/target/ppc/helper.h b/target/ppc/helper.h index 640a70cd5c..f0761fe38d 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -223,8 +223,8 @@ DEF_HELPER_FLAGS_2(vupkhsw, TCG_CALL_NO_RWG, void, avr,= avr) DEF_HELPER_FLAGS_2(vupklsb, TCG_CALL_NO_RWG, void, avr, avr) DEF_HELPER_FLAGS_2(vupklsh, TCG_CALL_NO_RWG, void, avr, avr) DEF_HELPER_FLAGS_2(vupklsw, TCG_CALL_NO_RWG, void, avr, avr) -DEF_HELPER_5(vmsumubm, void, env, avr, avr, avr, avr) -DEF_HELPER_5(vmsummbm, void, env, avr, avr, avr, avr) +DEF_HELPER_FLAGS_4(VMSUMUBM, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) +DEF_HELPER_FLAGS_4(VMSUMMBM, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) DEF_HELPER_FLAGS_4(VPERM, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) DEF_HELPER_FLAGS_4(VPERMR, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) DEF_HELPER_4(vpkshss, void, env, avr, avr, avr) diff --git a/target/ppc/insn32.decode b/target/ppc/insn32.decode index 435cf1320c..fdb8d76456 100644 --- a/target/ppc/insn32.decode +++ b/target/ppc/insn32.decode @@ -599,6 +599,9 @@ VMULLD 000100 ..... ..... ..... 00111001001 = @VX =20 ## Vector Multiply-Sum Instructions =20 +VMSUMUBM 000100 ..... ..... ..... ..... 100100 @VA +VMSUMMBM 000100 ..... ..... ..... ..... 100101 @VA + VMSUMCUD 000100 ..... ..... ..... ..... 010111 @VA VMSUMUDM 000100 ..... ..... ..... ..... 100011 @VA =20 diff --git a/target/ppc/int_helper.c b/target/ppc/int_helper.c index 9a361ad241..85a7442103 100644 --- a/target/ppc/int_helper.c +++ b/target/ppc/int_helper.c @@ -875,8 +875,7 @@ VMRG(w, u32, VsrW) #undef VMRG_DO #undef VMRG =20 -void helper_vmsummbm(CPUPPCState *env, ppc_avr_t *r, ppc_avr_t *a, - ppc_avr_t *b, ppc_avr_t *c) +void helper_VMSUMMBM(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *= c) { int32_t prod[16]; int i; @@ -928,8 +927,7 @@ void helper_vmsumshs(CPUPPCState *env, ppc_avr_t *r, pp= c_avr_t *a, } } =20 -void helper_vmsumubm(CPUPPCState *env, ppc_avr_t *r, ppc_avr_t *a, - ppc_avr_t *b, ppc_avr_t *c) +void helper_VMSUMUBM(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *= c) { uint16_t prod[16]; int i; diff --git a/target/ppc/translate/vmx-impl.c.inc b/target/ppc/translate/vmx= -impl.c.inc index e66301c007..4cbd724641 100644 --- a/target/ppc/translate/vmx-impl.c.inc +++ b/target/ppc/translate/vmx-impl.c.inc @@ -2587,9 +2587,12 @@ static bool trans_VSEL(DisasContext *ctx, arg_VA *a) return true; } =20 -GEN_VAFORM_PAIRED(vmsumubm, vmsummbm, 18) GEN_VAFORM_PAIRED(vmsumuhm, vmsumuhs, 19) GEN_VAFORM_PAIRED(vmsumshm, vmsumshs, 20) + +TRANS_FLAGS(ALTIVEC, VMSUMUBM, do_va_helper, gen_helper_VMSUMUBM) +TRANS_FLAGS(ALTIVEC, VMSUMMBM, do_va_helper, gen_helper_VMSUMMBM) + GEN_VAFORM_PAIRED(vmaddfp, vnmsubfp, 23) =20 GEN_VXFORM_NOA(vclzb, 1, 28) diff --git a/target/ppc/translate/vmx-ops.c.inc b/target/ppc/translate/vmx-= ops.c.inc index d960648d52..5b85322c06 100644 --- a/target/ppc/translate/vmx-ops.c.inc +++ b/target/ppc/translate/vmx-ops.c.inc @@ -221,11 +221,9 @@ GEN_VXFORM_UIMM(vcfsx, 5, 13), GEN_VXFORM_UIMM(vctuxs, 5, 14), GEN_VXFORM_UIMM(vctsxs, 5, 15), =20 - #define GEN_VAFORM_PAIRED(name0, name1, opc2) \ GEN_HANDLER(name0##_##name1, 0x04, opc2, 0xFF, 0x00000000, PPC_ALTIVEC) GEN_VAFORM_PAIRED(vmhaddshs, vmhraddshs, 16), -GEN_VAFORM_PAIRED(vmsumubm, vmsummbm, 18), GEN_VAFORM_PAIRED(vmsumuhm, vmsumuhs, 19), GEN_VAFORM_PAIRED(vmsumshm, vmsumshs, 20), GEN_VAFORM_PAIRED(vmaddfp, vnmsubfp, 23), --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653602703; cv=none; d=zohomail.com; s=zohoarc; b=HHGACyYOsZ7O0sPjwFjjwU24oOjvwvlV2wJAHuN8g9AAI5+cr7f7w7su7w8HNSHEgRowVVP4E90J6itaZGkHyhBy5n+F15tU8KjYQcQkR1r5vUEO+ulSz9IJU1VOls4ygl6/2vgxZcy1YuMIV7SWZEeynLsRj2goxuOt4JkSCeE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653602703; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=C3ijBQSN6trWG0O+mjBr0Jm6tSXTDIuMinn/Bnh7V80=; b=cGeJ6at7ANaGQRCGYmJXyKL+t4b3dFAacRzAY02e/gBKW1YZYVlPBXp4HZPwsWuKDQu6MjqhM8JCemxWg7G1uBbCTRPGVE9YhV6UcNEB3aDiHzsG8dwLztA48wu8PkIPcjK4ZTnOoLv8+G6x5yQjAHX+ugDO1/yXuTDmcsR+IJ8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653602703585906.6685818815603; Thu, 26 May 2022 15:05:03 -0700 (PDT) Received: from localhost ([::1]:37876 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLbK-0001EL-CU for importer@patchew.org; Thu, 26 May 2022 18:05:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53598) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCg-00020C-9z; Thu, 26 May 2022 17:39:35 -0400 Received: from mail-oa1-x31.google.com ([2001:4860:4864:20::31]:40797) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCe-0008CC-HQ; Thu, 26 May 2022 17:39:34 -0400 Received: by mail-oa1-x31.google.com with SMTP id 586e51a60fabf-f2cd424b9cso3751848fac.7; Thu, 26 May 2022 14:39:31 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=C3ijBQSN6trWG0O+mjBr0Jm6tSXTDIuMinn/Bnh7V80=; b=cLc25yALY0Nf64chnzp4pCly10IT+X/626Pc0bYEkN5V7a/vNPPdMHduJ5hJGUZbOK 9cLy1BK+mQZ73JQPpqNVQqTAwdt9NKDMaxAf65b8mRUR9pYMqaIq5R1Rn6AkZFYIx/yw qHadZNJQlLC9+J5i3OCejrFh70Qjy+VvPi++qYRFjmMXZPQEkvQS19X20tlZ3VQWaeBi EVxLKLhOOC0Ow0BAHKf6A+MFh+A58p9wVwa5y6rKNTSkBO3Hvkj4qBO90z68mJl7JdMD Ffq18WoYnRhPrAA9hoS0YyLUMm4Nk5QzLzOYzgMEaN7dPkWe25XCmaOwM87xR4/Djx98 tABg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=C3ijBQSN6trWG0O+mjBr0Jm6tSXTDIuMinn/Bnh7V80=; b=lCXd3kx+6FrY4EvAQEyr5uN2v8hjOC0j7jv0HSaNyIe+LKJnWjal43Gd+2mtr6Mf5o KbVDcJHqBiOb24cZBBJpe7nJbsZ9jNfrzq+n14vstSJCDiPCdFSUNM2jTVVlw+B+bH5H JAr+OKyrYdl2A9dyagVaJOdtqiFEylU4U61kFNTqEGYmJapbQ/+h/9mPaLW/BW01ePAN /DsBafcKA45/MhuBC63cyxWGnweDZ1EASsVX81t6a9NuALnm1QKmtodaO0BR7DFabpRz sfp9fSYrW5zM0h9uoZNJdydJZFZbL96vysTA845SSbFyrr5TSc3mCvnA6Lwl216SC3Th fRbQ== X-Gm-Message-State: AOAM530QK8zC9wnGqnhxbyDgrjE+8d4vlSSrof6/JgQ5UtVj5xPkYdCI 2YcMIknhaQFxyIoseR/436CU8pfMApE= X-Google-Smtp-Source: ABdhPJzgRtM/fOINdb9KiBSdIprpAygQ8Kq0N7EUIEKMFfIMxrUgnnXpwz8zq/V9pwwd4Y6rVgy++Q== X-Received: by 2002:a05:6870:b3a2:b0:e9:f22:5819 with SMTP id w34-20020a056870b3a200b000e90f225819mr2298285oap.293.1653601171012; Thu, 26 May 2022 14:39:31 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Matheus Ferst Subject: [PULL 21/34] target/ppc: declare vmsumuh[ms] helper with call flags Date: Thu, 26 May 2022 18:38:02 -0300 Message-Id: <20220526213815.92701-22-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:4860:4864:20::31; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x31.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653602704900100001 Content-Type: text/plain; charset="utf-8" From: Matheus Ferst Move vmsumuhm and vmsumuhs to decodetree, declare vmsumuhm helper with TCG_CALL_NO_RWG, and drop the unused env argument. Signed-off-by: Matheus Ferst Reviewed-by: Richard Henderson Message-Id: <20220517123929.284511-12-matheus.ferst@eldorado.org.br> [danielhb: added #undef VMSUMUHM to fix ppc64 build] Signed-off-by: Daniel Henrique Barboza --- target/ppc/helper.h | 4 ++-- target/ppc/insn32.decode | 2 ++ target/ppc/int_helper.c | 5 ++--- target/ppc/translate/vmx-impl.c.inc | 24 ++++++++++++++++++++++-- target/ppc/translate/vmx-ops.c.inc | 1 - tcg/ppc/tcg-target.c.inc | 1 + 6 files changed, 29 insertions(+), 8 deletions(-) diff --git a/target/ppc/helper.h b/target/ppc/helper.h index f0761fe38d..5127851f2c 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -242,8 +242,8 @@ DEF_HELPER_4(vpkudum, void, env, avr, avr, avr) DEF_HELPER_FLAGS_3(vpkpx, TCG_CALL_NO_RWG, void, avr, avr, avr) DEF_HELPER_5(vmhaddshs, void, env, avr, avr, avr, avr) DEF_HELPER_5(vmhraddshs, void, env, avr, avr, avr, avr) -DEF_HELPER_5(vmsumuhm, void, env, avr, avr, avr, avr) -DEF_HELPER_5(vmsumuhs, void, env, avr, avr, avr, avr) +DEF_HELPER_FLAGS_4(VMSUMUHM, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) +DEF_HELPER_5(VMSUMUHS, void, env, avr, avr, avr, avr) DEF_HELPER_5(vmsumshm, void, env, avr, avr, avr, avr) DEF_HELPER_5(vmsumshs, void, env, avr, avr, avr, avr) DEF_HELPER_FLAGS_4(vmladduhm, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) diff --git a/target/ppc/insn32.decode b/target/ppc/insn32.decode index fdb8d76456..43ea03c3e7 100644 --- a/target/ppc/insn32.decode +++ b/target/ppc/insn32.decode @@ -601,6 +601,8 @@ VMULLD 000100 ..... ..... ..... 00111001001 = @VX =20 VMSUMUBM 000100 ..... ..... ..... ..... 100100 @VA VMSUMMBM 000100 ..... ..... ..... ..... 100101 @VA +VMSUMUHM 000100 ..... ..... ..... ..... 100110 @VA +VMSUMUHS 000100 ..... ..... ..... ..... 100111 @VA =20 VMSUMCUD 000100 ..... ..... ..... ..... 010111 @VA VMSUMUDM 000100 ..... ..... ..... ..... 100011 @VA diff --git a/target/ppc/int_helper.c b/target/ppc/int_helper.c index 85a7442103..9285a1c2a1 100644 --- a/target/ppc/int_helper.c +++ b/target/ppc/int_helper.c @@ -942,8 +942,7 @@ void helper_VMSUMUBM(ppc_avr_t *r, ppc_avr_t *a, ppc_av= r_t *b, ppc_avr_t *c) } } =20 -void helper_vmsumuhm(CPUPPCState *env, ppc_avr_t *r, ppc_avr_t *a, - ppc_avr_t *b, ppc_avr_t *c) +void helper_VMSUMUHM(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *= c) { uint32_t prod[8]; int i; @@ -957,7 +956,7 @@ void helper_vmsumuhm(CPUPPCState *env, ppc_avr_t *r, pp= c_avr_t *a, } } =20 -void helper_vmsumuhs(CPUPPCState *env, ppc_avr_t *r, ppc_avr_t *a, +void helper_VMSUMUHS(CPUPPCState *env, ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c) { uint32_t prod[8]; diff --git a/target/ppc/translate/vmx-impl.c.inc b/target/ppc/translate/vmx= -impl.c.inc index 4cbd724641..da81296b96 100644 --- a/target/ppc/translate/vmx-impl.c.inc +++ b/target/ppc/translate/vmx-impl.c.inc @@ -2587,11 +2587,31 @@ static bool trans_VSEL(DisasContext *ctx, arg_VA *a) return true; } =20 -GEN_VAFORM_PAIRED(vmsumuhm, vmsumuhs, 19) GEN_VAFORM_PAIRED(vmsumshm, vmsumshs, 20) - TRANS_FLAGS(ALTIVEC, VMSUMUBM, do_va_helper, gen_helper_VMSUMUBM) TRANS_FLAGS(ALTIVEC, VMSUMMBM, do_va_helper, gen_helper_VMSUMMBM) +TRANS_FLAGS(ALTIVEC, VMSUMUHM, do_va_helper, gen_helper_VMSUMUHM) + +static bool do_va_env_helper(DisasContext *ctx, arg_VA *a, + void (*gen_helper)(TCGv_ptr, TCGv_ptr, TCGv_ptr, TCGv_ptr, TCGv_ptr)) +{ + TCGv_ptr vrt, vra, vrb, vrc; + REQUIRE_VECTOR(ctx); + + vrt =3D gen_avr_ptr(a->vrt); + vra =3D gen_avr_ptr(a->vra); + vrb =3D gen_avr_ptr(a->vrb); + vrc =3D gen_avr_ptr(a->rc); + gen_helper(cpu_env, vrt, vra, vrb, vrc); + tcg_temp_free_ptr(vrt); + tcg_temp_free_ptr(vra); + tcg_temp_free_ptr(vrb); + tcg_temp_free_ptr(vrc); + + return true; +} + +TRANS_FLAGS(ALTIVEC, VMSUMUHS, do_va_env_helper, gen_helper_VMSUMUHS) =20 GEN_VAFORM_PAIRED(vmaddfp, vnmsubfp, 23) =20 diff --git a/target/ppc/translate/vmx-ops.c.inc b/target/ppc/translate/vmx-= ops.c.inc index 5b85322c06..15b3e06410 100644 --- a/target/ppc/translate/vmx-ops.c.inc +++ b/target/ppc/translate/vmx-ops.c.inc @@ -224,7 +224,6 @@ GEN_VXFORM_UIMM(vctsxs, 5, 15), #define GEN_VAFORM_PAIRED(name0, name1, opc2) \ GEN_HANDLER(name0##_##name1, 0x04, opc2, 0xFF, 0x00000000, PPC_ALTIVEC) GEN_VAFORM_PAIRED(vmhaddshs, vmhraddshs, 16), -GEN_VAFORM_PAIRED(vmsumuhm, vmsumuhs, 19), GEN_VAFORM_PAIRED(vmsumshm, vmsumshs, 20), GEN_VAFORM_PAIRED(vmaddfp, vnmsubfp, 23), =20 diff --git a/tcg/ppc/tcg-target.c.inc b/tcg/ppc/tcg-target.c.inc index cfcd121f9c..fc8ae47293 100644 --- a/tcg/ppc/tcg-target.c.inc +++ b/tcg/ppc/tcg-target.c.inc @@ -4008,3 +4008,4 @@ void tcg_register_jit(const void *buf, size_t buf_siz= e) #undef VMULOUB #undef VMULOUH #undef VMULOUW +#undef VMSUMUHM --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653602472; cv=none; d=zohomail.com; s=zohoarc; b=PMYn+G184nPyYjXN6B843HJhvUxR8MP91mR3UmvCJXz3Up9LwN4OVdsTR/yEYbYazCwRxw4dMDJQxGJeMyWpL0vR8hnRaesnG1vMtfbday/aZWuM9gR6SSmSpHsQ0TKQ8p9HqGEsq1EokaXDjm3O3+eT65gk3w7kDUKNiuSU/GY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653602472; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=7jxNw68GgO6aC67fWTszp7U7UmO9zWSWmGkFzl21a+c=; b=dUL8ctxG8Pu6JpXpAGgTg3qW/1TC8EgLteH6wyMMT/s6obUnrpyTqRrQbDfHfSQNz0LSpQVgRxQo0wgaNakdgiMyqZe4dTx1rKd9z9Xzl5Lml13RAsHoKGgHkl0IUD45HQVWE6a83jtgrqESZgb1XFyfBdrK1t2TMviwHZih9To= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 165360247284138.2697826989164; Thu, 26 May 2022 15:01:12 -0700 (PDT) Received: from localhost ([::1]:57880 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLXb-0002nD-R3 for importer@patchew.org; Thu, 26 May 2022 18:01:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53622) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCi-00023y-Kh; Thu, 26 May 2022 17:39:37 -0400 Received: from mail-oa1-x2c.google.com ([2001:4860:4864:20::2c]:38442) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCg-0008CU-TE; Thu, 26 May 2022 17:39:36 -0400 Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-e5e433d66dso3759164fac.5; Thu, 26 May 2022 14:39:34 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7jxNw68GgO6aC67fWTszp7U7UmO9zWSWmGkFzl21a+c=; b=KqxgzkJ4qJCWp4Bhre//frjy6vtivseBRcYtjYXWKCyKmSOZLhO450HIbGFwh+xpPD eXayWF0tn68F9OsMXhs5KPU5ZB2v7AQIblvlKOgNq0XR+B9oBfd2/ZUAYk394RhM2Ivv BqpvP8AGvKYUGNcRPpvtihvUlTYilTciDHodI++LwUPJTCVK2WzjcjIYPRQ1tYEHraFK XwDrDs0ElAQrI+bR72GUxyCvBUbBPu+XgkTWrrzdWIRyafSJQnk86uCEWYld6lkIalX4 WYLOL7wstN8x79AAxEL4Bi4c1MM9qd4XVX70mRtbsiahrTWOGezF8JB+YLLN/4Uy7lbP uyfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=7jxNw68GgO6aC67fWTszp7U7UmO9zWSWmGkFzl21a+c=; b=oLGbHMTZW2JST0SVPMeU+2EPpO2EEXFrGBq/hwflUV/JElyhEqmpFPHv81jp6CrPnL NL/RRxaCbu932Zp4g2fq2ii0unHfn9Z946vbHrQlxnfUCbn5xSyQQdm/eh6W5rP6M6Z5 Aeyr9L4iVQ048LG7hGGf8vWBVGqTOHWtqVguO3qLaaf0II5HhkoW5ZWKF2+E+Qc4/THm 5R9ccKfH3ksuVPsECM8JWZqaLHc7OW8wDWBWygrSVxdkf1SjYwbkzlhvGL9vOUOg5mqf +E5ymILhbCCuyZN1E+VpG2FsqpOiKPIRbREK9dR3l6sFBgAOvjS+22w8IlZIiMThL5Y9 WXtw== X-Gm-Message-State: AOAM531bQh2fTr1ZSlysV5RGhb59T+d4VPIZGQnTO0sneMUlq8DgamDr LaMegX9QjnVo+WKuZql0fGdIHMqgymk= X-Google-Smtp-Source: ABdhPJw1D6NcOmQAyaRVRhzjmpMgej6ZPJcGkCzsDCDLfXtfDBj/us6BNBS48XmK5EjSUrZD3ZaWjQ== X-Received: by 2002:a05:6870:538d:b0:de:aa91:898e with SMTP id h13-20020a056870538d00b000deaa91898emr2380803oan.54.1653601173484; Thu, 26 May 2022 14:39:33 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Matheus Ferst Subject: [PULL 22/34] target/ppc: declare vmsumsh[ms] helper with call flags Date: Thu, 26 May 2022 18:38:03 -0300 Message-Id: <20220526213815.92701-23-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:4860:4864:20::2c; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x2c.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653602473375100001 Content-Type: text/plain; charset="utf-8" From: Matheus Ferst Move vmsumshm and vmsumshs to decodetree, declare vmsumshm helper with TCG_CALL_NO_RWG, and drop the unused env argument. Signed-off-by: Matheus Ferst Reviewed-by: Richard Henderson Message-Id: <20220517123929.284511-13-matheus.ferst@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/helper.h | 4 ++-- target/ppc/insn32.decode | 2 ++ target/ppc/int_helper.c | 5 ++--- target/ppc/translate/vmx-impl.c.inc | 3 ++- target/ppc/translate/vmx-ops.c.inc | 1 - 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/target/ppc/helper.h b/target/ppc/helper.h index 5127851f2c..5e43920b9e 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -244,8 +244,8 @@ DEF_HELPER_5(vmhaddshs, void, env, avr, avr, avr, avr) DEF_HELPER_5(vmhraddshs, void, env, avr, avr, avr, avr) DEF_HELPER_FLAGS_4(VMSUMUHM, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) DEF_HELPER_5(VMSUMUHS, void, env, avr, avr, avr, avr) -DEF_HELPER_5(vmsumshm, void, env, avr, avr, avr, avr) -DEF_HELPER_5(vmsumshs, void, env, avr, avr, avr, avr) +DEF_HELPER_FLAGS_4(VMSUMSHM, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) +DEF_HELPER_5(VMSUMSHS, void, env, avr, avr, avr, avr) DEF_HELPER_FLAGS_4(vmladduhm, TCG_CALL_NO_RWG, void, avr, avr, avr, avr) DEF_HELPER_FLAGS_2(mtvscr, TCG_CALL_NO_RWG, void, env, i32) DEF_HELPER_FLAGS_1(mfvscr, TCG_CALL_NO_RWG, i32, env) diff --git a/target/ppc/insn32.decode b/target/ppc/insn32.decode index 43ea03c3e7..f001c02a8c 100644 --- a/target/ppc/insn32.decode +++ b/target/ppc/insn32.decode @@ -601,6 +601,8 @@ VMULLD 000100 ..... ..... ..... 00111001001 = @VX =20 VMSUMUBM 000100 ..... ..... ..... ..... 100100 @VA VMSUMMBM 000100 ..... ..... ..... ..... 100101 @VA +VMSUMSHM 000100 ..... ..... ..... ..... 101000 @VA +VMSUMSHS 000100 ..... ..... ..... ..... 101001 @VA VMSUMUHM 000100 ..... ..... ..... ..... 100110 @VA VMSUMUHS 000100 ..... ..... ..... ..... 100111 @VA =20 diff --git a/target/ppc/int_helper.c b/target/ppc/int_helper.c index 9285a1c2a1..b9dd15d607 100644 --- a/target/ppc/int_helper.c +++ b/target/ppc/int_helper.c @@ -890,8 +890,7 @@ void helper_VMSUMMBM(ppc_avr_t *r, ppc_avr_t *a, ppc_av= r_t *b, ppc_avr_t *c) } } =20 -void helper_vmsumshm(CPUPPCState *env, ppc_avr_t *r, ppc_avr_t *a, - ppc_avr_t *b, ppc_avr_t *c) +void helper_VMSUMSHM(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *= c) { int32_t prod[8]; int i; @@ -905,7 +904,7 @@ void helper_vmsumshm(CPUPPCState *env, ppc_avr_t *r, pp= c_avr_t *a, } } =20 -void helper_vmsumshs(CPUPPCState *env, ppc_avr_t *r, ppc_avr_t *a, +void helper_VMSUMSHS(CPUPPCState *env, ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c) { int32_t prod[8]; diff --git a/target/ppc/translate/vmx-impl.c.inc b/target/ppc/translate/vmx= -impl.c.inc index da81296b96..d7524c3204 100644 --- a/target/ppc/translate/vmx-impl.c.inc +++ b/target/ppc/translate/vmx-impl.c.inc @@ -2587,9 +2587,9 @@ static bool trans_VSEL(DisasContext *ctx, arg_VA *a) return true; } =20 -GEN_VAFORM_PAIRED(vmsumshm, vmsumshs, 20) TRANS_FLAGS(ALTIVEC, VMSUMUBM, do_va_helper, gen_helper_VMSUMUBM) TRANS_FLAGS(ALTIVEC, VMSUMMBM, do_va_helper, gen_helper_VMSUMMBM) +TRANS_FLAGS(ALTIVEC, VMSUMSHM, do_va_helper, gen_helper_VMSUMSHM) TRANS_FLAGS(ALTIVEC, VMSUMUHM, do_va_helper, gen_helper_VMSUMUHM) =20 static bool do_va_env_helper(DisasContext *ctx, arg_VA *a, @@ -2612,6 +2612,7 @@ static bool do_va_env_helper(DisasContext *ctx, arg_V= A *a, } =20 TRANS_FLAGS(ALTIVEC, VMSUMUHS, do_va_env_helper, gen_helper_VMSUMUHS) +TRANS_FLAGS(ALTIVEC, VMSUMSHS, do_va_env_helper, gen_helper_VMSUMSHS) =20 GEN_VAFORM_PAIRED(vmaddfp, vnmsubfp, 23) =20 diff --git a/target/ppc/translate/vmx-ops.c.inc b/target/ppc/translate/vmx-= ops.c.inc index 15b3e06410..d7cc57868e 100644 --- a/target/ppc/translate/vmx-ops.c.inc +++ b/target/ppc/translate/vmx-ops.c.inc @@ -224,7 +224,6 @@ GEN_VXFORM_UIMM(vctsxs, 5, 15), #define GEN_VAFORM_PAIRED(name0, name1, opc2) \ GEN_HANDLER(name0##_##name1, 0x04, opc2, 0xFF, 0x00000000, PPC_ALTIVEC) GEN_VAFORM_PAIRED(vmhaddshs, vmhraddshs, 16), -GEN_VAFORM_PAIRED(vmsumshm, vmsumshs, 20), GEN_VAFORM_PAIRED(vmaddfp, vnmsubfp, 23), =20 GEN_VXFORM_DUAL(vclzb, vpopcntb, 1, 28, PPC_NONE, PPC2_ALTIVEC_207), --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653602222; cv=none; d=zohomail.com; s=zohoarc; b=GkAhfn0UihIS4JDGK9/BNp1NqKtHkzZhuT78f+R/c+R+rLkBo6FTMhtqgFhk+GbfuMIZxb4C1239vjkwImvtQGmCtsflU5TU2S4fFGA7+BAhTy6bRiHhVUIoFQwG6hDPa5j2+lABvQmbTLGGrtUmcEBsnl5mCgFXpTgkneCd64w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653602222; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=etQ/DHgEtaOxRzCgfJL4a60cE/2gkCcNm19XWuRtQUk=; b=RAor7Z3/+B6axFQPuWhatvvWHw+4my9pyuQSFSnAWDGK5eEGOWvcnMq18vWjhO8tRhdb7ArFQZO2sIur3VSIsnR1zdpnHxzVAi9SQa8hAEdgonTNKWfWiIunYUyrtBRjU3zs/02vjC/y/SVANKz8Zl688Js8dLmCWBzTRjIIRrM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653602222588920.6219866493897; Thu, 26 May 2022 14:57:02 -0700 (PDT) Received: from localhost ([::1]:45692 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLTZ-0002Iu-3C for importer@patchew.org; Thu, 26 May 2022 17:57:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53636) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCk-00024t-Fk; Thu, 26 May 2022 17:39:39 -0400 Received: from mail-oa1-x31.google.com ([2001:4860:4864:20::31]:40797) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCi-0008CC-Uo; Thu, 26 May 2022 17:39:38 -0400 Received: by mail-oa1-x31.google.com with SMTP id 586e51a60fabf-f2cd424b9cso3751848fac.7; Thu, 26 May 2022 14:39:36 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=etQ/DHgEtaOxRzCgfJL4a60cE/2gkCcNm19XWuRtQUk=; b=PeWe9rAA87M7uVnOJzuyMR924hjKkARQVtm1ij8wAG6LrFZA3pCBMZNL79JSGB1yO2 pp8GNuIfdHKbGUyQp+Lz5qvDKBsArrb+QbO8yNOwXjWyZElJw7/N/PyLoHHcL9tj2yQu 0MlyK6/TYq6N8g7UEnQxKRwuznu6Fcz9ajUHajnBiCpgWSum04oHS+lcw3OR6YDYWSwo ceXqnoueK9zn6gvKoqxzTs8CP1cHA//rfJwpidQdLEjjAjWR/wKQUp4qM/Rytv/POr1X k9IlPMPJ1p5MyGw288mtcJNRar2+NxqiuONIB/TuosFEJXmMSE0efEHRQB9JcyCWXp6C Jrmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=etQ/DHgEtaOxRzCgfJL4a60cE/2gkCcNm19XWuRtQUk=; b=Fp07IoPM4LPonKNaIWIoRirWaqWM9ULZal4YMlXA8WuxVzoDJXJCuZc+ckwXNIa48q Sara6ZXgFedG3IXa91ZuUKkGzhJ4VKcsDsyNz4AjtLXGlyGR8x//BQyTJ9BF+mam3HH3 dAyZw8vz/yKsZF26lhHyU6aDzVCN3DsRskdHKeHGREGyKPHa57fM1IhMd0ILzzyzNM+p MNAxP7yEDArquSSmVPCk60nPiLRPniifolFKY1q409tl2siaR6qFC3iC5+yjedhIPFZI PEsrxphwiwEJFFSxPuKGkQwVn15gddwvxyHxqp5ZHZEHaLwhKNUwre5zfQycbgwxBnVZ EVbA== X-Gm-Message-State: AOAM530yTqZvPSaWaMrg5Ts9XcseauiXcA1lF74eelgIxMtmk7A2DIB7 LhLx6bJ67bNyRA4Hwv3CKMj0TEu79vo= X-Google-Smtp-Source: ABdhPJydc/p1aXUjyhRbMl/cFYVEKz0OoTWhbQWLLtQonR7MldYbG9JKr0vZAIyWobGuPj9oEZ63nw== X-Received: by 2002:a05:6870:610b:b0:f1:8f35:b9e7 with SMTP id s11-20020a056870610b00b000f18f35b9e7mr2548635oae.19.1653601175880; Thu, 26 May 2022 14:39:35 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Nicholas Piggin Subject: [PULL 23/34] target/ppc: Fix eieio memory ordering semantics Date: Thu, 26 May 2022 18:38:04 -0300 Message-Id: <20220526213815.92701-24-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:4860:4864:20::31; envelope-from=danielhb413@gmail.com; helo=mail-oa1-x31.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653602223713100001 Content-Type: text/plain; charset="utf-8" From: Nicholas Piggin The generated eieio memory ordering semantics do not match the instruction definition in the architecture. Add a big comment to explain this strange instruction and correct the memory ordering behaviour. Signed-off: Nicholas Piggin Reviewed-by: Richard Henderson Message-Id: <20220519135908.21282-2-npiggin@gmail.com> Signed-off-by: Daniel Henrique Barboza --- target/ppc/translate.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index fa34f81c30..eb42f7e459 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -3513,7 +3513,32 @@ static void gen_stswx(DisasContext *ctx) /* eieio */ static void gen_eieio(DisasContext *ctx) { - TCGBar bar =3D TCG_MO_LD_ST; + TCGBar bar =3D TCG_MO_ALL; + + /* + * eieio has complex semanitcs. It provides memory ordering between + * operations in the set: + * - loads from CI memory. + * - stores to CI memory. + * - stores to WT memory. + * + * It separately also orders memory for operations in the set: + * - stores to cacheble memory. + * + * It also serializes instructions: + * - dcbt and dcbst. + * + * It separately serializes: + * - tlbie and tlbsync. + * + * And separately serializes: + * - slbieg, slbiag, and slbsync. + * + * The end result is that CI memory ordering requires TCG_MO_ALL + * and it is not possible to special-case more relaxed ordering for + * cacheable accesses. TCG_BAR_SC is required to provide this + * serialization. + */ =20 /* * POWER9 has a eieio instruction variant using bit 6 as a hint to --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653602744; cv=none; d=zohomail.com; s=zohoarc; b=ACW7W2eM1Bk25Cw3hf+X9lZCvPWi2E0n39Zq3rXU2C6GZ8UrAPCMcX1YFR9cpkU7ZYSBjZiQMP6r6lDMxioTlY46OMK+r2F+1w/SQrxu21h3xmURntJZk1KKhvwWNfOLrSKl4rYpEsKCwvifSNgtLVwHPsbl/ulH0nOzaOOiXyc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653602744; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ukrDa1HkCn68Oj0Zz2gvxXbf53bdsSnmqAPIz7DiIBs=; b=YidiRM8mhvsu3yLYpYeN0Ev/mmc58bIbl47gAfgwAGTqG4ujT8u+Tcd8Kxr1/QWxRht39VKf28Am7CIOuHrCpVHKOJWvj1bObgeJzyODTm/13Kfr31tHEcNRPTPpBUBFPdtRk6YyM2ZnzNjvZzb+1O/Fr/jxuegs+KUSL4ODmCs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653602744249883.0748509589642; Thu, 26 May 2022 15:05:44 -0700 (PDT) Received: from localhost ([::1]:38638 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLbz-0001lz-6r for importer@patchew.org; Thu, 26 May 2022 18:05:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53660) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCn-00026Y-Jg; Thu, 26 May 2022 17:39:42 -0400 Received: from mail-oi1-x233.google.com ([2607:f8b0:4864:20::233]:37588) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCm-0008EV-42; Thu, 26 May 2022 17:39:41 -0400 Received: by mail-oi1-x233.google.com with SMTP id s188so3669807oie.4; Thu, 26 May 2022 14:39:39 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ukrDa1HkCn68Oj0Zz2gvxXbf53bdsSnmqAPIz7DiIBs=; b=Vufh8EPo1gL8xQgbKULQwXxVurdqp9C9kecrrDnBk+mpTaPLuG5aURTasd3Sogm1gT xZnX25IYfT//3deXmU4AaDN0U0m8AxeMpT/ZXIrhRyKYtU2zgW7OOoF1FEN4n3Moa4f9 wKgcxs20LsfTuNvU/G4ekpzRljhQADHpCCm+tdGQsWPp5A1g2TZabRqnd472fPi4ZgqW 8ZBOlQPeAJBC5HCVj3DZS/AGql7JTk+hmFoLUgYOQagjmmMjiIAppGZCdlWrN7hAt02g K1/0Dxm4B2a95V3C+gPGcpQHOwYgn4I8v3PEMU9KTyOn+XD6RECYxsJh+WhkOVkWqAHl vRkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ukrDa1HkCn68Oj0Zz2gvxXbf53bdsSnmqAPIz7DiIBs=; b=b9GCHhBFmD17qRzRpss2T0XEm361j4+9Liviq4XZ2U3vdgUhQwHusICGJDewCj1/Rt oKAy1zAjgqX7FJXtltln9ZCERAaOf6EXu5aM1Sx+pJ/FJbxvTZpj8qevD3/gknKD+Gbe N1xne3J91Scejxv8zSV49iim7/1I28f/yTQUcEgE+6JFYuURk+LKN+ihCtvEqB/3a2C3 lS+1ZAlH19yj4LuVws4rNybanxiHmx/Boy8W7hGaALLQtwbqJ035djKqOiDffRCQhGnI nhd/cI8qmTjIq7jcbeJP/UftZiNn8pRcq7thb1kwfPMZPknaF90AsG+zy2TNPBG/Mhgf yqVQ== X-Gm-Message-State: AOAM531i9BWPBqy9E8Jr6IF3hHBLdzn6JHWF9j/1wTt4GIc6LIA1qjRN yD/dD8Zf4dUCTSE2WGe5fG1bWnaYzMc= X-Google-Smtp-Source: ABdhPJwRu0e+R/ZWLfsqh4nGjeWeGpUWhkAIj6r99JemqRLN3g6F8LBWBbUgCPSQbMjnZPT9zN0M0w== X-Received: by 2002:a05:6808:221a:b0:32b:9564:c949 with SMTP id bd26-20020a056808221a00b0032b9564c949mr2257091oib.149.1653601178581; Thu, 26 May 2022 14:39:38 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Nicholas Piggin Subject: [PULL 24/34] tcg/ppc: ST_ST memory ordering is not provided with eieio Date: Thu, 26 May 2022 18:38:05 -0300 Message-Id: <20220526213815.92701-25-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::233; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x233.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653602745085100001 Content-Type: text/plain; charset="utf-8" From: Nicholas Piggin eieio does not provide ordering between stores to CI memory and stores to cacheable memory so it can't be used as a general ST_ST barrier. Reviewed-by: Richard Henderson Signed-of-by: Nicholas Piggin Message-Id: <20220519135908.21282-3-npiggin@gmail.com> Signed-off-by: Daniel Henrique Barboza --- tcg/ppc/tcg-target.c.inc | 2 -- 1 file changed, 2 deletions(-) diff --git a/tcg/ppc/tcg-target.c.inc b/tcg/ppc/tcg-target.c.inc index fc8ae47293..4750091c9c 100644 --- a/tcg/ppc/tcg-target.c.inc +++ b/tcg/ppc/tcg-target.c.inc @@ -1836,8 +1836,6 @@ static void tcg_out_mb(TCGContext *s, TCGArg a0) a0 &=3D TCG_MO_ALL; if (a0 =3D=3D TCG_MO_LD_LD) { insn =3D LWSYNC; - } else if (a0 =3D=3D TCG_MO_ST_ST) { - insn =3D EIEIO; } tcg_out32(s, insn); } --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653603002; cv=none; d=zohomail.com; s=zohoarc; b=lXJFGl5KUIroX3uOlFk62IWjCCjkAOQ97SQpErZh9AkQfEo0ZdBTlQKL+aYELGSrG4ELSLAj5NUjy9xetvUfHDfEYVvozkDAJhykHcuzsH5PMUk9pFGHVP86LhK3yfTfszfsf3U2yLC4r1RLZtOQAHjVk3o9xYH5LQHrLCtbmhs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653603002; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=6QcCjekbr2Se/ckjmCMK2hsHUP/DoIy3aVBqGpiabIM=; b=JKEI8naHeA9HNxefPMuJAtxPTgpdxCcwNIH75nv2lWhYDfAjaR8cvNkhLDQrYg77HYvfN73cbdkvCSJqiEZLq1ceSq9hpv7ExZj/jGvXsCLPPU1HrSfMJX+bGv5ZoiatPPvdnbgHQqvgsWqBzqBMhYPqCb5Hn9KogQVW3zbm6n4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653603002482320.2643302747423; Thu, 26 May 2022 15:10:02 -0700 (PDT) Received: from localhost ([::1]:47280 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLg9-0007q3-Fk for importer@patchew.org; Thu, 26 May 2022 18:10:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53686) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCp-0002B2-O0; Thu, 26 May 2022 17:39:43 -0400 Received: from mail-oi1-x235.google.com ([2607:f8b0:4864:20::235]:34305) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCo-0008Ez-9s; Thu, 26 May 2022 17:39:43 -0400 Received: by mail-oi1-x235.google.com with SMTP id y66so3687944oia.1; Thu, 26 May 2022 14:39:41 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6QcCjekbr2Se/ckjmCMK2hsHUP/DoIy3aVBqGpiabIM=; b=Qck3pKNSGXDkZKrm2MrgrNf+ceWM/SpPDCJwVOhWsKz+KlJ8KDQxZsoAyHVOrObknH nzab3kJet5l2pYwfE6G3g7L16U2bDFMKvyur4qmESU0ymd0cmhMu2ZkSrM2ySAruA2QN aaC4MeLenO+Z9kR9F+PdLbq4vVn0XWIi3/dOH+tEyYIiatbt1JkC9BFONGYFG5PJZL/f BP0K4qkhu1/UoS3Mm1IGw4fODBa5QL+yoaNdMD3iA/ZASTHonZ///ITUDaaGXlrWZbDB nw39lFwA6i8lMrnaA4wPnBkXLfYRdQYXwT6EdKBnu+NAwKIyGoZJ4/2CWGWkoKDZ3Ebu p7jA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6QcCjekbr2Se/ckjmCMK2hsHUP/DoIy3aVBqGpiabIM=; b=OuVOU6FIK2GCnmd41HnMSgvhJBo857iunr12MZMsi6CrOnxaX/UiGH5XvEth1Fd964 aX434C0eNyfeOwffUA0HHyhbkheP3MPqAxxUQea72SWz9wf7GZTe6OK0oRSl8Ud1Wybd zx1vjrZQhDWwtN4tmtd6w/pfm7HJfHTl6OEomTVwHkXyhSOgePzcHnnzIftp9JpX0W/o O7376TA762A0L9AWHYQu4zG6skRmsdVbEtoQzprBkNDUk/Cz/Uc3VNEY6SVX4Jq3Glav IOPVJ7iXRwo3HsR5qKnmjZ/53XJqLZjH1MVXV+Yxsyak4YjZIMfQ19u0fjNt8OsTdcJ1 CQ1w== X-Gm-Message-State: AOAM5301KNSu3IXm9ZEzo5u45DAfeh0ScY5jlZTZZtAvdERNFYT5+NMS rhP94VCCEOZtYRnps8MOHTNsnAjoCW8= X-Google-Smtp-Source: ABdhPJzrI9N+yK9aSx4FOwYSbSpCiibv93Ayc7tWXyNRLhcB6pYqy1SO5p98cnfcNXC3HDPZAGH0NA== X-Received: by 2002:a05:6808:1b29:b0:32b:6a06:8135 with SMTP id bx41-20020a0568081b2900b0032b6a068135mr2369916oib.220.1653601180947; Thu, 26 May 2022 14:39:40 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Nicholas Piggin Subject: [PULL 25/34] tcg/ppc: Optimize memory ordering generation with lwsync Date: Thu, 26 May 2022 18:38:06 -0300 Message-Id: <20220526213815.92701-26-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::235; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x235.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653603006087100001 Content-Type: text/plain; charset="utf-8" From: Nicholas Piggin lwsync orders more than just LD_LD, importantly it matches x86 and s390 default memory ordering. Signed-off-by: Nicholas Piggin Reviewed-by: Richard Henderson Message-Id: <20220519135908.21282-4-npiggin@gmail.com> Signed-off-by: Daniel Henrique Barboza --- tcg/ppc/tcg-target.c.inc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tcg/ppc/tcg-target.c.inc b/tcg/ppc/tcg-target.c.inc index 4750091c9c..de4483e43b 100644 --- a/tcg/ppc/tcg-target.c.inc +++ b/tcg/ppc/tcg-target.c.inc @@ -1832,11 +1832,14 @@ static void tcg_out_brcond2 (TCGContext *s, const T= CGArg *args, =20 static void tcg_out_mb(TCGContext *s, TCGArg a0) { - uint32_t insn =3D HWSYNC; - a0 &=3D TCG_MO_ALL; - if (a0 =3D=3D TCG_MO_LD_LD) { + uint32_t insn; + + if (a0 & TCG_MO_ST_LD) { + insn =3D HWSYNC; + } else { insn =3D LWSYNC; } + tcg_out32(s, insn); } =20 --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653603229; cv=none; d=zohomail.com; s=zohoarc; b=chdysOJ1zW2aPtVmOjM4Hsd9M8u/5xqT3JRlQM7skJn+0tNwB4eMF/ahA2d4wBAWglBVETklnlQwIWFH+s7BSJH+/JzfOIyORGobMYFY99KKwOimc+70HZU7c8BCYtrDZzE+FJxzyHNopXbG5/XC8H0CCeXHLxkPkWslP/A+99A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653603229; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=3gK8LwQ/NDj2zBjYqQ45BcWBXt36s/G327UQSxUznB8=; b=aYKDO8o+zxql3wdUElkqzdFDyUyk6ssv9MWBFZMKpNec+Eu+GGdkxqwCsYru0f9832gct7qxk8NeoLUjS/To2/Rlg4mu4nWkqzUJlSiGNBrp82n1c8zCSX2/GmvwPcez0wWqvoi1gvnzoxuICH2paEYFWbNC2NZ52Wj74Stunjk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 165360322918294.3513410716539; Thu, 26 May 2022 15:13:49 -0700 (PDT) Received: from localhost ([::1]:55748 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLjo-0005Ld-5Q for importer@patchew.org; Thu, 26 May 2022 18:13:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53704) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCs-0002NM-Pm; Thu, 26 May 2022 17:39:47 -0400 Received: from mail-oi1-x22c.google.com ([2607:f8b0:4864:20::22c]:39882) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCq-0008FY-RA; Thu, 26 May 2022 17:39:46 -0400 Received: by mail-oi1-x22c.google.com with SMTP id m125so3649383oia.6; Thu, 26 May 2022 14:39:44 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3gK8LwQ/NDj2zBjYqQ45BcWBXt36s/G327UQSxUznB8=; b=gdEAEIHQlEpkIUIYhpF79k401RtuByrvwDiA/3colhI/BPEYbEaa8eWG3mgNTHhNuN 46yBHz1q8z/XL+4TQO5jBZCdP/a+LUIl0AnyUYxp2k9JbHs39rD4oP5llgnCCHPzN7bT h1G5nnLRWnpOzw0ciLfyKIy1fbK2ZetzO49YiN+Tg/gCOUDrsAYy0PjN6TmNdr0inqIM BHlJCGf3tD34ml2XSIiUYIJ4WrzaBhk8ioAOlcRuwgUGCe4/tXr3ZGDGd5c4KxX7igqr cbQjNKJQQywGWj4EKZad08yijXbpPsGeDlN2mLGKCqEZntaweUnOnpHWGmCcu9wWtWew yanQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3gK8LwQ/NDj2zBjYqQ45BcWBXt36s/G327UQSxUznB8=; b=3mIifdYde3hcUR6k48XFDiQgVp09ez8WY1umIpWKBRxE1s22mAtiILeQOA6DfJ31aQ cTGyiFTD6VuJsYYXypM1wy3CEySYyoKzWIy34NZKMyiSi090pBlryxRj/TCoggbK2D0U CQQD3Oa3dqt4McJfpdWy8FVeuXaMZ40sH2ZEteoctbIuqr2ds7QLrRIHEO74Lr5hCxLV JWYwGM4LyVc7eoNRFTzD9uuTXGSlt6ppuoUzBGHYP4S4h5l0A2b/4zMeM3pS8epobBCr u8hXNqtVfRbFtNxJW4h+XMv6plGKIerq2PbpHivjkcreWRtGyWT85e1IDOTm67kcSXp8 JSSA== X-Gm-Message-State: AOAM533iz1KUJBCEiLPf9Wh5au3VldOlXnWpuIlTBAKvyTJGElNtycl+ eVWkwkX7/ZjHhL3B6yt258wFvoyHYfQ= X-Google-Smtp-Source: ABdhPJya/0WlnwphlUDAl8/+um0eczcKCS7/RfP8mnZ6BBYM33mqK7e6J7tRserxJmiLeD7ANqbPag== X-Received: by 2002:a05:6808:118b:b0:2cf:761c:184d with SMTP id j11-20020a056808118b00b002cf761c184dmr2233585oil.87.1653601183365; Thu, 26 May 2022 14:39:43 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Nicholas Piggin Subject: [PULL 26/34] target/ppc: Implement lwsync with weaker memory ordering Date: Thu, 26 May 2022 18:38:07 -0300 Message-Id: <20220526213815.92701-27-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::22c; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x22c.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653603229909100003 Content-Type: text/plain; charset="utf-8" From: Nicholas Piggin This allows an x86 host to no-op lwsyncs, and ppc host can use lwsync rather than sync. Signed-off-by: Nicholas Piggin Reviewed-by: Richard Henderson Message-Id: <20220519135908.21282-5-npiggin@gmail.com> Signed-off-by: Daniel Henrique Barboza --- target/ppc/cpu.h | 4 +++- target/ppc/cpu_init.c | 13 +++++++------ target/ppc/machine.c | 3 ++- target/ppc/translate.c | 8 +++++++- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index 901ded79e9..bf8f8aad2c 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -2273,6 +2273,8 @@ enum { PPC2_ISA300 =3D 0x0000000000080000ULL, /* POWER ISA 3.1 = */ PPC2_ISA310 =3D 0x0000000000100000ULL, + /* lwsync instruction = */ + PPC2_MEM_LWSYNC =3D 0x0000000000200000ULL, =20 #define PPC_TCG_INSNS2 (PPC2_BOOKE206 | PPC2_VSX | PPC2_PRCNTL | PPC2_DBRX= | \ PPC2_ISA205 | PPC2_VSX207 | PPC2_PERM_ISA206 | \ @@ -2281,7 +2283,7 @@ enum { PPC2_BCTAR_ISA207 | PPC2_LSQ_ISA207 | \ PPC2_ALTIVEC_207 | PPC2_ISA207S | PPC2_DFP | \ PPC2_FP_CVT_S64 | PPC2_TM | PPC2_PM_ISA206 | \ - PPC2_ISA300 | PPC2_ISA310) + PPC2_ISA300 | PPC2_ISA310 | PPC2_MEM_LWSYNC) }; =20 /*************************************************************************= ****/ diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c index 527ad40fcb..0f891afa04 100644 --- a/target/ppc/cpu_init.c +++ b/target/ppc/cpu_init.c @@ -5769,7 +5769,7 @@ POWERPC_FAMILY(970)(ObjectClass *oc, void *data) PPC_MEM_TLBIE | PPC_MEM_TLBSYNC | PPC_64B | PPC_ALTIVEC | PPC_SEGMENT_64B | PPC_SLBI; - pcc->insns_flags2 =3D PPC2_FP_CVT_S64; + pcc->insns_flags2 =3D PPC2_FP_CVT_S64 | PPC2_MEM_LWSYNC; pcc->msr_mask =3D (1ull << MSR_SF) | (1ull << MSR_VR) | (1ull << MSR_POW) | @@ -5846,7 +5846,7 @@ POWERPC_FAMILY(POWER5P)(ObjectClass *oc, void *data) PPC_64B | PPC_POPCNTB | PPC_SEGMENT_64B | PPC_SLBI; - pcc->insns_flags2 =3D PPC2_FP_CVT_S64; + pcc->insns_flags2 =3D PPC2_FP_CVT_S64 | PPC2_MEM_LWSYNC; pcc->msr_mask =3D (1ull << MSR_SF) | (1ull << MSR_VR) | (1ull << MSR_POW) | @@ -5985,7 +5985,7 @@ POWERPC_FAMILY(POWER7)(ObjectClass *oc, void *data) PPC2_PERM_ISA206 | PPC2_DIVE_ISA206 | PPC2_ATOMIC_ISA206 | PPC2_FP_CVT_ISA206 | PPC2_FP_TST_ISA206 | PPC2_FP_CVT_S64 | - PPC2_PM_ISA206; + PPC2_PM_ISA206 | PPC2_MEM_LWSYNC; pcc->msr_mask =3D (1ull << MSR_SF) | (1ull << MSR_VR) | (1ull << MSR_VSX) | @@ -6159,7 +6159,7 @@ POWERPC_FAMILY(POWER8)(ObjectClass *oc, void *data) PPC2_FP_TST_ISA206 | PPC2_BCTAR_ISA207 | PPC2_LSQ_ISA207 | PPC2_ALTIVEC_207 | PPC2_ISA205 | PPC2_ISA207S | PPC2_FP_CVT_S64 | - PPC2_TM | PPC2_PM_ISA206; + PPC2_TM | PPC2_PM_ISA206 | PPC2_MEM_LWSYNC; pcc->msr_mask =3D (1ull << MSR_SF) | (1ull << MSR_HV) | (1ull << MSR_TM) | @@ -6379,7 +6379,7 @@ POWERPC_FAMILY(POWER9)(ObjectClass *oc, void *data) PPC2_FP_TST_ISA206 | PPC2_BCTAR_ISA207 | PPC2_LSQ_ISA207 | PPC2_ALTIVEC_207 | PPC2_ISA205 | PPC2_ISA207S | PPC2_FP_CVT_S64 | - PPC2_TM | PPC2_ISA300 | PPC2_PRCNTL; + PPC2_TM | PPC2_ISA300 | PPC2_PRCNTL | PPC2_MEM_LWS= YNC; pcc->msr_mask =3D (1ull << MSR_SF) | (1ull << MSR_HV) | (1ull << MSR_TM) | @@ -6596,7 +6596,8 @@ POWERPC_FAMILY(POWER10)(ObjectClass *oc, void *data) PPC2_FP_TST_ISA206 | PPC2_BCTAR_ISA207 | PPC2_LSQ_ISA207 | PPC2_ALTIVEC_207 | PPC2_ISA205 | PPC2_ISA207S | PPC2_FP_CVT_S64 | - PPC2_TM | PPC2_ISA300 | PPC2_PRCNTL | PPC2_ISA310; + PPC2_TM | PPC2_ISA300 | PPC2_PRCNTL | PPC2_ISA310 | + PPC2_MEM_LWSYNC; pcc->msr_mask =3D (1ull << MSR_SF) | (1ull << MSR_HV) | (1ull << MSR_TM) | diff --git a/target/ppc/machine.c b/target/ppc/machine.c index 7104a5c67e..a7d9036c09 100644 --- a/target/ppc/machine.c +++ b/target/ppc/machine.c @@ -157,7 +157,8 @@ static int cpu_pre_save(void *opaque) | PPC2_ATOMIC_ISA206 | PPC2_FP_CVT_ISA206 | PPC2_FP_TST_ISA206 | PPC2_BCTAR_ISA207 | PPC2_LSQ_ISA207 | PPC2_ALTIVEC_207 - | PPC2_ISA205 | PPC2_ISA207S | PPC2_FP_CVT_S64 | PPC2_TM; + | PPC2_ISA205 | PPC2_ISA207S | PPC2_FP_CVT_S64 | PPC2_TM + | PPC2_MEM_LWSYNC; =20 env->spr[SPR_LR] =3D env->lr; env->spr[SPR_CTR] =3D env->ctr; diff --git a/target/ppc/translate.c b/target/ppc/translate.c index eb42f7e459..1d6daa4608 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -4041,8 +4041,13 @@ static void gen_stqcx_(DisasContext *ctx) /* sync */ static void gen_sync(DisasContext *ctx) { + TCGBar bar =3D TCG_MO_ALL; uint32_t l =3D (ctx->opcode >> 21) & 3; =20 + if ((l =3D=3D 1) && (ctx->insns_flags2 & PPC2_MEM_LWSYNC)) { + bar =3D TCG_MO_LD_LD | TCG_MO_LD_ST | TCG_MO_ST_ST; + } + /* * We may need to check for a pending TLB flush. * @@ -4054,7 +4059,8 @@ static void gen_sync(DisasContext *ctx) if (((l =3D=3D 2) || !(ctx->insns_flags & PPC_64B)) && !ctx->pr) { gen_check_tlb_flush(ctx, true); } - tcg_gen_mb(TCG_MO_ALL | TCG_BAR_SC); + + tcg_gen_mb(bar | TCG_BAR_SC); } =20 /* wait */ --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653602391; cv=none; d=zohomail.com; s=zohoarc; b=AWquBdEwTioNc9wI0uljK629GLyR8ruURXlaRJg2NIlk7GlI9IGgQEUWjbHpawiG7gUY5RXNCUvoi3jKJgwESopvqRWU9QTvFXt13vjWHSugpDnOPwNtdyKZrUBFWHDNVeZqw+aUUBA+PfeWxkavJdzlvy9HY+HcTQ/54nfuetk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653602391; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1g2vde/eeHSaQeSQvQvM/Cy0WneUG8J0LblIpB+63qs=; b=UzWLjp54Knzd71NH+1DL9aeQ3ZOayyBxtsnH+iMKYs4v49lBvTZ9AAsLV+LSut0cUDcBnvQrCVvVvdl/LbvAYuGGq2Ln6LqQ1a3YiQ9vCOaGrBKCcLJ+LuoB+v/x4zoKVsvn9HFkl6H89Abiog8vpg1GR7s70iBTd2Rs25twKz0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653602391828241.70443923031632; Thu, 26 May 2022 14:59:51 -0700 (PDT) Received: from localhost ([::1]:55178 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLWI-0000mL-QF for importer@patchew.org; Thu, 26 May 2022 17:59:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53720) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCu-0002Tf-Mi; Thu, 26 May 2022 17:39:48 -0400 Received: from mail-oi1-x235.google.com ([2607:f8b0:4864:20::235]:34305) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCs-0008Ez-SE; Thu, 26 May 2022 17:39:48 -0400 Received: by mail-oi1-x235.google.com with SMTP id y66so3687944oia.1; Thu, 26 May 2022 14:39:46 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1g2vde/eeHSaQeSQvQvM/Cy0WneUG8J0LblIpB+63qs=; b=B6apJ7cccxUxNEzncOeaJDe0Yqa3g5uhAKQjSTXp61iyv0SswmoWWy/NFrcSg9nxq8 l8IJHEwrWJfNsvsOi5E08jcyey6iPSwsv3cpOSA3dNp6+NShC9bsxwMNOXIx5EeNKXgV T0SQahmhl23zUkO6EJiFccRy1t3U3jPOHgwNsxn7jpQFErrCJIMZW3t8JGSKc7XQ3/pW BhsqDCeENyW3G7oq43Kp6Igi9XiP/EgFUwUJzHtX89BHlooG1ArCUTN7AK9qJuwE/Foo NMqr2Cb4uskkL7LtfFKrb2wQGj8gzkRh+M96sgijR9k8U1S18HaiHo0tXwbKjFwHvqkU dhqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1g2vde/eeHSaQeSQvQvM/Cy0WneUG8J0LblIpB+63qs=; b=DX98upu4cOh8wtLMDzt5QIl42hkXEyPN417e5cG1SvKQePh7+HogctYTYWZnyEoodQ NOLZDSy2dcE9M8yM42+G9dzyFaPb1kUe1OM4d4qc1BJvLdsHgbuHUHqQn/CyHabZTG0i zEDlFjnhxqVBebYSflzjfrnzg9tTnDDYFaNIHCQPH6nB5kcFCxo9a68JRgLr16ObMoZU UWRxxu4GxM99JtBe45HRB682RHx46duw5UX2E90L+DFiz4mUKp4d3+16EGtijTUkEVsP V9/nN/hoZz/iqtfAYSZU/YX593G6iM8an2OVhQkXdHSnP0I2xZSqpmN2WyBv5LaceVTt VWqA== X-Gm-Message-State: AOAM532hMtlm2qgGeAaFNEKM2XJJajABtDKu1+5loJFz2xDMJlEF/aTd 12lcVHOU9MqMKJnyU5y1EiQNkg4Rii8= X-Google-Smtp-Source: ABdhPJwjlp7QOmTw6LGM/l6grxRvonSZjsgRWdL1KCllk4gnbioy8qa8DXiH8F2cSiWmAhDMMgNUEw== X-Received: by 2002:a05:6808:208c:b0:32b:91e4:32e1 with SMTP id s12-20020a056808208c00b0032b91e432e1mr2288801oiw.182.1653601185763; Thu, 26 May 2022 14:39:45 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, "Lucas Mateus Castro (alqotel)" Subject: [PULL 27/34] target/ppc: Implement xxm[tf]acc and xxsetaccz Date: Thu, 26 May 2022 18:38:08 -0300 Message-Id: <20220526213815.92701-28-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::235; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x235.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653602392736100001 Content-Type: text/plain; charset="utf-8" From: "Lucas Mateus Castro (alqotel)" Implement the following PowerISA v3.1 instructions: xxmfacc: VSX Move From Accumulator xxmtacc: VSX Move To Accumulator xxsetaccz: VSX Set Accumulator to Zero The PowerISA 3.1 mentions that for the current version of the architecture, "the hardware implementation provides the effect of ACC[i] and VSRs 4*i to 4*i + 3 logically containing the same data" and "The Accumulators introduce no new logical state at this time" (page 501). For now it seems unnecessary to create new structures, so this patch just uses ACC[i] as VSRs 4*i to 4*i+3 and therefore move to and from accumulators are no-ops. Signed-off-by: Lucas Mateus Castro (alqotel) Reviewed-by: Richard Henderson Message-Id: <20220524140537.27451-2-lucas.araujo@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/cpu.h | 5 +++++ target/ppc/insn32.decode | 9 +++++++++ target/ppc/translate/vsx-impl.c.inc | 31 +++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index bf8f8aad2c..c865206827 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -2663,6 +2663,11 @@ static inline int vsr_full_offset(int i) return offsetof(CPUPPCState, vsr[i].u64[0]); } =20 +static inline int acc_full_offset(int i) +{ + return vsr_full_offset(i * 4); +} + static inline int fpr_offset(int i) { return vsr64_offset(i, true); diff --git a/target/ppc/insn32.decode b/target/ppc/insn32.decode index f001c02a8c..c0f545ca38 100644 --- a/target/ppc/insn32.decode +++ b/target/ppc/insn32.decode @@ -154,6 +154,9 @@ &X_vrt_frbp vrt frbp @X_vrt_frbp ...... vrt:5 ..... ....0 .......... . &X_vrt_frb= p frbp=3D%x_frbp =20 +&X_a ra +@X_a ...... ra:3 .. ..... ..... .......... . &X_a + %xx_xt 0:1 21:5 %xx_xb 1:1 11:5 %xx_xa 2:1 16:5 @@ -734,3 +737,9 @@ XVTLSBB 111100 ... -- 00010 ..... 111011011 . -= @XX2_bf_xb &XL_s s:uint8_t @XL_s ......-------------- s:1 .......... - &XL_s RFEBB 010011-------------- . 0010010010 - @XL_s + +## Accumulator Instructions + +XXMFACC 011111 ... -- 00000 ----- 0010110001 - @X_a +XXMTACC 011111 ... -- 00001 ----- 0010110001 - @X_a +XXSETACCZ 011111 ... -- 00011 ----- 0010110001 - @X_a diff --git a/target/ppc/translate/vsx-impl.c.inc b/target/ppc/translate/vsx= -impl.c.inc index 900c1a1ab2..235be360e2 100644 --- a/target/ppc/translate/vsx-impl.c.inc +++ b/target/ppc/translate/vsx-impl.c.inc @@ -2816,6 +2816,37 @@ static bool trans_XVCVBF16SPN(DisasContext *ctx, arg= _XX2 *a) return true; } =20 + /* + * The PowerISA 3.1 mentions that for the current version of the + * architecture, "the hardware implementation provides the effect of + * ACC[i] and VSRs 4*i to 4*i + 3 logically containing the same data" + * and "The Accumulators introduce no new logical state at this time" + * (page 501). For now it seems unnecessary to create new structures, + * so ACC[i] is the same as VSRs 4*i to 4*i+3 and therefore + * move to and from accumulators are no-ops. + */ +static bool trans_XXMFACC(DisasContext *ctx, arg_X_a *a) +{ + REQUIRE_INSNS_FLAGS2(ctx, ISA310); + REQUIRE_VSX(ctx); + return true; +} + +static bool trans_XXMTACC(DisasContext *ctx, arg_X_a *a) +{ + REQUIRE_INSNS_FLAGS2(ctx, ISA310); + REQUIRE_VSX(ctx); + return true; +} + +static bool trans_XXSETACCZ(DisasContext *ctx, arg_X_a *a) +{ + REQUIRE_INSNS_FLAGS2(ctx, ISA310); + REQUIRE_VSX(ctx); + tcg_gen_gvec_dup_imm(MO_64, acc_full_offset(a->ra), 64, 64, 0); + return true; +} + #undef GEN_XX2FORM #undef GEN_XX3FORM #undef GEN_XX2IFORM --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653603189; cv=none; d=zohomail.com; s=zohoarc; b=BshPbbxlpNlWaRNSrpR69ulxlp27sOEnUNwqwO9TBueJm5cKqCcxc457a+qslmEQ4W+XjqkG3zWacor9X7xS4qBlVLc7fBr1wEE1boo0MipnVHbDT+pi48ZMJdTeUiPJz1SlKMXlfKHGEc/tjfUySf43JiBSDnZypWW/NtDi0A8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653603189; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/B85OuFp1tXHEyxSng2KQaoP0MYtAeYecnpWCA1g3eQ=; b=OLhDmXCaXzRAzo9iktl8Wbi/UHscuMT1m56J9APRpCzfvkD3o1DClx6skMvL5O65QCxtoEW9St1OZPNbFGsSNGyaFErFmcecRMzjTV/dhM7In88y5ER7BAO8/9u6M9OUrCpMsf5nX6VH8Ypy/AuSowBKhaMUOd/7M2orQBi8a4Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653603189124603.0694715142776; Thu, 26 May 2022 15:13:09 -0700 (PDT) Received: from localhost ([::1]:53526 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLj9-0003q9-SS for importer@patchew.org; Thu, 26 May 2022 18:13:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53744) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCy-0002ek-3g; Thu, 26 May 2022 17:39:52 -0400 Received: from mail-oo1-xc36.google.com ([2607:f8b0:4864:20::c36]:38540) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCv-0008GL-QC; Thu, 26 May 2022 17:39:51 -0400 Received: by mail-oo1-xc36.google.com with SMTP id x28-20020a4a621c000000b0040e85d338f2so504158ooc.5; Thu, 26 May 2022 14:39:49 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/B85OuFp1tXHEyxSng2KQaoP0MYtAeYecnpWCA1g3eQ=; b=LkxuNzRWm6RslmXWbqVKe/zNvSHo9f9mjlbYuuTssImLWsiCGMPkXgJG3FhbALOre2 Ev2cQBXbNzs3QNEAs5KLbOY9BYkew9NfP03/cLWuVUICf88F5vRaTi147rJrq8rlLwcx mSG4HviRc3kVY53higdSQ8LrEWE2+EGMoe0TMYg0eNxHtJkaIMreUTrwY2wzAL6ktq5O ZkcRgl3ZfniOj/3lWnp4H/PGgaYBmZc2xQQ6C5HgAzTbuFGB1fWcvuLC0shU7GahYod2 IUfy3P0PN8+/P1nWMnEOhsOz7DdI5ZYjPwNq6+DHJdxFIDnp/7Tg17IlT+czWdAfxBu9 FA4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/B85OuFp1tXHEyxSng2KQaoP0MYtAeYecnpWCA1g3eQ=; b=nmAMelWaFkodJJDisr9R1yt0SmEzxLQ9OzESfo3E+rbxhXQsvqJuX3S3eAcYgGks0f 2ISHlPrknrIniGJpXs2nuSqelL5f5XwDFEedVSgG40xgxXmvrkXR6+wMBmG84/PZ8fjM RgbukOk7KLGdwEgnTCd0EnnffeemH6chMx8hpGuU1/BcUofh+mXparF2dObprEmCoFBZ pasMXyJUe1jAG6tqqsYih6WVToqoPBdqSSb1sebUTEwm6D9+AdZ6+itZpngYT0c9NkF2 WeCZhH9Wwei7cQhsLUnKqZeTSTQCuEDzrMENywsUnzGw25ibUVXMVLYRDAy8z4GXHmQf nOOQ== X-Gm-Message-State: AOAM532p/QOcl8u9gYbvN5jcglFhvYXrrDhoCC3YzAXXWmBHL6TQ8TDd 7SnlS/A7F4o4oWcbgIZWK9qZyy0N7go= X-Google-Smtp-Source: ABdhPJwY8Io0ntD67kI5h7XK0q4Lrb4smmAtcj7fWj6CCBERUxKhmR7Yf7rTtLaDvTGN1brxI+McSw== X-Received: by 2002:a4a:95c6:0:b0:35f:7f11:7055 with SMTP id p6-20020a4a95c6000000b0035f7f117055mr15744475ooi.87.1653601188274; Thu, 26 May 2022 14:39:48 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, "Lucas Mateus Castro (alqotel)" Subject: [PULL 28/34] target/ppc: Implemented xvi*ger* instructions Date: Thu, 26 May 2022 18:38:09 -0300 Message-Id: <20220526213815.92701-29-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::c36; envelope-from=danielhb413@gmail.com; helo=mail-oo1-xc36.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653603189805100001 Content-Type: text/plain; charset="utf-8" From: "Lucas Mateus Castro (alqotel)" Implement the following PowerISA v3.1 instructions: xvi4ger8: VSX Vector 8-bit Signed/Unsigned Integer GER (rank-4 update) xvi4ger8pp: VSX Vector 8-bit Signed/Unsigned Integer GER (rank-4 update) Positive multiply, Positive accumulate xvi8ger4: VSX Vector 4-bit Signed Integer GER (rank-8 update) xvi8ger4pp: VSX Vector 4-bit Signed Integer GER (rank-8 update) Positive multiply, Positive accumulate xvi8ger4spp: VSX Vector 8-bit Signed/Unsigned Integer GER (rank-4 update) with Saturate Positive multiply, Positive accumulate xvi16ger2: VSX Vector 16-bit Signed Integer GER (rank-2 update) xvi16ger2pp: VSX Vector 16-bit Signed Integer GER (rank-2 update) Positive multiply, Positive accumulate xvi16ger2s: VSX Vector 16-bit Signed Integer GER (rank-2 update) with Saturation xvi16ger2spp: VSX Vector 16-bit Signed Integer GER (rank-2 update) with Saturation Positive multiply, Positive accumulate Signed-off-by: Lucas Mateus Castro (alqotel) Reviewed-by: Richard Henderson Message-Id: <20220524140537.27451-3-lucas.araujo@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/cpu.h | 1 + target/ppc/helper.h | 13 +++ target/ppc/insn32.decode | 18 ++++ target/ppc/int_helper.c | 130 ++++++++++++++++++++++++++++ target/ppc/internal.h | 15 ++++ target/ppc/translate/vsx-impl.c.inc | 41 +++++++++ 6 files changed, 218 insertions(+) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index c865206827..dff3ca8222 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -238,6 +238,7 @@ typedef union _ppc_vsr_t { =20 typedef ppc_vsr_t ppc_avr_t; typedef ppc_vsr_t ppc_fprp_t; +typedef ppc_vsr_t ppc_acc_t; =20 #if !defined(CONFIG_USER_ONLY) /* Software TLB cache */ diff --git a/target/ppc/helper.h b/target/ppc/helper.h index 5e43920b9e..1666797edf 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -133,6 +133,10 @@ DEF_HELPER_FLAGS_1(ftsqrt, TCG_CALL_NO_RWG_SE, i32, i6= 4) #define dh_ctype_vsr ppc_vsr_t * #define dh_typecode_vsr dh_typecode_ptr =20 +#define dh_alias_acc ptr +#define dh_ctype_acc ppc_acc_t * +#define dh_typecode_acc dh_typecode_ptr + DEF_HELPER_FLAGS_3(vavgub, TCG_CALL_NO_RWG, void, avr, avr, avr) DEF_HELPER_FLAGS_3(vavguh, TCG_CALL_NO_RWG, void, avr, avr, avr) DEF_HELPER_FLAGS_3(vavguw, TCG_CALL_NO_RWG, void, avr, avr, avr) @@ -537,6 +541,15 @@ DEF_HELPER_FLAGS_5(XXBLENDVB, TCG_CALL_NO_RWG, void, v= sr, vsr, vsr, vsr, i32) DEF_HELPER_FLAGS_5(XXBLENDVH, TCG_CALL_NO_RWG, void, vsr, vsr, vsr, vsr, i= 32) DEF_HELPER_FLAGS_5(XXBLENDVW, TCG_CALL_NO_RWG, void, vsr, vsr, vsr, vsr, i= 32) DEF_HELPER_FLAGS_5(XXBLENDVD, TCG_CALL_NO_RWG, void, vsr, vsr, vsr, vsr, i= 32) +DEF_HELPER_5(XVI4GER8, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVI4GER8PP, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVI8GER4, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVI8GER4PP, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVI8GER4SPP, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVI16GER2, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVI16GER2S, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVI16GER2PP, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVI16GER2SPP, void, env, vsr, vsr, acc, i32) =20 DEF_HELPER_2(efscfsi, i32, env, i32) DEF_HELPER_2(efscfui, i32, env, i32) diff --git a/target/ppc/insn32.decode b/target/ppc/insn32.decode index c0f545ca38..0e189fe2da 100644 --- a/target/ppc/insn32.decode +++ b/target/ppc/insn32.decode @@ -175,6 +175,12 @@ &XX3 xt xa xb @XX3 ...... ..... ..... ..... ........ ... &XX3 xt=3D= %xx_xt xa=3D%xx_xa xb=3D%xx_xb =20 +# 32 bit GER instructions have all mask bits considered 1 +&MMIRR_XX3 xa xb xt pmsk xmsk ymsk +%xx_at 23:3 +@XX3_at ...... ... .. ..... ..... ........ ... &MMIRR_XX3= xt=3D%xx_at xb=3D%xx_xb \ + pmsk=3D255= xmsk=3D15 ymsk=3D15 + &XX3_dm xt xa xb dm @XX3_dm ...... ..... ..... ..... . dm:2 ..... ... &XX3_dm xt= =3D%xx_xt xa=3D%xx_xa xb=3D%xx_xb =20 @@ -743,3 +749,15 @@ RFEBB 010011-------------- . 0010010010 - = @XL_s XXMFACC 011111 ... -- 00000 ----- 0010110001 - @X_a XXMTACC 011111 ... -- 00001 ----- 0010110001 - @X_a XXSETACCZ 011111 ... -- 00011 ----- 0010110001 - @X_a + +## VSX GER instruction + +XVI4GER8 111011 ... -- ..... ..... 00100011 ..- @XX3_at xa=3D%xx_xa +XVI4GER8PP 111011 ... -- ..... ..... 00100010 ..- @XX3_at xa=3D%xx_xa +XVI8GER4 111011 ... -- ..... ..... 00000011 ..- @XX3_at xa=3D%xx_xa +XVI8GER4PP 111011 ... -- ..... ..... 00000010 ..- @XX3_at xa=3D%xx_xa +XVI16GER2 111011 ... -- ..... ..... 01001011 ..- @XX3_at xa=3D%xx_xa +XVI16GER2PP 111011 ... -- ..... ..... 01101011 ..- @XX3_at xa=3D%xx_xa +XVI8GER4SPP 111011 ... -- ..... ..... 01100011 ..- @XX3_at xa=3D%xx_xa +XVI16GER2S 111011 ... -- ..... ..... 00101011 ..- @XX3_at xa=3D%xx_xa +XVI16GER2SPP 111011 ... -- ..... ..... 00101010 ..- @XX3_at xa=3D%xx_xa diff --git a/target/ppc/int_helper.c b/target/ppc/int_helper.c index b9dd15d607..105b626d1b 100644 --- a/target/ppc/int_helper.c +++ b/target/ppc/int_helper.c @@ -782,6 +782,136 @@ VCT(uxs, cvtsduw, u32) VCT(sxs, cvtsdsw, s32) #undef VCT =20 +typedef int64_t do_ger(uint32_t, uint32_t, uint32_t); + +static int64_t ger_rank8(uint32_t a, uint32_t b, uint32_t mask) +{ + int64_t psum =3D 0; + for (int i =3D 0; i < 8; i++, mask >>=3D 1) { + if (mask & 1) { + psum +=3D sextract32(a, 4 * i, 4) * sextract32(b, 4 * i, 4); + } + } + return psum; +} + +static int64_t ger_rank4(uint32_t a, uint32_t b, uint32_t mask) +{ + int64_t psum =3D 0; + for (int i =3D 0; i < 4; i++, mask >>=3D 1) { + if (mask & 1) { + psum +=3D sextract32(a, 8 * i, 8) * (int64_t)extract32(b, 8 * = i, 8); + } + } + return psum; +} + +static int64_t ger_rank2(uint32_t a, uint32_t b, uint32_t mask) +{ + int64_t psum =3D 0; + for (int i =3D 0; i < 2; i++, mask >>=3D 1) { + if (mask & 1) { + psum +=3D sextract32(a, 16 * i, 16) * sextract32(b, 16 * i, 16= ); + } + } + return psum; +} + +static void xviger(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, ppc_acc_t= *at, + uint32_t mask, bool sat, bool acc, do_ger ger) +{ + uint8_t pmsk =3D FIELD_EX32(mask, GER_MSK, PMSK), + xmsk =3D FIELD_EX32(mask, GER_MSK, XMSK), + ymsk =3D FIELD_EX32(mask, GER_MSK, YMSK); + uint8_t xmsk_bit, ymsk_bit; + int64_t psum; + int i, j; + for (i =3D 0, xmsk_bit =3D 1 << 3; i < 4; i++, xmsk_bit >>=3D 1) { + for (j =3D 0, ymsk_bit =3D 1 << 3; j < 4; j++, ymsk_bit >>=3D 1) { + if ((xmsk_bit & xmsk) && (ymsk_bit & ymsk)) { + psum =3D ger(a->VsrW(i), b->VsrW(j), pmsk); + if (acc) { + psum +=3D at[i].VsrSW(j); + } + if (sat && psum > INT32_MAX) { + set_vscr_sat(env); + at[i].VsrSW(j) =3D INT32_MAX; + } else if (sat && psum < INT32_MIN) { + set_vscr_sat(env); + at[i].VsrSW(j) =3D INT32_MIN; + } else { + at[i].VsrSW(j) =3D (int32_t) psum; + } + } else { + at[i].VsrSW(j) =3D 0; + } + } + } +} + +QEMU_FLATTEN +void helper_XVI4GER8(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + xviger(env, a, b, at, mask, false, false, ger_rank8); +} + +QEMU_FLATTEN +void helper_XVI4GER8PP(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + xviger(env, a, b, at, mask, false, true, ger_rank8); +} + +QEMU_FLATTEN +void helper_XVI8GER4(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + xviger(env, a, b, at, mask, false, false, ger_rank4); +} + +QEMU_FLATTEN +void helper_XVI8GER4PP(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + xviger(env, a, b, at, mask, false, true, ger_rank4); +} + +QEMU_FLATTEN +void helper_XVI8GER4SPP(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + xviger(env, a, b, at, mask, true, true, ger_rank4); +} + +QEMU_FLATTEN +void helper_XVI16GER2(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + xviger(env, a, b, at, mask, false, false, ger_rank2); +} + +QEMU_FLATTEN +void helper_XVI16GER2S(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + xviger(env, a, b, at, mask, true, false, ger_rank2); +} + +QEMU_FLATTEN +void helper_XVI16GER2PP(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + xviger(env, a, b, at, mask, false, true, ger_rank2); +} + +QEMU_FLATTEN +void helper_XVI16GER2SPP(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + xviger(env, a, b, at, mask, true, true, ger_rank2); +} + target_ulong helper_vclzlsbb(ppc_avr_t *r) { target_ulong count =3D 0; diff --git a/target/ppc/internal.h b/target/ppc/internal.h index 8094e0b033..2add128cd1 100644 --- a/target/ppc/internal.h +++ b/target/ppc/internal.h @@ -18,6 +18,8 @@ #ifndef PPC_INTERNAL_H #define PPC_INTERNAL_H =20 +#include "hw/registerfields.h" + #define FUNC_MASK(name, ret_type, size, max_val) \ static inline ret_type name(uint##size##_t start, \ uint##size##_t end) \ @@ -291,4 +293,17 @@ G_NORETURN void ppc_cpu_do_unaligned_access(CPUState *= cs, vaddr addr, uintptr_t retaddr); #endif =20 +FIELD(GER_MSK, XMSK, 0, 4) +FIELD(GER_MSK, YMSK, 4, 4) +FIELD(GER_MSK, PMSK, 8, 8) + +static inline int ger_pack_masks(int pmsk, int ymsk, int xmsk) +{ + int msk =3D 0; + msk =3D FIELD_DP32(msk, GER_MSK, XMSK, xmsk); + msk =3D FIELD_DP32(msk, GER_MSK, YMSK, ymsk); + msk =3D FIELD_DP32(msk, GER_MSK, PMSK, pmsk); + return msk; +} + #endif /* PPC_INTERNAL_H */ diff --git a/target/ppc/translate/vsx-impl.c.inc b/target/ppc/translate/vsx= -impl.c.inc index 235be360e2..6026b203e0 100644 --- a/target/ppc/translate/vsx-impl.c.inc +++ b/target/ppc/translate/vsx-impl.c.inc @@ -17,6 +17,13 @@ static inline TCGv_ptr gen_vsr_ptr(int reg) return r; } =20 +static inline TCGv_ptr gen_acc_ptr(int reg) +{ + TCGv_ptr r =3D tcg_temp_new_ptr(); + tcg_gen_addi_ptr(r, cpu_env, acc_full_offset(reg)); + return r; +} + #define VSX_LOAD_SCALAR(name, operation) \ static void gen_##name(DisasContext *ctx) \ { \ @@ -2847,6 +2854,40 @@ static bool trans_XXSETACCZ(DisasContext *ctx, arg_X= _a *a) return true; } =20 +static bool do_ger(DisasContext *ctx, arg_MMIRR_XX3 *a, + void (*helper)(TCGv_env, TCGv_ptr, TCGv_ptr, TCGv_ptr, TCGv_i32)) +{ + uint32_t mask; + TCGv_ptr xt, xa, xb; + REQUIRE_INSNS_FLAGS2(ctx, ISA310); + REQUIRE_VSX(ctx); + if (unlikely((a->xa / 4 =3D=3D a->xt) || (a->xb / 4 =3D=3D a->xt))) { + gen_invalid(ctx); + return true; + } + + xt =3D gen_acc_ptr(a->xt); + xa =3D gen_vsr_ptr(a->xa); + xb =3D gen_vsr_ptr(a->xb); + + mask =3D ger_pack_masks(a->pmsk, a->ymsk, a->xmsk); + helper(cpu_env, xa, xb, xt, tcg_constant_i32(mask)); + tcg_temp_free_ptr(xt); + tcg_temp_free_ptr(xa); + tcg_temp_free_ptr(xb); + return true; +} + +TRANS(XVI4GER8, do_ger, gen_helper_XVI4GER8) +TRANS(XVI4GER8PP, do_ger, gen_helper_XVI4GER8PP) +TRANS(XVI8GER4, do_ger, gen_helper_XVI8GER4) +TRANS(XVI8GER4PP, do_ger, gen_helper_XVI8GER4PP) +TRANS(XVI8GER4SPP, do_ger, gen_helper_XVI8GER4SPP) +TRANS(XVI16GER2, do_ger, gen_helper_XVI16GER2) +TRANS(XVI16GER2PP, do_ger, gen_helper_XVI16GER2PP) +TRANS(XVI16GER2S, do_ger, gen_helper_XVI16GER2S) +TRANS(XVI16GER2SPP, do_ger, gen_helper_XVI16GER2SPP) + #undef GEN_XX2FORM #undef GEN_XX3FORM #undef GEN_XX2IFORM --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653603018; cv=none; d=zohomail.com; s=zohoarc; b=Zjp20baWFHaCANVhCsoCfOXu8d7/LFxKknUBD4WlqsH6kI7YnhYN15hVgXojwACPH3hFAGO3iOdoQU7SZiCPmS9iXyMGtIPRlicXeU12WfgmJ/YQOCFyIj4ek+vtLIyORxzfCk//ua/phTf0nV0eTG5PK+qPlIhMumyKKHQ0KEA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653603018; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zHoTlC9Rx6JUWRtuk/zqQzOEx6QR6LaBGedjohvUC8k=; b=X60lUVfdYguxE/zRXZT20SpAUGhk8NfWLxkzZdRPfN259LpRFj9u4QVpEnqmdXuUYf0W1N+NIt6AAZDKY8FyIBjzY/fVR3H/ovm1O+3/OLxxq5cFR3AkRleWsaLFmhmNoseIlpZ/Wj6ZTY+NB32Y0e2VH9qRkns2BrdjA+Qh4d4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653603018056417.32560201183344; Thu, 26 May 2022 15:10:18 -0700 (PDT) Received: from localhost ([::1]:48416 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLgO-0000Db-Vo for importer@patchew.org; Thu, 26 May 2022 18:10:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53756) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLCz-0002hr-Fu; Thu, 26 May 2022 17:39:53 -0400 Received: from mail-oi1-x233.google.com ([2607:f8b0:4864:20::233]:37588) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLCx-0008EV-Pz; Thu, 26 May 2022 17:39:53 -0400 Received: by mail-oi1-x233.google.com with SMTP id s188so3669807oie.4; Thu, 26 May 2022 14:39:51 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zHoTlC9Rx6JUWRtuk/zqQzOEx6QR6LaBGedjohvUC8k=; b=YyC51EA+sxXDmO26PJOMztVMHIrAVsCIcF4AUwZ/00OBTHIPDC9y18YX+eCMSilSMG EkOOqMqlB6xfLFx7MAmYfAYRp5P9LnZWViSmUAbkVqnMHjivkjcFhA4s0jnSVkQyq27R WvR1446H5IvF4A7+QKOXe+zQm+keGuYt4ceWaix1nJpBYJHQTOefQQf7UVi/XAhNuNI4 3+v9wOfOyj2/zIJs+A9Tr+r8fxWf7I16k9qdtv+PW+LC3WyMfQj6g7it1KESJu6gMdgd TgP0Cn4kBNCGAm5lZF8Xv7TbdqZBgkJDbslBhE5vfa3VdDUpxhpuLlGZZgpjPBkAmVqt 7AXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zHoTlC9Rx6JUWRtuk/zqQzOEx6QR6LaBGedjohvUC8k=; b=hJ4wDHSPNU0NbVYZ9dLNM4drTgdzgriAjOmn9ORet7OQNXb144omABbtHSpwTx7LYp LSJZ6YllntzGfDLGMZihC8U+2pl+p5j83zj2ka936l5qqJ9y6sHWlpfELS02GPBCHTtH r/j7A4QmSkRZxL8VaXouR3iu9Zufgnhj6w2jIwEUWrRUi9hMGgSeEdbyRB2pNGaFANt4 onTBA6jffCCVwhRx/OvLH9DZUsh+YroG36aA3D2hBU+F+GJELEjyyRHKP9s4xe/dUdF+ /GCnB+1CgyO4wwcd8qm9GuGd9qMpamw0QiGyCenyMdIR/Ei8a/ps3RXt7igZvYdZfBOy qj6A== X-Gm-Message-State: AOAM531pd3pVAHIBL7zcsrG4u0IoAmVn51jj/Vs4cg327ZzK1PoC3Qfl 9Aniuw8GLtqI3TGXcVdFzv9GyXbPRBs= X-Google-Smtp-Source: ABdhPJw7u24JfhgBMXjM9z73ps/otdOfUNT3AM5vbOHmQ8mKGvNu/kBFqfykeZi8YUJ45OVzvPObUg== X-Received: by 2002:a05:6808:b04:b0:32b:8fc2:46e4 with SMTP id s4-20020a0568080b0400b0032b8fc246e4mr2245766oij.54.1653601190616; Thu, 26 May 2022 14:39:50 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, "Lucas Mateus Castro (alqotel)" Subject: [PULL 29/34] target/ppc: Implemented pmxvi*ger* instructions Date: Thu, 26 May 2022 18:38:10 -0300 Message-Id: <20220526213815.92701-30-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::233; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x233.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653603018752100001 Content-Type: text/plain; charset="utf-8" From: "Lucas Mateus Castro (alqotel)" Implement the following PowerISA v3.1 instructions: pmxvi4ger8: Prefixed Masked VSX Vector 8-bit Signed/Unsigned Integer GER (rank-4 update) pmxvi4ger8pp: Prefixed Masked VSX Vector 8-bit Signed/Unsigned Integer GER (rank-4 update) Positive multiply, Positive accumulate pmxvi8ger4: Prefixed Masked VSX Vector 4-bit Signed Integer GER (rank-8 update) pmxvi8ger4pp: Prefixed Masked VSX Vector 4-bit Signed Integer GER (rank-8 update) Positive multiply, Positive accumulate pmxvi8ger4spp: Prefixed Masked VSX Vector 8-bit Signed/Unsigned Integer GER (rank-4 update) with Saturate Positive multiply, Positive accumulate pmxvi16ger2: Prefixed Masked VSX Vector 16-bit Signed Integer GER (rank-2 update) pmxvi16ger2pp: Prefixed Masked VSX Vector 16-bit Signed Integer GER (rank-2 update) Positive multiply, Positive accumulate pmxvi16ger2s: Prefixed Masked VSX Vector 16-bit Signed Integer GER (rank-2 update) with Saturation pmxvi16ger2spp: Prefixed Masked VSX Vector 16-bit Signed Integer GER (rank-2 update) with Saturation Positive multiply, Positive accumulate Signed-off-by: Lucas Mateus Castro (alqotel) Reviewed-by: Richard Henderson Message-Id: <20220524140537.27451-4-lucas.araujo@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/insn64.decode | 30 +++++++++++++++++++++++++++++ target/ppc/translate/vsx-impl.c.inc | 10 ++++++++++ 2 files changed, 40 insertions(+) diff --git a/target/ppc/insn64.decode b/target/ppc/insn64.decode index 691e8fe6c0..0eed35c8cd 100644 --- a/target/ppc/insn64.decode +++ b/target/ppc/insn64.decode @@ -68,6 +68,15 @@ ...... ..... ..... ..... ..... .. .... \ &8RR_XX4_uim3 xt=3D%8rr_xx_xt xa=3D%8rr_xx_xa xb=3D%8rr_xx= _xb xc=3D%8rr_xx_xc =20 +# Format MMIRR:XX3 +&MMIRR_XX3 !extern xa xb xt pmsk xmsk ymsk +%xx3_xa 2:1 16:5 +%xx3_xb 1:1 11:5 +%xx3_at 23:3 +@MMIRR_XX3 ...... .. .... .. . . ........ xmsk:4 ymsk:4 \ + ...... ... .. ..... ..... ........ ... \ + &MMIRR_XX3 xa=3D%xx3_xa xb=3D%xx3_xb xt=3D%xx3_at + ### Fixed-Point Load Instructions =20 PLBZ 000001 10 0--.-- .................. \ @@ -115,6 +124,27 @@ PSTFS 000001 10 0--.-- .................. \ PSTFD 000001 10 0--.-- .................. \ 110110 ..... ..... ................ @PLS_D =20 +## VSX GER instruction + +PMXVI4GER8 000001 11 1001 -- - - pmsk:8 ........ \ + 111011 ... -- ..... ..... 00100011 ..- @MMIRR_XX3 +PMXVI4GER8PP 000001 11 1001 -- - - pmsk:8 ........ \ + 111011 ... -- ..... ..... 00100010 ..- @MMIRR_XX3 +PMXVI8GER4 000001 11 1001 -- - - pmsk:4 ---- ........ \ + 111011 ... -- ..... ..... 00000011 ..- @MMIRR_XX3 +PMXVI8GER4PP 000001 11 1001 -- - - pmsk:4 ---- ........ \ + 111011 ... -- ..... ..... 00000010 ..- @MMIRR_XX3 +PMXVI16GER2 000001 11 1001 -- - - pmsk:2 ------ ........ \ + 111011 ... -- ..... ..... 01001011 ..- @MMIRR_XX3 +PMXVI16GER2PP 000001 11 1001 -- - - pmsk:2 ------ ........ \ + 111011 ... -- ..... ..... 01101011 ..- @MMIRR_XX3 +PMXVI8GER4SPP 000001 11 1001 -- - - pmsk:4 ---- ........ \ + 111011 ... -- ..... ..... 01100011 ..- @MMIRR_XX3 +PMXVI16GER2S 000001 11 1001 -- - - pmsk:2 ------ ........ \ + 111011 ... -- ..... ..... 00101011 ..- @MMIRR_XX3 +PMXVI16GER2SPP 000001 11 1001 -- - - pmsk:2 ------ ........ \ + 111011 ... -- ..... ..... 00101010 ..- @MMIRR_XX3 + ### Prefixed No-operation Instruction =20 @PNOP 000001 11 0000-- 000000000000000000 \ diff --git a/target/ppc/translate/vsx-impl.c.inc b/target/ppc/translate/vsx= -impl.c.inc index 6026b203e0..b10eded1da 100644 --- a/target/ppc/translate/vsx-impl.c.inc +++ b/target/ppc/translate/vsx-impl.c.inc @@ -2888,6 +2888,16 @@ TRANS(XVI16GER2PP, do_ger, gen_helper_XVI16GER2PP) TRANS(XVI16GER2S, do_ger, gen_helper_XVI16GER2S) TRANS(XVI16GER2SPP, do_ger, gen_helper_XVI16GER2SPP) =20 +TRANS64(PMXVI4GER8, do_ger, gen_helper_XVI4GER8) +TRANS64(PMXVI4GER8PP, do_ger, gen_helper_XVI4GER8PP) +TRANS64(PMXVI8GER4, do_ger, gen_helper_XVI8GER4) +TRANS64(PMXVI8GER4PP, do_ger, gen_helper_XVI8GER4PP) +TRANS64(PMXVI8GER4SPP, do_ger, gen_helper_XVI8GER4SPP) +TRANS64(PMXVI16GER2, do_ger, gen_helper_XVI16GER2) +TRANS64(PMXVI16GER2PP, do_ger, gen_helper_XVI16GER2PP) +TRANS64(PMXVI16GER2S, do_ger, gen_helper_XVI16GER2S) +TRANS64(PMXVI16GER2SPP, do_ger, gen_helper_XVI16GER2SPP) + #undef GEN_XX2FORM #undef GEN_XX3FORM #undef GEN_XX2IFORM --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653602666; cv=none; d=zohomail.com; s=zohoarc; b=WVsCZgvYw2httV6lXNEa9nWwbk2wtknqn5oImpIAiOY9WwRT3oNUg2Jl2/Kkj+5kVezFsruOnex4B0d2ExrfWywbWNulV8rGSZuZuL8l8kS+y5sBuiTmLu3xIqZzcy3ykAMIalL44tmiwgrxyc/Gh7v9XMyjO6wob096lr2jVEY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653602666; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5ULhnsrNl22OGKloUG/+/6EM056l08OXqk689LK5MM4=; b=IvICv5uhkS0cCdZch9EKAfcF0uDEi0OII4O4OH7rk71lE1RrIhJ91GkdNDMw/ZMI9n6IYOGJEEtLXa1tmjMORNidJak+yJAmCQv3A2hvesxNYeVrIUCY72BtddVeL4tsHWDWvYCmSG24qIb9Gf6qVc4Q4KkN3wDTF8cav6B5Fc4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653602666924289.18067533190174; Thu, 26 May 2022 15:04:26 -0700 (PDT) Received: from localhost ([::1]:36238 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLaj-0008Vo-0F for importer@patchew.org; Thu, 26 May 2022 18:04:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53788) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLD2-0002rg-Rv; Thu, 26 May 2022 17:39:56 -0400 Received: from mail-oi1-x235.google.com ([2607:f8b0:4864:20::235]:34305) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLD0-0008Ez-GW; Thu, 26 May 2022 17:39:56 -0400 Received: by mail-oi1-x235.google.com with SMTP id y66so3687944oia.1; Thu, 26 May 2022 14:39:53 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5ULhnsrNl22OGKloUG/+/6EM056l08OXqk689LK5MM4=; b=ptyOpRa/Tg5AeA2efuNWuVOaA9s0fUF9WcOnhmIloOM0WcoWNtqis5tUGB1+eWLr17 1wD4Wq8n6r9m/rpfXUTNfTH1ZlJcxF92ixM33U30adrvmaO+oLscdUZnj++xZ1cwPWhe OZOFUMX/PNUNZR/VeUKyGrwKc3QxEEuaxnwabo1aDQb4N5J4fy55Msgvf9zbtmlMcFaU 4GJdvOvCwOhC3RZxS3BOVIEtVM+iLhtXfjNIVe+JIF4zk9mJWD0oTO6maypiYA09PVph WUsh/zCiN5Pwsyp4DDCASs2RjMRjBL2ZLc4XzowGtOpFQgmf5BxyDD0bj8AP0fsQHTxv uuXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5ULhnsrNl22OGKloUG/+/6EM056l08OXqk689LK5MM4=; b=x5/Gb8uz1wbcecinoHzKiN7CltoOECUyxnxWjuDBzQ+H7clRT60fSOjIzH21tZYGZ1 moK7518+d2ozcC1VP87fHczQ0XS4RkmnZUZB6SnalFJ7Ytpc/vzZ5D/KksG6W4PDgeib Yp4CSicgmPWlNsJhSlrrWCtO/zMXPC0qzAuh463OggM85aXsAsYocS+9+oJOzmhd+R3j KGc6HIwJvd9XiPFp9UsbTyXNgsQVUVZOdPL1XJOkEWXrH5YNwEmELQrLaspR7OgpX7Fb UXPIdKy3/BIOR+ECXMuIORxiVBvZq8D7IO041j3l9Wzs7lT+6EJC5yryR47K3IzewCO+ tUPQ== X-Gm-Message-State: AOAM532EdXs2H48tPCI6ECm5EMY4qDbA23xQJ+wFj52pJkaVM045ZCBI 8YAc52sryAU1wlgwPlIFegS1ySKxOqA= X-Google-Smtp-Source: ABdhPJw6cgrk0tQLF8J6n2PcwMaY+q6pGSY4jYPiSyYkY5sxwAX+MsLnZgKrzSrSkZ2VhNP9ew4sbg== X-Received: by 2002:aca:1e04:0:b0:325:473:4038 with SMTP id m4-20020aca1e04000000b0032504734038mr2323930oic.159.1653601193380; Thu, 26 May 2022 14:39:53 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, "Lucas Mateus Castro (alqotel)" Subject: [PULL 30/34] target/ppc: Implemented xvf*ger* Date: Thu, 26 May 2022 18:38:11 -0300 Message-Id: <20220526213815.92701-31-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::235; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x235.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653602668743100001 Content-Type: text/plain; charset="utf-8" From: "Lucas Mateus Castro (alqotel)" Implement the following PowerISA v3.1 instructions: xvf32ger: VSX Vector 32-bit Floating-Point GER (rank-1 update) xvf32gernn: VSX Vector 32-bit Floating-Point GER (rank-1 update) Negative multiply, Negative accumulate xvf32gernp: VSX Vector 32-bit Floating-Point GER (rank-1 update) Negative multiply, Positive accumulate xvf32gerpn: VSX Vector 32-bit Floating-Point GER (rank-1 update) Positive multiply, Negative accumulate xvf32gerpp: VSX Vector 32-bit Floating-Point GER (rank-1 update) Positive multiply, Positive accumulate xvf64ger: VSX Vector 64-bit Floating-Point GER (rank-1 update) xvf64gernn: VSX Vector 64-bit Floating-Point GER (rank-1 update) Negative multiply, Negative accumulate xvf64gernp: VSX Vector 64-bit Floating-Point GER (rank-1 update) Negative multiply, Positive accumulate xvf64gerpn: VSX Vector 64-bit Floating-Point GER (rank-1 update) Positive multiply, Negative accumulate xvf64gerpp: VSX Vector 64-bit Floating-Point GER (rank-1 update) Positive multiply, Positive accumulate Signed-off-by: Lucas Mateus Castro (alqotel) Reviewed-by: Richard Henderson Message-Id: <20220524140537.27451-5-lucas.araujo@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/cpu.h | 4 + target/ppc/fpu_helper.c | 194 +++++++++++++++++++++++++++- target/ppc/helper.h | 10 ++ target/ppc/insn32.decode | 13 ++ target/ppc/translate/vsx-impl.c.inc | 12 ++ 5 files changed, 231 insertions(+), 2 deletions(-) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index dff3ca8222..40c779f246 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -2643,6 +2643,8 @@ static inline bool lsw_reg_in_range(int start, int nr= egs, int rx) #define VsrSW(i) s32[i] #define VsrD(i) u64[i] #define VsrSD(i) s64[i] +#define VsrSF(i) f32[i] +#define VsrDF(i) f64[i] #else #define VsrB(i) u8[15 - (i)] #define VsrSB(i) s8[15 - (i)] @@ -2652,6 +2654,8 @@ static inline bool lsw_reg_in_range(int start, int nr= egs, int rx) #define VsrSW(i) s32[3 - (i)] #define VsrD(i) u64[1 - (i)] #define VsrSD(i) s64[1 - (i)] +#define VsrSF(i) f32[3 - (i)] +#define VsrDF(i) f64[1 - (i)] #endif =20 static inline int vsr64_offset(int i, bool high) diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index 9489e06504..712c71162c 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -414,7 +414,7 @@ void helper_store_fpscr(CPUPPCState *env, uint64_t val,= uint32_t nibbles) ppc_store_fpscr(env, val); } =20 -void helper_fpscr_check_status(CPUPPCState *env) +static void do_fpscr_check_status(CPUPPCState *env, uintptr_t raddr) { CPUState *cs =3D env_cpu(env); target_ulong fpscr =3D env->fpscr; @@ -455,13 +455,19 @@ void helper_fpscr_check_status(CPUPPCState *env) } cs->exception_index =3D POWERPC_EXCP_PROGRAM; env->error_code =3D error | POWERPC_EXCP_FP; + env->fpscr |=3D error ? FP_FEX : 0; /* Deferred floating-point exception after target FPSCR update */ if (fp_exceptions_enabled(env)) { raise_exception_err_ra(env, cs->exception_index, - env->error_code, GETPC()); + env->error_code, raddr); } } =20 +void helper_fpscr_check_status(CPUPPCState *env) +{ + do_fpscr_check_status(env, GETPC()); +} + static void do_float_check_status(CPUPPCState *env, bool change_fi, uintptr_t raddr) { @@ -3468,3 +3474,187 @@ void helper_xssubqp(CPUPPCState *env, uint32_t opco= de, *xt =3D t; do_float_check_status(env, true, GETPC()); } + +static inline void vsxger_excp(CPUPPCState *env, uintptr_t retaddr) +{ + /* + * XV*GER instructions execute and set the FPSCR as if exceptions + * are disabled and only at the end throw an exception + */ + target_ulong enable; + enable =3D env->fpscr & (FP_ENABLES | FP_FI | FP_FR); + env->fpscr &=3D ~(FP_ENABLES | FP_FI | FP_FR); + int status =3D get_float_exception_flags(&env->fp_status); + if (unlikely(status & float_flag_invalid)) { + if (status & float_flag_invalid_snan) { + float_invalid_op_vxsnan(env, 0); + } + if (status & float_flag_invalid_imz) { + float_invalid_op_vximz(env, false, 0); + } + if (status & float_flag_invalid_isi) { + float_invalid_op_vxisi(env, false, 0); + } + } + do_float_check_status(env, false, retaddr); + env->fpscr |=3D enable; + do_fpscr_check_status(env, retaddr); +} + +typedef void vsxger_zero(ppc_vsr_t *at, int, int); + +typedef void vsxger_muladd_f(ppc_vsr_t *, ppc_vsr_t *, ppc_vsr_t *, int, i= nt, + int flags, float_status *s); + +static void vsxger_muladd32(ppc_vsr_t *at, ppc_vsr_t *a, ppc_vsr_t *b, int= i, + int j, int flags, float_status *s) +{ + at[i].VsrSF(j) =3D float32_muladd(a->VsrSF(i), b->VsrSF(j), + at[i].VsrSF(j), flags, s); +} + +static void vsxger_mul32(ppc_vsr_t *at, ppc_vsr_t *a, ppc_vsr_t *b, int i, + int j, int flags, float_status *s) +{ + at[i].VsrSF(j) =3D float32_mul(a->VsrSF(i), b->VsrSF(j), s); +} + +static void vsxger_zero32(ppc_vsr_t *at, int i, int j) +{ + at[i].VsrSF(j) =3D float32_zero; +} + +static void vsxger_muladd64(ppc_vsr_t *at, ppc_vsr_t *a, ppc_vsr_t *b, int= i, + int j, int flags, float_status *s) +{ + if (j >=3D 2) { + j -=3D 2; + at[i].VsrDF(j) =3D float64_muladd(a[i / 2].VsrDF(i % 2), b->VsrDF(= j), + at[i].VsrDF(j), flags, s); + } +} + +static void vsxger_mul64(ppc_vsr_t *at, ppc_vsr_t *a, ppc_vsr_t *b, int i, + int j, int flags, float_status *s) +{ + if (j >=3D 2) { + j -=3D 2; + at[i].VsrDF(j) =3D float64_mul(a[i / 2].VsrDF(i % 2), b->VsrDF(j),= s); + } +} + +static void vsxger_zero64(ppc_vsr_t *at, int i, int j) +{ + if (j >=3D 2) { + j -=3D 2; + at[i].VsrDF(j) =3D float64_zero; + } +} + +static void vsxger(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask, bool acc, bool neg_mul, + bool neg_acc, vsxger_muladd_f mul, vsxger_muladd_f mula= dd, + vsxger_zero zero) +{ + int i, j, xmsk_bit, ymsk_bit, op_flags; + uint8_t xmsk =3D mask & 0x0F; + uint8_t ymsk =3D (mask >> 4) & 0x0F; + float_status *excp_ptr =3D &env->fp_status; + op_flags =3D (neg_acc ^ neg_mul) ? float_muladd_negate_c : 0; + op_flags |=3D (neg_mul) ? float_muladd_negate_result : 0; + helper_reset_fpstatus(env); + for (i =3D 0, xmsk_bit =3D 1 << 3; i < 4; i++, xmsk_bit >>=3D 1) { + for (j =3D 0, ymsk_bit =3D 1 << 3; j < 4; j++, ymsk_bit >>=3D 1) { + if ((xmsk_bit & xmsk) && (ymsk_bit & ymsk)) { + if (acc) { + muladd(at, a, b, i, j, op_flags, excp_ptr); + } else { + mul(at, a, b, i, j, op_flags, excp_ptr); + } + } else { + zero(at, i, j); + } + } + } + vsxger_excp(env, GETPC()); +} + +QEMU_FLATTEN +void helper_XVF32GER(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger(env, a, b, at, mask, false, false, false, vsxger_mul32, + vsxger_muladd32, vsxger_zero32); +} + +QEMU_FLATTEN +void helper_XVF32GERPP(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger(env, a, b, at, mask, true, false, false, vsxger_mul32, + vsxger_muladd32, vsxger_zero32); +} + +QEMU_FLATTEN +void helper_XVF32GERPN(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger(env, a, b, at, mask, true, false, true, vsxger_mul32, + vsxger_muladd32, vsxger_zero32); +} + +QEMU_FLATTEN +void helper_XVF32GERNP(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger(env, a, b, at, mask, true, true, false, vsxger_mul32, + vsxger_muladd32, vsxger_zero32); +} + +QEMU_FLATTEN +void helper_XVF32GERNN(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger(env, a, b, at, mask, true, true, true, vsxger_mul32, + vsxger_muladd32, vsxger_zero32); +} + +QEMU_FLATTEN +void helper_XVF64GER(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger(env, a, b, at, mask, false, false, false, vsxger_mul64, + vsxger_muladd64, vsxger_zero64); +} + +QEMU_FLATTEN +void helper_XVF64GERPP(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger(env, a, b, at, mask, true, false, false, vsxger_mul64, + vsxger_muladd64, vsxger_zero64); +} + +QEMU_FLATTEN +void helper_XVF64GERPN(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger(env, a, b, at, mask, true, false, true, vsxger_mul64, + vsxger_muladd64, vsxger_zero64); +} + +QEMU_FLATTEN +void helper_XVF64GERNP(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger(env, a, b, at, mask, true, true, false, vsxger_mul64, + vsxger_muladd64, vsxger_zero64); +} + +QEMU_FLATTEN +void helper_XVF64GERNN(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger(env, a, b, at, mask, true, true, true, vsxger_mul64, + vsxger_muladd64, vsxger_zero64); +} diff --git a/target/ppc/helper.h b/target/ppc/helper.h index 1666797edf..f38cdbe1d8 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -550,6 +550,16 @@ DEF_HELPER_5(XVI16GER2, void, env, vsr, vsr, acc, i32) DEF_HELPER_5(XVI16GER2S, void, env, vsr, vsr, acc, i32) DEF_HELPER_5(XVI16GER2PP, void, env, vsr, vsr, acc, i32) DEF_HELPER_5(XVI16GER2SPP, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVF32GER, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVF32GERPP, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVF32GERPN, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVF32GERNP, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVF32GERNN, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVF64GER, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVF64GERPP, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVF64GERPN, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVF64GERNP, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVF64GERNN, void, env, vsr, vsr, acc, i32) =20 DEF_HELPER_2(efscfsi, i32, env, i32) DEF_HELPER_2(efscfui, i32, env, i32) diff --git a/target/ppc/insn32.decode b/target/ppc/insn32.decode index 0e189fe2da..6b644155ec 100644 --- a/target/ppc/insn32.decode +++ b/target/ppc/insn32.decode @@ -178,6 +178,7 @@ # 32 bit GER instructions have all mask bits considered 1 &MMIRR_XX3 xa xb xt pmsk xmsk ymsk %xx_at 23:3 +%xx_xa_pair 2:1 17:4 !function=3Dtimes_2 @XX3_at ...... ... .. ..... ..... ........ ... &MMIRR_XX3= xt=3D%xx_at xb=3D%xx_xb \ pmsk=3D255= xmsk=3D15 ymsk=3D15 =20 @@ -761,3 +762,15 @@ XVI16GER2PP 111011 ... -- ..... ..... 01101011 ..-= @XX3_at xa=3D%xx_xa XVI8GER4SPP 111011 ... -- ..... ..... 01100011 ..- @XX3_at xa=3D%xx_xa XVI16GER2S 111011 ... -- ..... ..... 00101011 ..- @XX3_at xa=3D%xx_xa XVI16GER2SPP 111011 ... -- ..... ..... 00101010 ..- @XX3_at xa=3D%xx_xa + +XVF32GER 111011 ... -- ..... ..... 00011011 ..- @XX3_at xa=3D%xx_xa +XVF32GERPP 111011 ... -- ..... ..... 00011010 ..- @XX3_at xa=3D%xx_xa +XVF32GERPN 111011 ... -- ..... ..... 10011010 ..- @XX3_at xa=3D%xx_xa +XVF32GERNP 111011 ... -- ..... ..... 01011010 ..- @XX3_at xa=3D%xx_xa +XVF32GERNN 111011 ... -- ..... ..... 11011010 ..- @XX3_at xa=3D%xx_xa + +XVF64GER 111011 ... -- .... 0 ..... 00111011 ..- @XX3_at xa=3D%xx_= xa_pair +XVF64GERPP 111011 ... -- .... 0 ..... 00111010 ..- @XX3_at xa=3D%xx_= xa_pair +XVF64GERPN 111011 ... -- .... 0 ..... 10111010 ..- @XX3_at xa=3D%xx_= xa_pair +XVF64GERNP 111011 ... -- .... 0 ..... 01111010 ..- @XX3_at xa=3D%xx_= xa_pair +XVF64GERNN 111011 ... -- .... 0 ..... 11111010 ..- @XX3_at xa=3D%xx_= xa_pair diff --git a/target/ppc/translate/vsx-impl.c.inc b/target/ppc/translate/vsx= -impl.c.inc index b10eded1da..cc754ab175 100644 --- a/target/ppc/translate/vsx-impl.c.inc +++ b/target/ppc/translate/vsx-impl.c.inc @@ -2898,6 +2898,18 @@ TRANS64(PMXVI16GER2PP, do_ger, gen_helper_XVI16GER2P= P) TRANS64(PMXVI16GER2S, do_ger, gen_helper_XVI16GER2S) TRANS64(PMXVI16GER2SPP, do_ger, gen_helper_XVI16GER2SPP) =20 +TRANS(XVF32GER, do_ger, gen_helper_XVF32GER) +TRANS(XVF32GERPP, do_ger, gen_helper_XVF32GERPP) +TRANS(XVF32GERPN, do_ger, gen_helper_XVF32GERPN) +TRANS(XVF32GERNP, do_ger, gen_helper_XVF32GERNP) +TRANS(XVF32GERNN, do_ger, gen_helper_XVF32GERNN) + +TRANS(XVF64GER, do_ger, gen_helper_XVF64GER) +TRANS(XVF64GERPP, do_ger, gen_helper_XVF64GERPP) +TRANS(XVF64GERPN, do_ger, gen_helper_XVF64GERPN) +TRANS(XVF64GERNP, do_ger, gen_helper_XVF64GERNP) +TRANS(XVF64GERNN, do_ger, gen_helper_XVF64GERNN) + #undef GEN_XX2FORM #undef GEN_XX3FORM #undef GEN_XX2IFORM --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653603499; cv=none; d=zohomail.com; s=zohoarc; b=DrSg1qTRMCGgDMcUSEDiKeIjqTkIzxEO2o5Sz9shcmjBqn0+SVZMZG9m6gDUdfaUDPbWkO9b0RQAxclmIYzhxFxX/lStlgmWY+gYQFQX/wqGdvUY+YwFCgVGv6fODgl1gFUh2Bsa6u5VIKHdXHlLCCmPnncfTVuXrCDnLhD9iLk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653603499; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mPZgyVB5RHwP3zQEB3NsfxjcF7UIrdqlsI4jSr7vvO4=; b=m93vKSeipIZCaO6/6CGdCfNAL10MWATaNyn0INcpZ+x+mvAqdRoNA9k8fEfD4xNLxE7C+/ULB4CXlNCo4evktqRqqI4WZVFIx8J08wOXUkC50hy0VPtLjawmrxhPZccEGW9Z/UdlLHCs8wZj2QE6eLyLjcTXjRMP2+JUPWuPZ74= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653603499341754.5039591885202; Thu, 26 May 2022 15:18:19 -0700 (PDT) Received: from localhost ([::1]:33854 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLoA-0001cM-4n for importer@patchew.org; Thu, 26 May 2022 18:18:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53814) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLD5-000308-PC; Thu, 26 May 2022 17:39:59 -0400 Received: from mail-oi1-x229.google.com ([2607:f8b0:4864:20::229]:40880) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLD3-0008HI-ME; Thu, 26 May 2022 17:39:59 -0400 Received: by mail-oi1-x229.google.com with SMTP id t144so3648525oie.7; Thu, 26 May 2022 14:39:56 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mPZgyVB5RHwP3zQEB3NsfxjcF7UIrdqlsI4jSr7vvO4=; b=FZ3E4MwW3QeCFtmYQw/RDPoXyPKIoslKAl1ROpV+aYfntWH7NXA/CrFZHpFWfikSd1 h42Jp1tGAdI4P7xCWOlKwGchBHS3t8nU26G41HVBC+ytGJSMXwPDDv5oEXcNl23SNFHP I4V1S92BjxE4ys/3SELeBE953IT+RIebHuoPGpSpEi8lzU8ZSBGgcnge8WH3lEd6ctye s7xEE44H+7yPU9azhN9PBmyR+IFA0VnZX0WWlZDRtzzVB1pye0negGlxFZDBb+E/rX71 FNJb1yUMvHWzmiBqFUPdM5Gl4xnKn4QVzbH3x1AzOlhr9K1Fx+njafocbeJwQpdF77/r hkjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=mPZgyVB5RHwP3zQEB3NsfxjcF7UIrdqlsI4jSr7vvO4=; b=aBpdMKcA0FnRGQc39yzpAMsuchRl6X3m9zg8p3Pi9BABKSoJPfRauJeFPCv7+5h8Xp cagF+UiLW4ioc4QIIl0MWjRPCITFJgb0O0NRJtb2DDvcDSNUmrZz/sYfmZfgjvNxKeKb D2KrfYsZZBH2n7kHWEWSe9cUV4HyD129tN+x3krACJy8LWaJUlCfrCR1ia4/MALgNj9B Vb9HghSe3Y70IidOCiQN0dcOsr0+45/XYpUXSE0VLjEc2phFam2G6SobYHNfsZjRXfvx 4Lqv/5jEcicCfQ2VEvQaDuy5baIczrT3d/TKZ1Hr4O8Hm6xW/8F/79PUhtH5KzQV9d45 XZgQ== X-Gm-Message-State: AOAM533LPri89fpABbJMxKPskrr8FipPWDiFnMJH7vFhTuA6V+siC+MV 71YsZ/42Z9qBBtR5e+UoHtP78HhnPxg= X-Google-Smtp-Source: ABdhPJy/UCGx6nQMZx9arh8Qw9aR0Q3T2FNTJHt8OuIkduNppMMsvlYYQmqjTv34EKjF03Q455IBEw== X-Received: by 2002:aca:3bc1:0:b0:32b:243e:2542 with SMTP id i184-20020aca3bc1000000b0032b243e2542mr2228547oia.175.1653601195849; Thu, 26 May 2022 14:39:55 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, "Lucas Mateus Castro (alqotel)" Subject: [PULL 31/34] target/ppc: Implemented xvf16ger* Date: Thu, 26 May 2022 18:38:12 -0300 Message-Id: <20220526213815.92701-32-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::229; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x229.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653603499935100001 Content-Type: text/plain; charset="utf-8" From: "Lucas Mateus Castro (alqotel)" Implement the following PowerISA v3.1 instructions: xvf16ger2: VSX Vector 16-bit Floating-Point GER (rank-2 update) xvf16ger2nn: VSX Vector 16-bit Floating-Point GER (rank-2 update) Negative multiply, Negative accumulate xvf16ger2np: VSX Vector 16-bit Floating-Point GER (rank-2 update) Negative multiply, Positive accumulate xvf16ger2pn: VSX Vector 16-bit Floating-Point GER (rank-2 update) Positive multiply, Negative accumulate xvf16ger2pp: VSX Vector 16-bit Floating-Point GER (rank-2 update) Positive multiply, Positive accumulate Signed-off-by: Lucas Mateus Castro (alqotel) Reviewed-by: Richard Henderson Message-Id: <20220524140537.27451-6-lucas.araujo@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/cpu.h | 3 + target/ppc/fpu_helper.c | 95 +++++++++++++++++++++++++++++ target/ppc/helper.h | 5 ++ target/ppc/insn32.decode | 6 ++ target/ppc/translate/vsx-impl.c.inc | 6 ++ 5 files changed, 115 insertions(+) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index 40c779f246..6d78078f37 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -227,6 +227,7 @@ typedef union _ppc_vsr_t { int16_t s16[8]; int32_t s32[4]; int64_t s64[2]; + float16 f16[8]; float32 f32[4]; float64 f64[2]; float128 f128; @@ -2643,6 +2644,7 @@ static inline bool lsw_reg_in_range(int start, int nr= egs, int rx) #define VsrSW(i) s32[i] #define VsrD(i) u64[i] #define VsrSD(i) s64[i] +#define VsrHF(i) f16[i] #define VsrSF(i) f32[i] #define VsrDF(i) f64[i] #else @@ -2654,6 +2656,7 @@ static inline bool lsw_reg_in_range(int start, int nr= egs, int rx) #define VsrSW(i) s32[3 - (i)] #define VsrD(i) u64[1 - (i)] #define VsrSD(i) s64[1 - (i)] +#define VsrHF(i) f16[7 - (i)] #define VsrSF(i) f32[3 - (i)] #define VsrDF(i) f64[1 - (i)] #endif diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index 712c71162c..a9b2ef370f 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -36,6 +36,15 @@ static inline float128 float128_snan_to_qnan(float128 x) #define float32_snan_to_qnan(x) ((x) | 0x00400000) #define float16_snan_to_qnan(x) ((x) | 0x0200) =20 +static inline float32 bfp32_neg(float32 a) +{ + if (unlikely(float32_is_any_nan(a))) { + return a; + } else { + return float32_chs(a); + } +} + static inline bool fp_exceptions_enabled(CPUPPCState *env) { #ifdef CONFIG_USER_ONLY @@ -3501,6 +3510,57 @@ static inline void vsxger_excp(CPUPPCState *env, uin= tptr_t retaddr) do_fpscr_check_status(env, retaddr); } =20 +typedef float64 extract_f16(float16, float_status *); + +static float64 extract_hf16(float16 in, float_status *fp_status) +{ + return float16_to_float64(in, true, fp_status); +} + +static void vsxger16(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask, bool acc, + bool neg_mul, bool neg_acc, extract_f16 extract) +{ + float32 r, aux_acc; + float64 psum, va, vb, vc, vd; + int i, j, xmsk_bit, ymsk_bit; + uint8_t pmsk =3D FIELD_EX32(mask, GER_MSK, PMSK), + xmsk =3D FIELD_EX32(mask, GER_MSK, XMSK), + ymsk =3D FIELD_EX32(mask, GER_MSK, YMSK); + float_status *excp_ptr =3D &env->fp_status; + for (i =3D 0, xmsk_bit =3D 1 << 3; i < 4; i++, xmsk_bit >>=3D 1) { + for (j =3D 0, ymsk_bit =3D 1 << 3; j < 4; j++, ymsk_bit >>=3D 1) { + if ((xmsk_bit & xmsk) && (ymsk_bit & ymsk)) { + va =3D !(pmsk & 2) ? float64_zero : + extract(a->VsrHF(2 * i), excp_ptr); + vb =3D !(pmsk & 2) ? float64_zero : + extract(b->VsrHF(2 * j), excp_ptr); + vc =3D !(pmsk & 1) ? float64_zero : + extract(a->VsrHF(2 * i + 1), excp_ptr); + vd =3D !(pmsk & 1) ? float64_zero : + extract(b->VsrHF(2 * j + 1), excp_ptr); + psum =3D float64_mul(va, vb, excp_ptr); + psum =3D float64r32_muladd(vc, vd, psum, 0, excp_ptr); + r =3D float64_to_float32(psum, excp_ptr); + if (acc) { + aux_acc =3D at[i].VsrSF(j); + if (neg_mul) { + r =3D bfp32_neg(r); + } + if (neg_acc) { + aux_acc =3D bfp32_neg(aux_acc); + } + r =3D float32_add(r, aux_acc, excp_ptr); + } + at[i].VsrSF(j) =3D r; + } else { + at[i].VsrSF(j) =3D float32_zero; + } + } + } + vsxger_excp(env, GETPC()); +} + typedef void vsxger_zero(ppc_vsr_t *at, int, int); =20 typedef void vsxger_muladd_f(ppc_vsr_t *, ppc_vsr_t *, ppc_vsr_t *, int, i= nt, @@ -3579,6 +3639,41 @@ static void vsxger(CPUPPCState *env, ppc_vsr_t *a, p= pc_vsr_t *b, vsxger_excp(env, GETPC()); } =20 +QEMU_FLATTEN +void helper_XVF16GER2(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger16(env, a, b, at, mask, false, false, false, extract_hf16); +} + +QEMU_FLATTEN +void helper_XVF16GER2PP(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger16(env, a, b, at, mask, true, false, false, extract_hf16); +} + +QEMU_FLATTEN +void helper_XVF16GER2PN(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger16(env, a, b, at, mask, true, false, true, extract_hf16); +} + +QEMU_FLATTEN +void helper_XVF16GER2NP(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger16(env, a, b, at, mask, true, true, false, extract_hf16); +} + +QEMU_FLATTEN +void helper_XVF16GER2NN(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger16(env, a, b, at, mask, true, true, true, extract_hf16); +} + QEMU_FLATTEN void helper_XVF32GER(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, ppc_acc_t *at, uint32_t mask) diff --git a/target/ppc/helper.h b/target/ppc/helper.h index f38cdbe1d8..4070c0891c 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -550,6 +550,11 @@ DEF_HELPER_5(XVI16GER2, void, env, vsr, vsr, acc, i32) DEF_HELPER_5(XVI16GER2S, void, env, vsr, vsr, acc, i32) DEF_HELPER_5(XVI16GER2PP, void, env, vsr, vsr, acc, i32) DEF_HELPER_5(XVI16GER2SPP, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVF16GER2, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVF16GER2PP, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVF16GER2PN, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVF16GER2NP, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVF16GER2NN, void, env, vsr, vsr, acc, i32) DEF_HELPER_5(XVF32GER, void, env, vsr, vsr, acc, i32) DEF_HELPER_5(XVF32GERPP, void, env, vsr, vsr, acc, i32) DEF_HELPER_5(XVF32GERPN, void, env, vsr, vsr, acc, i32) diff --git a/target/ppc/insn32.decode b/target/ppc/insn32.decode index 6b644155ec..b8e317159c 100644 --- a/target/ppc/insn32.decode +++ b/target/ppc/insn32.decode @@ -763,6 +763,12 @@ XVI8GER4SPP 111011 ... -- ..... ..... 01100011 ..-= @XX3_at xa=3D%xx_xa XVI16GER2S 111011 ... -- ..... ..... 00101011 ..- @XX3_at xa=3D%xx_xa XVI16GER2SPP 111011 ... -- ..... ..... 00101010 ..- @XX3_at xa=3D%xx_xa =20 +XVF16GER2 111011 ... -- ..... ..... 00010011 ..- @XX3_at xa=3D%xx_xa +XVF16GER2PP 111011 ... -- ..... ..... 00010010 ..- @XX3_at xa=3D%xx_xa +XVF16GER2PN 111011 ... -- ..... ..... 10010010 ..- @XX3_at xa=3D%xx_xa +XVF16GER2NP 111011 ... -- ..... ..... 01010010 ..- @XX3_at xa=3D%xx_xa +XVF16GER2NN 111011 ... -- ..... ..... 11010010 ..- @XX3_at xa=3D%xx_xa + XVF32GER 111011 ... -- ..... ..... 00011011 ..- @XX3_at xa=3D%xx_xa XVF32GERPP 111011 ... -- ..... ..... 00011010 ..- @XX3_at xa=3D%xx_xa XVF32GERPN 111011 ... -- ..... ..... 10011010 ..- @XX3_at xa=3D%xx_xa diff --git a/target/ppc/translate/vsx-impl.c.inc b/target/ppc/translate/vsx= -impl.c.inc index cc754ab175..01978a585a 100644 --- a/target/ppc/translate/vsx-impl.c.inc +++ b/target/ppc/translate/vsx-impl.c.inc @@ -2898,6 +2898,12 @@ TRANS64(PMXVI16GER2PP, do_ger, gen_helper_XVI16GER2P= P) TRANS64(PMXVI16GER2S, do_ger, gen_helper_XVI16GER2S) TRANS64(PMXVI16GER2SPP, do_ger, gen_helper_XVI16GER2SPP) =20 +TRANS(XVF16GER2, do_ger, gen_helper_XVF16GER2) +TRANS(XVF16GER2PP, do_ger, gen_helper_XVF16GER2PP) +TRANS(XVF16GER2PN, do_ger, gen_helper_XVF16GER2PN) +TRANS(XVF16GER2NP, do_ger, gen_helper_XVF16GER2NP) +TRANS(XVF16GER2NN, do_ger, gen_helper_XVF16GER2NN) + TRANS(XVF32GER, do_ger, gen_helper_XVF32GER) TRANS(XVF32GERPP, do_ger, gen_helper_XVF32GERPP) TRANS(XVF32GERPN, do_ger, gen_helper_XVF32GERPN) --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653602981; cv=none; d=zohomail.com; s=zohoarc; b=TokhgfRPJ1YZ6FTAhQdf/OfNt5duE+AQTI5YMIBBgusM38yyGJS5kgqDEecMARma0xRYkc3BRxZus6/YNzVKe6KbJcPUGE4y30G2wsNrrPmkUz2LuBiEEAxFhsLRRNUF6/jqzQ/q0OSfiCpaeScXWN0Ml5MdXjfCWo5NL7J/bqY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653602981; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=hk25HGZBaLpMerDZPSbyRqDhNanWmMznBdX0jrC9ibc=; b=Cunrl4Q+fl1yx6pC29UC3Vo2Gd753UnZ8QON+Rel1K46aFuxYGaKSAuf6tM+biKEVvtaH4y14qMN9sBVYK2xmhA1yTVQOGUqaQn9EqqD6Z62baRwBqpYWzwdEK9xvWz3qMwxm+975bVI2AXX1W1dyOaMfE0b5VJKZZISnn7K+HI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653602981906927.6719144602248; Thu, 26 May 2022 15:09:41 -0700 (PDT) Received: from localhost ([::1]:45706 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLfo-0006ik-Er for importer@patchew.org; Thu, 26 May 2022 18:09:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53828) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLD7-00035i-NL; Thu, 26 May 2022 17:40:01 -0400 Received: from mail-oo1-xc2a.google.com ([2607:f8b0:4864:20::c2a]:34696) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLD5-0008Ho-R1; Thu, 26 May 2022 17:40:01 -0400 Received: by mail-oo1-xc2a.google.com with SMTP id c17-20020a4ac311000000b0040ea8bf80f2so506211ooq.1; Thu, 26 May 2022 14:39:59 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:39:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hk25HGZBaLpMerDZPSbyRqDhNanWmMznBdX0jrC9ibc=; b=RVkFAvk3IJaKrmqQuHhE+38afc++Peg5DyP9+d/8cb8Ppdzb7usYo/52x0NFm0ECP8 J2QzDdmVp6r6xLZiL9m2mczODyJeux40EhHWFd8DVQ2+AOQryhwKcpZH2hrSoJe0i/Dz DAWsXh2f7E3ZT31qHvVR04b0hVJQ2orl3oZcFiEthUpFO84sTMJ1Gt14V3Ej3JNz8BC9 DKZvk8O6pQqQBfPNLG66VzUbYOpykhM3dUtfZMPd8NWZtPHA7/xl3NipkEUo40sTMT6+ JAu68aLovIibYUUdvvyIhU+dPJ/Vft4STUmlHxGsT3Layccnn6GABXLCnEB1HWXQoIiI 3Rgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hk25HGZBaLpMerDZPSbyRqDhNanWmMznBdX0jrC9ibc=; b=sjn0J3Zbnjv/CSO/RIL/FrZlPPsfhzKUOLiWaCLbhshwTEB2mj1brzKI3jQEDiJrEI I9FdhxOS6ysi7IOhWrUQ2meVZSWEJtftI7BScddrAHpKK3bSfJ76u3o4Sc7FBx5W6P0Y M2Q8+8nMLwH8VfwYCuSK61rdeA1EjZnoQ7TJ/T2xATfseA6eiWVH9tZvCYdyG0hNYemj M+Sun73hhGXe10yK4FJYyf+ddLy3Kitvy2mG5g+gvapwa+oU1cbFAy6T/3wxONsaW/l1 SeCfr+sG4dpVpXkAsZ8aSBUtm0uTPNNTeqFgcw/ZilHycIzu/gVJGBRI+hlYmJaHrcT5 PMwA== X-Gm-Message-State: AOAM530IvupZMnUqnxZD7ywza/Gdt6MlNC54rzU4ONQNN7F4fGppCY+5 Jwe5Lzlu/yCSKVKVx+r0ZnvL3bfBmKE= X-Google-Smtp-Source: ABdhPJznohNCAR48jKFcoS5H7tyJFQeM+fN4PdxPVa/IfyfUSHfgFabMlWp37xwVpnxTz9wEaps3ug== X-Received: by 2002:a4a:d40d:0:b0:33a:33be:9c1e with SMTP id n13-20020a4ad40d000000b0033a33be9c1emr15638089oos.96.1653601198249; Thu, 26 May 2022 14:39:58 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, "Lucas Mateus Castro (alqotel)" Subject: [PULL 32/34] target/ppc: Implemented pmxvf*ger* Date: Thu, 26 May 2022 18:38:13 -0300 Message-Id: <20220526213815.92701-33-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::c2a; envelope-from=danielhb413@gmail.com; helo=mail-oo1-xc2a.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653602982565100001 Content-Type: text/plain; charset="utf-8" From: "Lucas Mateus Castro (alqotel)" Implement the following PowerISA v3.1 instructions: pmxvf16ger2: Prefixed Masked VSX Vector 16-bit Floating-Point GER (rank-2 update) pmxvf16ger2nn: Prefixed Masked VSX Vector 16-bit Floating-Point GER (rank-2 update) Negative multiply, Negative accumulate pmxvf16ger2np: Prefixed Masked VSX Vector 16-bit Floating-Point GER (rank-2 update) Negative multiply, Positive accumulate pmxvf16ger2pn: Prefixed Masked VSX Vector 16-bit Floating-Point GER (rank-2 update) Positive multiply, Negative accumulate pmxvf16ger2pp: Prefixed Masked VSX Vector 16-bit Floating-Point GER (rank-2 update) Positive multiply, Positive accumulate pmxvf32ger: Prefixed Masked VSX Vector 32-bit Floating-Point GER (rank-1 update) pmxvf32gernn: Prefixed Masked VSX Vector 32-bit Floating-Point GER (rank-1 update) Negative multiply, Negative accumulate pmxvf32gernp: Prefixed Masked VSX Vector 32-bit Floating-Point GER (rank-1 update) Negative multiply, Positive accumulate pmxvf32gerpn: Prefixed Masked VSX Vector 32-bit Floating-Point GER (rank-1 update) Positive multiply, Negative accumulate pmxvf32gerpp: Prefixed Masked VSX Vector 32-bit Floating-Point GER (rank-1 update) Positive multiply, Positive accumulate pmxvf64ger: Prefixed Masked VSX Vector 64-bit Floating-Point GER (rank-1 update) pmxvf64gernn: Prefixed Masked VSX Vector 64-bit Floating-Point GER (rank-1 update) Negative multiply, Negative accumulate pmxvf64gernp: Prefixed Masked VSX Vector 64-bit Floating-Point GER (rank-1 update) Negative multiply, Positive accumulate pmxvf64gerpn: Prefixed Masked VSX Vector 64-bit Floating-Point GER (rank-1 update) Positive multiply, Negative accumulate pmxvf64gerpp: Prefixed Masked VSX Vector 64-bit Floating-Point GER (rank-1 update) Positive multiply, Positive accumulate Signed-off-by: Lucas Mateus Castro (alqotel) Reviewed-by: Richard Henderson Message-Id: <20220524140537.27451-7-lucas.araujo@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/insn64.decode | 38 +++++++++++++++++++++++++++++ target/ppc/translate/vsx-impl.c.inc | 18 ++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/target/ppc/insn64.decode b/target/ppc/insn64.decode index 0eed35c8cd..5ecc5c85bf 100644 --- a/target/ppc/insn64.decode +++ b/target/ppc/insn64.decode @@ -73,10 +73,15 @@ %xx3_xa 2:1 16:5 %xx3_xb 1:1 11:5 %xx3_at 23:3 +%xx3_xa_pair 2:1 17:4 !function=3Dtimes_2 @MMIRR_XX3 ...... .. .... .. . . ........ xmsk:4 ymsk:4 \ ...... ... .. ..... ..... ........ ... \ &MMIRR_XX3 xa=3D%xx3_xa xb=3D%xx3_xb xt=3D%xx3_at =20 +@MMIRR_XX3_NO_P ...... .. .... .. . . ........ xmsk:4 .... \ + ...... ... .. ..... ..... ........ ... \ + &MMIRR_XX3 xb=3D%xx3_xb xt=3D%xx3_at pmsk=3D1 + ### Fixed-Point Load Instructions =20 PLBZ 000001 10 0--.-- .................. \ @@ -145,6 +150,39 @@ PMXVI16GER2S 000001 11 1001 -- - - pmsk:2 ------ ..= ...... \ PMXVI16GER2SPP 000001 11 1001 -- - - pmsk:2 ------ ........ \ 111011 ... -- ..... ..... 00101010 ..- @MMIRR_XX3 =20 +PMXVF16GER2 000001 11 1001 -- - - pmsk:2 ------ ........ \ + 111011 ... -- ..... ..... 00010011 ..- @MMIRR_XX3 +PMXVF16GER2PP 000001 11 1001 -- - - pmsk:2 ------ ........ \ + 111011 ... -- ..... ..... 00010010 ..- @MMIRR_XX3 +PMXVF16GER2PN 000001 11 1001 -- - - pmsk:2 ------ ........ \ + 111011 ... -- ..... ..... 10010010 ..- @MMIRR_XX3 +PMXVF16GER2NP 000001 11 1001 -- - - pmsk:2 ------ ........ \ + 111011 ... -- ..... ..... 01010010 ..- @MMIRR_XX3 +PMXVF16GER2NN 000001 11 1001 -- - - pmsk:2 ------ ........ \ + 111011 ... -- ..... ..... 11010010 ..- @MMIRR_XX3 + +PMXVF32GER 000001 11 1001 -- - - -------- .... ymsk:4 \ + 111011 ... -- ..... ..... 00011011 ..- @MMIRR_XX3_NO_P xa= =3D%xx3_xa +PMXVF32GERPP 000001 11 1001 -- - - -------- .... ymsk:4 \ + 111011 ... -- ..... ..... 00011010 ..- @MMIRR_XX3_NO_P xa= =3D%xx3_xa +PMXVF32GERPN 000001 11 1001 -- - - -------- .... ymsk:4 \ + 111011 ... -- ..... ..... 10011010 ..- @MMIRR_XX3_NO_P xa= =3D%xx3_xa +PMXVF32GERNP 000001 11 1001 -- - - -------- .... ymsk:4 \ + 111011 ... -- ..... ..... 01011010 ..- @MMIRR_XX3_NO_P xa= =3D%xx3_xa +PMXVF32GERNN 000001 11 1001 -- - - -------- .... ymsk:4 \ + 111011 ... -- ..... ..... 11011010 ..- @MMIRR_XX3_NO_P xa= =3D%xx3_xa + +PMXVF64GER 000001 11 1001 -- - - -------- .... ymsk:2 -- \ + 111011 ... -- ....0 ..... 00111011 ..- @MMIRR_XX3_NO_P xa= =3D%xx3_xa_pair +PMXVF64GERPP 000001 11 1001 -- - - -------- .... ymsk:2 -- \ + 111011 ... -- ....0 ..... 00111010 ..- @MMIRR_XX3_NO_P xa= =3D%xx3_xa_pair +PMXVF64GERPN 000001 11 1001 -- - - -------- .... ymsk:2 -- \ + 111011 ... -- ....0 ..... 10111010 ..- @MMIRR_XX3_NO_P xa= =3D%xx3_xa_pair +PMXVF64GERNP 000001 11 1001 -- - - -------- .... ymsk:2 -- \ + 111011 ... -- ....0 ..... 01111010 ..- @MMIRR_XX3_NO_P xa= =3D%xx3_xa_pair +PMXVF64GERNN 000001 11 1001 -- - - -------- .... ymsk:2 -- \ + 111011 ... -- ....0 ..... 11111010 ..- @MMIRR_XX3_NO_P xa= =3D%xx3_xa_pair + ### Prefixed No-operation Instruction =20 @PNOP 000001 11 0000-- 000000000000000000 \ diff --git a/target/ppc/translate/vsx-impl.c.inc b/target/ppc/translate/vsx= -impl.c.inc index 01978a585a..e79752899a 100644 --- a/target/ppc/translate/vsx-impl.c.inc +++ b/target/ppc/translate/vsx-impl.c.inc @@ -2916,6 +2916,24 @@ TRANS(XVF64GERPN, do_ger, gen_helper_XVF64GERPN) TRANS(XVF64GERNP, do_ger, gen_helper_XVF64GERNP) TRANS(XVF64GERNN, do_ger, gen_helper_XVF64GERNN) =20 +TRANS64(PMXVF16GER2, do_ger, gen_helper_XVF16GER2) +TRANS64(PMXVF16GER2PP, do_ger, gen_helper_XVF16GER2PP) +TRANS64(PMXVF16GER2PN, do_ger, gen_helper_XVF16GER2PN) +TRANS64(PMXVF16GER2NP, do_ger, gen_helper_XVF16GER2NP) +TRANS64(PMXVF16GER2NN, do_ger, gen_helper_XVF16GER2NN) + +TRANS64(PMXVF32GER, do_ger, gen_helper_XVF32GER) +TRANS64(PMXVF32GERPP, do_ger, gen_helper_XVF32GERPP) +TRANS64(PMXVF32GERPN, do_ger, gen_helper_XVF32GERPN) +TRANS64(PMXVF32GERNP, do_ger, gen_helper_XVF32GERNP) +TRANS64(PMXVF32GERNN, do_ger, gen_helper_XVF32GERNN) + +TRANS64(PMXVF64GER, do_ger, gen_helper_XVF64GER) +TRANS64(PMXVF64GERPP, do_ger, gen_helper_XVF64GERPP) +TRANS64(PMXVF64GERPN, do_ger, gen_helper_XVF64GERPN) +TRANS64(PMXVF64GERNP, do_ger, gen_helper_XVF64GERNP) +TRANS64(PMXVF64GERNN, do_ger, gen_helper_XVF64GERNN) + #undef GEN_XX2FORM #undef GEN_XX3FORM #undef GEN_XX2IFORM --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653603744; cv=none; d=zohomail.com; s=zohoarc; b=mFUUyHL2GqNGJCf1NEYZF2BHP4vS3QZFcOsX2WNkcfaikXXm78e2ndApYc8/8mjtkVmD13dqznhVtu7eLihLSQ34/t4yPxpQjl2+H7X140DtdxmuET4uG0+/KKHJtywoM41h2PGf3rBst77QuRAw/cDiBnGnY/qj//3eN7X4Rj0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653603744; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=VREffBwM1pKqJe4fMxGpsCOjBGIrxQlKCXOouLUY+ZA=; b=T8WTuCl45g/nVRm27/wOsDvCsbeTGGA715VFH51C830CsJ1xabDrmQk5W0QGPIubNbrsi3e1RC/wO3izc57v2wjEVS2O7IuFX/EEFiY/OV59gVqA6yGgkZpnAcrXjISRgVK8dlPSm8JgFuTNNCsDERMxVi2b93cc1+2vuQinIHw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1653603744704257.19350500518976; Thu, 26 May 2022 15:22:24 -0700 (PDT) Received: from localhost ([::1]:38794 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLs7-0005ME-AA for importer@patchew.org; Thu, 26 May 2022 18:22:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53934) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLDE-0003Ra-Rl; Thu, 26 May 2022 17:40:08 -0400 Received: from mail-oi1-x22a.google.com ([2607:f8b0:4864:20::22a]:33439) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLD8-0008I4-6F; Thu, 26 May 2022 17:40:08 -0400 Received: by mail-oi1-x22a.google.com with SMTP id w130so3716548oig.0; Thu, 26 May 2022 14:40:01 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.39.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:40:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=VREffBwM1pKqJe4fMxGpsCOjBGIrxQlKCXOouLUY+ZA=; b=UchoygryAxOAHQvfSAbi3bqhHb+r8+gfFMBBNkF2DwjahRwJjJtYRy/Y2OBGHVvxrI wuJMTTpxAe3FQ/u1oUBCvc8m+HZ/U/BNOkkVrMetMg7W/sbEw01vkpoaOg7sGbquQN+e Pa2njgJmfVwErgENRGKsg3KkBFHahmW3ag/AiGesMEHD+iHyVLDkbyY6eDswkp582txT yG3Lo04zMAbeqxTQvE3FATugwHFajsTEHjqmrYZlXVMi2HoVpUbjiPyA/DkqqH+sDugv mPKiIggl6mewqbOW/6uI/utMQ9MfrOiHmcrM1Do7Ra7dzXw9O+d3PLvq81wvHEtXyF3y Yatg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=VREffBwM1pKqJe4fMxGpsCOjBGIrxQlKCXOouLUY+ZA=; b=W5cypO2m+vCGAjApTrhjspcpNYje5Bw79oT4NI60t1xTq5f147zNfZkVgtQ84mZnL4 rYWLF+0lMABpI15AlKBqiFab3jHeY1wOO85webQNYh0Ab8K++2tJdKmzMwWfNwvdK+ML +k3UNWJFRZCNBiXN/cReOmk5LoOULNmZfU/W8fl0dcChmGJYtteEIk1wIifuZM6uUTJY YkewzI1t2SnG/luFFQ7HcOLZs9doMg2KwJZ2ml0A2OsFMQu1ywK0Ax6aAyqH141CO/Yi 6Q4YEJfpTloWTWbmBG+hfLIdx0g2R4AepdHuhHgmKiFKtMRMKgwpRh8DEnyD4KvNh6tg +8qg== X-Gm-Message-State: AOAM530+M7H+k3EW6VZSKX9nX25dk5Z4A3SaDt1Ba5aJXfoekWcwUOYO qso4kgDs25iFsFFUAcEFOBAhdW0zoYs= X-Google-Smtp-Source: ABdhPJwbnaqeDRr/SKNq+oujEz4EV9andRwl4iuFbSrX/A3uqbOb/9K5ojkwQiQi2q4aCNFIFSnC9g== X-Received: by 2002:aca:62c5:0:b0:326:b067:ac89 with SMTP id w188-20020aca62c5000000b00326b067ac89mr2263059oib.281.1653601200663; Thu, 26 May 2022 14:40:00 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, "Lucas Mateus Castro (alqotel)" Subject: [PULL 33/34] target/ppc: Implemented [pm]xvbf16ger2* Date: Thu, 26 May 2022 18:38:14 -0300 Message-Id: <20220526213815.92701-34-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::22a; envelope-from=danielhb413@gmail.com; helo=mail-oi1-x22a.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653603745343100001 Content-Type: text/plain; charset="utf-8" From: "Lucas Mateus Castro (alqotel)" Implement the following PowerISA v3.1 instructions: xvbf16ger2: VSX Vector bfloat16 GER (rank-2 update) xvbf16ger2nn: VSX Vector bfloat16 GER (rank-2 update) Negative multiply, Negative accumulate xvbf16ger2np: VSX Vector bfloat16 GER (rank-2 update) Negative multiply, Positive accumulate xvbf16ger2pn: VSX Vector bfloat16 GER (rank-2 update) Positive multiply, Negative accumulate xvbf16ger2pp: VSX Vector bfloat16 GER (rank-2 update) Positive multiply, Positive accumulate pmxvbf16ger2: Prefixed Masked VSX Vector bfloat16 GER (rank-2 update) pmxvbf16ger2nn: Prefixed Masked VSX Vector bfloat16 GER (rank-2 update) Negative multiply, Negative accumulate pmxvbf16ger2np: Prefixed Masked VSX Vector bfloat16 GER (rank-2 update) Negative multiply, Positive accumulate pmxvbf16ger2pn: Prefixed Masked VSX Vector bfloat16 GER (rank-2 update) Positive multiply, Negative accumulate pmxvbf16ger2pp: Prefixed Masked VSX Vector bfloat16 GER (rank-2 update) Positive multiply, Positive accumulate Signed-off-by: Lucas Mateus Castro (alqotel) Reviewed-by: Richard Henderson Message-Id: <20220524140537.27451-8-lucas.araujo@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- target/ppc/fpu_helper.c | 40 +++++++++++++++++++++++++++++ target/ppc/helper.h | 5 ++++ target/ppc/insn32.decode | 6 +++++ target/ppc/insn64.decode | 11 ++++++++ target/ppc/translate/vsx-impl.c.inc | 12 +++++++++ 5 files changed, 74 insertions(+) diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index a9b2ef370f..fed0ce420a 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -3517,6 +3517,11 @@ static float64 extract_hf16(float16 in, float_status= *fp_status) return float16_to_float64(in, true, fp_status); } =20 +static float64 extract_bf16(bfloat16 in, float_status *fp_status) +{ + return bfloat16_to_float64(in, fp_status); +} + static void vsxger16(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, ppc_acc_t *at, uint32_t mask, bool acc, bool neg_mul, bool neg_acc, extract_f16 extract) @@ -3639,6 +3644,41 @@ static void vsxger(CPUPPCState *env, ppc_vsr_t *a, p= pc_vsr_t *b, vsxger_excp(env, GETPC()); } =20 +QEMU_FLATTEN +void helper_XVBF16GER2(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger16(env, a, b, at, mask, false, false, false, extract_bf16); +} + +QEMU_FLATTEN +void helper_XVBF16GER2PP(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger16(env, a, b, at, mask, true, false, false, extract_bf16); +} + +QEMU_FLATTEN +void helper_XVBF16GER2PN(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger16(env, a, b, at, mask, true, false, true, extract_bf16); +} + +QEMU_FLATTEN +void helper_XVBF16GER2NP(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger16(env, a, b, at, mask, true, true, false, extract_bf16); +} + +QEMU_FLATTEN +void helper_XVBF16GER2NN(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, + ppc_acc_t *at, uint32_t mask) +{ + vsxger16(env, a, b, at, mask, true, true, true, extract_bf16); +} + QEMU_FLATTEN void helper_XVF16GER2(CPUPPCState *env, ppc_vsr_t *a, ppc_vsr_t *b, ppc_acc_t *at, uint32_t mask) diff --git a/target/ppc/helper.h b/target/ppc/helper.h index 4070c0891c..6233e28d85 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -555,6 +555,11 @@ DEF_HELPER_5(XVF16GER2PP, void, env, vsr, vsr, acc, i3= 2) DEF_HELPER_5(XVF16GER2PN, void, env, vsr, vsr, acc, i32) DEF_HELPER_5(XVF16GER2NP, void, env, vsr, vsr, acc, i32) DEF_HELPER_5(XVF16GER2NN, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVBF16GER2, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVBF16GER2PP, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVBF16GER2PN, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVBF16GER2NP, void, env, vsr, vsr, acc, i32) +DEF_HELPER_5(XVBF16GER2NN, void, env, vsr, vsr, acc, i32) DEF_HELPER_5(XVF32GER, void, env, vsr, vsr, acc, i32) DEF_HELPER_5(XVF32GERPP, void, env, vsr, vsr, acc, i32) DEF_HELPER_5(XVF32GERPN, void, env, vsr, vsr, acc, i32) diff --git a/target/ppc/insn32.decode b/target/ppc/insn32.decode index b8e317159c..18a94fa3b5 100644 --- a/target/ppc/insn32.decode +++ b/target/ppc/insn32.decode @@ -763,6 +763,12 @@ XVI8GER4SPP 111011 ... -- ..... ..... 01100011 ..-= @XX3_at xa=3D%xx_xa XVI16GER2S 111011 ... -- ..... ..... 00101011 ..- @XX3_at xa=3D%xx_xa XVI16GER2SPP 111011 ... -- ..... ..... 00101010 ..- @XX3_at xa=3D%xx_xa =20 +XVBF16GER2 111011 ... -- ..... ..... 00110011 ..- @XX3_at xa=3D%xx_xa +XVBF16GER2PP 111011 ... -- ..... ..... 00110010 ..- @XX3_at xa=3D%xx_xa +XVBF16GER2PN 111011 ... -- ..... ..... 10110010 ..- @XX3_at xa=3D%xx_xa +XVBF16GER2NP 111011 ... -- ..... ..... 01110010 ..- @XX3_at xa=3D%xx_xa +XVBF16GER2NN 111011 ... -- ..... ..... 11110010 ..- @XX3_at xa=3D%xx_xa + XVF16GER2 111011 ... -- ..... ..... 00010011 ..- @XX3_at xa=3D%xx_xa XVF16GER2PP 111011 ... -- ..... ..... 00010010 ..- @XX3_at xa=3D%xx_xa XVF16GER2PN 111011 ... -- ..... ..... 10010010 ..- @XX3_at xa=3D%xx_xa diff --git a/target/ppc/insn64.decode b/target/ppc/insn64.decode index 5ecc5c85bf..de115c1943 100644 --- a/target/ppc/insn64.decode +++ b/target/ppc/insn64.decode @@ -150,6 +150,17 @@ PMXVI16GER2S 000001 11 1001 -- - - pmsk:2 ------ ..= ...... \ PMXVI16GER2SPP 000001 11 1001 -- - - pmsk:2 ------ ........ \ 111011 ... -- ..... ..... 00101010 ..- @MMIRR_XX3 =20 +PMXVBF16GER2 000001 11 1001 -- - - pmsk:2 ------ ........ \ + 111011 ... -- ..... ..... 00110011 ..- @MMIRR_XX3 +PMXVBF16GER2PP 000001 11 1001 -- - - pmsk:2 ------ ........ \ + 111011 ... -- ..... ..... 00110010 ..- @MMIRR_XX3 +PMXVBF16GER2PN 000001 11 1001 -- - - pmsk:2 ------ ........ \ + 111011 ... -- ..... ..... 10110010 ..- @MMIRR_XX3 +PMXVBF16GER2NP 000001 11 1001 -- - - pmsk:2 ------ ........ \ + 111011 ... -- ..... ..... 01110010 ..- @MMIRR_XX3 +PMXVBF16GER2NN 000001 11 1001 -- - - pmsk:2 ------ ........ \ + 111011 ... -- ..... ..... 11110010 ..- @MMIRR_XX3 + PMXVF16GER2 000001 11 1001 -- - - pmsk:2 ------ ........ \ 111011 ... -- ..... ..... 00010011 ..- @MMIRR_XX3 PMXVF16GER2PP 000001 11 1001 -- - - pmsk:2 ------ ........ \ diff --git a/target/ppc/translate/vsx-impl.c.inc b/target/ppc/translate/vsx= -impl.c.inc index e79752899a..7acdbceec4 100644 --- a/target/ppc/translate/vsx-impl.c.inc +++ b/target/ppc/translate/vsx-impl.c.inc @@ -2898,6 +2898,12 @@ TRANS64(PMXVI16GER2PP, do_ger, gen_helper_XVI16GER2P= P) TRANS64(PMXVI16GER2S, do_ger, gen_helper_XVI16GER2S) TRANS64(PMXVI16GER2SPP, do_ger, gen_helper_XVI16GER2SPP) =20 +TRANS(XVBF16GER2, do_ger, gen_helper_XVBF16GER2) +TRANS(XVBF16GER2PP, do_ger, gen_helper_XVBF16GER2PP) +TRANS(XVBF16GER2PN, do_ger, gen_helper_XVBF16GER2PN) +TRANS(XVBF16GER2NP, do_ger, gen_helper_XVBF16GER2NP) +TRANS(XVBF16GER2NN, do_ger, gen_helper_XVBF16GER2NN) + TRANS(XVF16GER2, do_ger, gen_helper_XVF16GER2) TRANS(XVF16GER2PP, do_ger, gen_helper_XVF16GER2PP) TRANS(XVF16GER2PN, do_ger, gen_helper_XVF16GER2PN) @@ -2916,6 +2922,12 @@ TRANS(XVF64GERPN, do_ger, gen_helper_XVF64GERPN) TRANS(XVF64GERNP, do_ger, gen_helper_XVF64GERNP) TRANS(XVF64GERNN, do_ger, gen_helper_XVF64GERNN) =20 +TRANS64(PMXVBF16GER2, do_ger, gen_helper_XVBF16GER2) +TRANS64(PMXVBF16GER2PP, do_ger, gen_helper_XVBF16GER2PP) +TRANS64(PMXVBF16GER2PN, do_ger, gen_helper_XVBF16GER2PN) +TRANS64(PMXVBF16GER2NP, do_ger, gen_helper_XVBF16GER2NP) +TRANS64(PMXVBF16GER2NN, do_ger, gen_helper_XVBF16GER2NN) + TRANS64(PMXVF16GER2, do_ger, gen_helper_XVF16GER2) TRANS64(PMXVF16GER2PP, do_ger, gen_helper_XVF16GER2PP) TRANS64(PMXVF16GER2PN, do_ger, gen_helper_XVF16GER2PN) --=20 2.36.1 From nobody Wed May 15 19:06:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1653603216; cv=none; d=zohomail.com; s=zohoarc; b=W17v58EHVvKjEpr3zZkKWIvqdITUzvjMSZbDKHR/xdqWX4agAZEYpJmCBwM1FIloW/HD26mQdiz6ZNgfVFNfTzitOxy1OUZkCaiaVMSd97XRUxox/sRaNLakjgonCRblarUxU/j9YGAlIn8J3fG2zimTrT0ZU6x0HMCIn0LiIvo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1653603216; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=MDV5AXSg43OCgKun7NZjxUBaec2GyjsWOvvyjfcmfIg=; b=XTGH7pPRr8i07/biBBWiE50ch13HKvDID6YENsEv9mfAgYTEpbHrurXcNl4mw4VWspu/wk1A2Yn063k/swpqmA+f9zuTKuenhIhVye11dL7WVuzXcKu0zVzwf4+zrRGrvHPd9n9TN+4tH5332jVVDiwxhscY2dZt2olN2jE9ops= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 165360321624379.99047390496037; Thu, 26 May 2022 15:13:36 -0700 (PDT) Received: from localhost ([::1]:54530 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nuLjb-0004XR-4U for importer@patchew.org; Thu, 26 May 2022 18:13:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53902) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nuLDC-0003Jm-Af; Thu, 26 May 2022 17:40:06 -0400 Received: from mail-ot1-x32b.google.com ([2607:f8b0:4864:20::32b]:36629) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nuLDA-0008M3-PV; Thu, 26 May 2022 17:40:06 -0400 Received: by mail-ot1-x32b.google.com with SMTP id e11-20020a9d6e0b000000b0060afcbafa80so1834296otr.3; Thu, 26 May 2022 14:40:03 -0700 (PDT) Received: from balboa.COMFAST (189-46-169-45.dsl.telesp.net.br. [189.46.169.45]) by smtp.gmail.com with ESMTPSA id l43-20020a0568302b2b00b00606ad72bdcbsm1066999otv.38.2022.05.26.14.40.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 May 2022 14:40:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MDV5AXSg43OCgKun7NZjxUBaec2GyjsWOvvyjfcmfIg=; b=L5RIC5YzE9YwyOYAyOd3BCPP2TEkfZ2qRjMoU9iJ4RNpMumwAeICYkPdPM+b0JIdqy h8vZfp8h8n+nwax8sXuNhTh8BJtCdBgYTntszHhRXnjdGGKDgHnuxtz6VH6GCYcPh3dx KJCbXboRZEobBlBioQzlrGfyVlqL5PyOmzetBdwZIyCQp3tW0U+zMJrobm6bnxX2/zEQ pf1LdHM3SYZcTbBQJ1bYKSGnwpnvKZHKaabozY9JdB0Q4HwhYzfmdNhoZfGFWs7YBRPi /bLtgU0uSzFu1K1fNjwGtVDss/mK86+8CQaaQY96TpdBpUvo12K+SVKd+fvr7xaW3M/H MC6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=MDV5AXSg43OCgKun7NZjxUBaec2GyjsWOvvyjfcmfIg=; b=nrGFyQxtbd7NZ6Tw0lv1hB1yoqClWW1ZcXF+5KntzzjMqunFcjNUDqhqbO5DXkbSYi cw9TBy62t/Li6OD5wfSaUS9jXOMk5u9hXlmQ/mmhL73WN65Rf+qHmWSpYvNnfEDRaojW dnnuFfVsfrUctFV6EKyCnxvmhSXGAAiArnpEOB22NfoXYMUT/XtWR6nFX0JK/B5B2ZXW 9v0BeQxbiVtvKQwUvcrAZ/7AepI0Lx+xngxoL6NAE+6T4xfkqHbZ9K1jIh5RdxtSiMNE 3MDrXHuNYCdOWjYS8iCP6xK/kZ2VeS+r0kwQhpWASUkHBLPggazXtrCsjBWI6G3vU+qT QvGQ== X-Gm-Message-State: AOAM530cb6oJKwlrSdWuL25fp48ExrNpunQMuVPWb9RJ1udpuleoQaqm x21bOo6yB26ADPnPoVSL1qJFz8pxGI0= X-Google-Smtp-Source: ABdhPJzrFOq4YbroWozVysRgpnsr5rHq9N9TSL21z1XQLU2Uy8OufxL40RHS3r9jXsnFNPbcdkg9ag== X-Received: by 2002:a05:6830:1aee:b0:60a:ee99:f2 with SMTP id c14-20020a0568301aee00b0060aee9900f2mr12973798otd.40.1653601203181; Thu, 26 May 2022 14:40:03 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, danielhb413@gmail.com, peter.maydell@linaro.org, richard.henderson@linaro.org, Joel Stanley Subject: [PULL 34/34] linux-user: Add PowerPC ISA 3.1 and MMA to hwcap Date: Thu, 26 May 2022 18:38:15 -0300 Message-Id: <20220526213815.92701-35-danielhb413@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220526213815.92701-1-danielhb413@gmail.com> References: <20220526213815.92701-1-danielhb413@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::32b; envelope-from=danielhb413@gmail.com; helo=mail-ot1-x32b.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1653603217854100003 Content-Type: text/plain; charset="utf-8" From: Joel Stanley These are new hwcap bits added for power10. Signed-off-by: Joel Stanley Signed-off-by: Lucas Mateus Castro (alqotel) Reviewed-by: Richard Henderson Message-Id: <20220524140537.27451-9-lucas.araujo@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza --- linux-user/elfload.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/linux-user/elfload.c b/linux-user/elfload.c index acc21748f9..f7eae357f4 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -779,6 +779,8 @@ enum { QEMU_PPC_FEATURE2_DARN =3D 0x00200000, /* darn random number insn */ QEMU_PPC_FEATURE2_SCV =3D 0x00100000, /* scv syscall */ QEMU_PPC_FEATURE2_HTM_NO_SUSPEND =3D 0x00080000, /* TM w/o suspended s= tate */ + QEMU_PPC_FEATURE2_ARCH_3_1 =3D 0x00040000, /* ISA 3.1 */ + QEMU_PPC_FEATURE2_MMA =3D 0x00020000, /* Matrix-Multiply Assist */ }; =20 #define ELF_HWCAP get_elf_hwcap() @@ -836,6 +838,8 @@ static uint32_t get_elf_hwcap2(void) QEMU_PPC_FEATURE2_VEC_CRYPTO); GET_FEATURE2(PPC2_ISA300, QEMU_PPC_FEATURE2_ARCH_3_00 | QEMU_PPC_FEATURE2_DARN | QEMU_PPC_FEATURE2_HAS_IEEE128); + GET_FEATURE2(PPC2_ISA310, QEMU_PPC_FEATURE2_ARCH_3_1 | + QEMU_PPC_FEATURE2_MMA); =20 #undef GET_FEATURE #undef GET_FEATURE2 --=20 2.36.1