From patchwork Thu Jan 14 19:16:48 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Huber X-Patchwork-Id: 1426626 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=gcc-patches-bounces@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=embedded-brains.de Received: from sourceware.org (unknown [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DGvFb1qT0z9sVk for ; Fri, 15 Jan 2021 06:17:07 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9D5C9394881B; Thu, 14 Jan 2021 19:17:03 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from dedi548.your-server.de (dedi548.your-server.de [85.10.215.148]) by sourceware.org (Postfix) with ESMTPS id A3C3438708DA for ; Thu, 14 Jan 2021 19:16:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org A3C3438708DA Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=embedded-brains.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=sebastian.huber@embedded-brains.de Received: from sslproxy01.your-server.de ([78.46.139.224]) by dedi548.your-server.de with esmtpsa (TLSv1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.92.3) (envelope-from ) id 1l0877-0008sU-P3; Thu, 14 Jan 2021 20:16:57 +0100 Received: from [82.100.198.138] (helo=mail.embedded-brains.de) by sslproxy01.your-server.de with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92) (envelope-from ) id 1l0877-0008E3-Lw; Thu, 14 Jan 2021 20:16:57 +0100 Received: from localhost (localhost.localhost [127.0.0.1]) by mail.embedded-brains.de (Postfix) with ESMTP id 5F5AC2A165B; Thu, 14 Jan 2021 20:16:57 +0100 (CET) Received: from mail.embedded-brains.de ([127.0.0.1]) by localhost (zimbra.eb.localhost [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id L380rNqFulyS; Thu, 14 Jan 2021 20:16:57 +0100 (CET) Received: from localhost (localhost.localhost [127.0.0.1]) by mail.embedded-brains.de (Postfix) with ESMTP id E7D6D2A1681; Thu, 14 Jan 2021 20:16:56 +0100 (CET) X-Virus-Scanned: amavisd-new at zimbra.eb.localhost Received: from mail.embedded-brains.de ([127.0.0.1]) by localhost (zimbra.eb.localhost [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id yc7Jh0_qe9e6; Thu, 14 Jan 2021 20:16:56 +0100 (CET) Received: from zimbra.eb.localhost (unknown [192.168.96.242]) by mail.embedded-brains.de (Postfix) with ESMTPSA id C7CFE2A1610; Thu, 14 Jan 2021 20:16:56 +0100 (CET) From: Sebastian Huber To: gcc-patches@gcc.gnu.org Subject: [PATCH 1/2] nios2: Add -mcustom-fpu-cfg=fph2 Date: Thu, 14 Jan 2021 20:16:48 +0100 Message-Id: <20210114191649.7589-1-sebastian.huber@embedded-brains.de> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 X-Authenticated-Sender: smtp-embedded@poldinet.de X-Virus-Scanned: Clear (ClamAV 0.102.4/26049/Thu Jan 14 13:41:36 2021) X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_NUMSUBJECT, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sandra Loosemore Errors-To: gcc-patches-bounces@gcc.gnu.org Sender: "Gcc-patches" The new -mcustom-fpu-cfg=fph2 option variant is useful to build a multilib for the "Nios II Floating Point Hardware 2 Component": https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug_nios2_custom_instruction.pdf Directly using the corresponding -mcustom-insn=N options for this floating-point unit leads to a combinatorial explosion in the potential count of multilibs which may break the build. The following instructions supported by this component are not enabled by this option: * -mcustom-fmins * -mcustom-fmaxs * -mcustom-round The reason is that these instructions are only in effect in combination with other options. If they are not set, then a build error occurs in libatomic since -Werror is used for building this library: cc1: error: switch '-mcustom-fmins' has no effect unless '-ffinite-math-only' is specified [-Werror] cc1: error: switch '-mcustom-fmaxs' has no effect unless '-ffinite-math-only' is specified [-Werror] cc1: error: switch '-mcustom-round' has no effect unless '-fno-math-errno' is specified [-Werror] gcc/ * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value. (nios2_init_fpu_configs): Provide register values for new -mcustom-fpu-cfg=fph2 option variant. * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option variant. --- gcc/config/nios2/nios2.c | 20 +++++++++++++++++++- gcc/doc/invoke.texi | 25 +++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/gcc/config/nios2/nios2.c b/gcc/config/nios2/nios2.c index 3bffabe9856..fc9c8b70807 100644 --- a/gcc/config/nios2/nios2.c +++ b/gcc/config/nios2/nios2.c @@ -1236,7 +1236,7 @@ struct nios2_fpu_config int code[n2fpu_code_num]; }; -#define NIOS2_FPU_CONFIG_NUM 3 +#define NIOS2_FPU_CONFIG_NUM 4 static struct nios2_fpu_config custom_fpu_config[NIOS2_FPU_CONFIG_NUM]; static void @@ -1280,6 +1280,24 @@ nios2_init_fpu_configs (void) cfg->code[n2fpu_fsubs] = 254; cfg->code[n2fpu_fdivs] = 255; + NEXT_FPU_CONFIG; + cfg->name = "fph2"; + cfg->code[n2fpu_fabss] = 224; + cfg->code[n2fpu_fnegs] = 225; + cfg->code[n2fpu_fcmpnes] = 226; + cfg->code[n2fpu_fcmpeqs] = 227; + cfg->code[n2fpu_fcmpges] = 228; + cfg->code[n2fpu_fcmpgts] = 229; + cfg->code[n2fpu_fcmples] = 230; + cfg->code[n2fpu_fcmplts] = 231; + cfg->code[n2fpu_fixsi] = 249; + cfg->code[n2fpu_floatis] = 250; + cfg->code[n2fpu_fsqrts] = 251; + cfg->code[n2fpu_fmuls] = 252; + cfg->code[n2fpu_fadds] = 253; + cfg->code[n2fpu_fsubs] = 254; + cfg->code[n2fpu_fdivs] = 255; + #undef NEXT_FPU_CONFIG gcc_assert (i == NIOS2_FPU_CONFIG_NUM); } diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 298f1f873e3..91fd980550f 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -26121,6 +26121,23 @@ Currently, the following sets are defined: -mcustom-fdivs=255 @gol -fsingle-precision-constant} +@option{-mcustom-fpu-cfg=fph2} is equivalent to: +@gccoptlist{-mcustom-fabss=224 @gol +-mcustom-fnegs=225 @gol +-mcustom-fcmpnes=226 @gol +-mcustom-fcmpeqs=227 @gol +-mcustom-fcmpges=228 @gol +-mcustom-fcmpgts=229 @gol +-mcustom-fcmples=230 @gol +-mcustom-fcmplts=231 @gol +-mcustom-fixsi=249 @gol +-mcustom-floatis=250 @gol +-mcustom-fsqrts=251 @gol +-mcustom-fmuls=252 @gol +-mcustom-fadds=253 @gol +-mcustom-fsubs=254 @gol +-mcustom-fdivs=255 @gol} + Custom instruction assignments given by individual @option{-mcustom-@var{insn}=} options override those given by @option{-mcustom-fpu-cfg=}, regardless of the @@ -26131,6 +26148,14 @@ configuration by using the @code{target("custom-fpu-cfg=@var{name}")} function attribute (@pxref{Function Attributes}) or pragma (@pxref{Function Specific Option Pragmas}). +The name @var{fph2} is an abbreviation for @emph{Nios II Floating Point +Hardware 2 Component}. This component supports also the custom instructions +@option{-mcustom-fmins=233}, @option{-mcustom-fmaxs=234}, and +@option{-mcustom-round=248}. These options are not enabled by +@option{-mcustom-fpu-cfg=fph2} since they are only in effect if other options +are enabled. In contrast to the other configurations, +@option{-fsingle-precision-constant} is not set. + @end table These additional @samp{-m} options are available for the Altera Nios II From patchwork Thu Jan 14 19:16:49 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Huber X-Patchwork-Id: 1426627 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=embedded-brains.de Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DGvFg6zfpz9sVk for ; Fri, 15 Jan 2021 06:17:11 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0B4A5394D8FE; Thu, 14 Jan 2021 19:17:04 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from dedi548.your-server.de (dedi548.your-server.de [85.10.215.148]) by sourceware.org (Postfix) with ESMTPS id A5E553948010 for ; Thu, 14 Jan 2021 19:16:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org A5E553948010 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=embedded-brains.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=sebastian.huber@embedded-brains.de Received: from sslproxy01.your-server.de ([78.46.139.224]) by dedi548.your-server.de with esmtpsa (TLSv1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.92.3) (envelope-from ) id 1l0878-0008sY-1u; Thu, 14 Jan 2021 20:16:58 +0100 Received: from [82.100.198.138] (helo=mail.embedded-brains.de) by sslproxy01.your-server.de with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92) (envelope-from ) id 1l0877-0008FM-Us; Thu, 14 Jan 2021 20:16:57 +0100 Received: from localhost (localhost.localhost [127.0.0.1]) by mail.embedded-brains.de (Postfix) with ESMTP id A1D762A1681; Thu, 14 Jan 2021 20:16:57 +0100 (CET) Received: from mail.embedded-brains.de ([127.0.0.1]) by localhost (zimbra.eb.localhost [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id FYCR0Iw5gyeI; Thu, 14 Jan 2021 20:16:57 +0100 (CET) Received: from localhost (localhost.localhost [127.0.0.1]) by mail.embedded-brains.de (Postfix) with ESMTP id 01D252A1610; Thu, 14 Jan 2021 20:16:57 +0100 (CET) X-Virus-Scanned: amavisd-new at zimbra.eb.localhost Received: from mail.embedded-brains.de ([127.0.0.1]) by localhost (zimbra.eb.localhost [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id aQar7aWqVQOX; Thu, 14 Jan 2021 20:16:56 +0100 (CET) Received: from zimbra.eb.localhost (unknown [192.168.96.242]) by mail.embedded-brains.de (Postfix) with ESMTPSA id D42DE2A165B; Thu, 14 Jan 2021 20:16:56 +0100 (CET) From: Sebastian Huber To: gcc-patches@gcc.gnu.org Subject: [PATCH 2/2] RTEMS: Add -mcustom-fpu-cfg=fph2 multilib Date: Thu, 14 Jan 2021 20:16:49 +0100 Message-Id: <20210114191649.7589-2-sebastian.huber@embedded-brains.de> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210114191649.7589-1-sebastian.huber@embedded-brains.de> References: <20210114191649.7589-1-sebastian.huber@embedded-brains.de> MIME-Version: 1.0 X-Authenticated-Sender: smtp-embedded@poldinet.de X-Virus-Scanned: Clear (ClamAV 0.102.4/26049/Thu Jan 14 13:41:36 2021) X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sandra Loosemore Errors-To: gcc-patches-bounces@gcc.gnu.org Sender: "Gcc-patches" This multilib supports Nios II configurations with the "Nios II Floating Point Hardware 2 Component". gcc/ * config/nios2/t-rtems: Reset all MULTILIB_* variables. Shorten multilib directory names. Use MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS. Add -mhw-mul -mhw-mulx -mhw-div -mcustom-fpu-cfg=fph2 multilib. --- gcc/config/nios2/t-rtems | 146 +++++---------------------------------- 1 file changed, 18 insertions(+), 128 deletions(-) diff --git a/gcc/config/nios2/t-rtems b/gcc/config/nios2/t-rtems index f95fa3c4717..beda8328bd2 100644 --- a/gcc/config/nios2/t-rtems +++ b/gcc/config/nios2/t-rtems @@ -1,133 +1,23 @@ # Custom RTEMS multilibs -MULTILIB_OPTIONS = mhw-mul mhw-mulx mhw-div mcustom-fadds=253 mcustom-fdivs=255 mcustom-fmuls=252 mcustom-fsubs=254 +# Reset all MULTILIB variables + +MULTILIB_OPTIONS = +MULTILIB_DIRNAMES = +MULTILIB_EXCEPTIONS = +MULTILIB_REUSE = +MULTILIB_MATCHES = +MULTILIB_REQUIRED = # Enumeration of multilibs -# MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mhw-div/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mhw-div/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mhw-div/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mhw-div/mcustom-fadds=253/mcustom-fdivs=255 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mhw-div/mcustom-fadds=253/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mhw-div/mcustom-fadds=253/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mhw-div/mcustom-fadds=253/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mhw-div/mcustom-fadds=253 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mhw-div/mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mhw-div/mcustom-fdivs=255/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mhw-div/mcustom-fdivs=255/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mhw-div/mcustom-fdivs=255 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mhw-div/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mhw-div/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mhw-div/mcustom-fsubs=254 -# MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mhw-div -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mcustom-fadds=253/mcustom-fdivs=255 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mcustom-fadds=253/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mcustom-fadds=253/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mcustom-fadds=253/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mcustom-fadds=253 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mcustom-fdivs=255/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mcustom-fdivs=255/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mcustom-fdivs=255 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-mulx -MULTILIB_EXCEPTIONS += mhw-mul/mhw-div/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-div/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-div/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-div/mcustom-fadds=253/mcustom-fdivs=255 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-div/mcustom-fadds=253/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-div/mcustom-fadds=253/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-div/mcustom-fadds=253/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-div/mcustom-fadds=253 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-div/mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-div/mcustom-fdivs=255/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-div/mcustom-fdivs=255/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-div/mcustom-fdivs=255 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-div/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-div/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-div/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mhw-div -MULTILIB_EXCEPTIONS += mhw-mul/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mul/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mcustom-fadds=253/mcustom-fdivs=255 -MULTILIB_EXCEPTIONS += mhw-mul/mcustom-fadds=253/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mcustom-fadds=253/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mul/mcustom-fadds=253/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mcustom-fadds=253 -MULTILIB_EXCEPTIONS += mhw-mul/mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mcustom-fdivs=255/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mul/mcustom-fdivs=255/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mcustom-fdivs=255 -MULTILIB_EXCEPTIONS += mhw-mul/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mul/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mul/mcustom-fsubs=254 -# MULTILIB_EXCEPTIONS += mhw-mul -MULTILIB_EXCEPTIONS += mhw-mulx/mhw-div/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mulx/mhw-div/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mulx/mhw-div/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mulx/mhw-div/mcustom-fadds=253/mcustom-fdivs=255 -MULTILIB_EXCEPTIONS += mhw-mulx/mhw-div/mcustom-fadds=253/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mulx/mhw-div/mcustom-fadds=253/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mulx/mhw-div/mcustom-fadds=253/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mulx/mhw-div/mcustom-fadds=253 -MULTILIB_EXCEPTIONS += mhw-mulx/mhw-div/mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mulx/mhw-div/mcustom-fdivs=255/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mulx/mhw-div/mcustom-fdivs=255/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mulx/mhw-div/mcustom-fdivs=255 -MULTILIB_EXCEPTIONS += mhw-mulx/mhw-div/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mulx/mhw-div/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mulx/mhw-div/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mulx/mhw-div -MULTILIB_EXCEPTIONS += mhw-mulx/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mulx/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mulx/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mulx/mcustom-fadds=253/mcustom-fdivs=255 -MULTILIB_EXCEPTIONS += mhw-mulx/mcustom-fadds=253/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mulx/mcustom-fadds=253/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mulx/mcustom-fadds=253/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mulx/mcustom-fadds=253 -MULTILIB_EXCEPTIONS += mhw-mulx/mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mulx/mcustom-fdivs=255/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mulx/mcustom-fdivs=255/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mulx/mcustom-fdivs=255 -MULTILIB_EXCEPTIONS += mhw-mulx/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mulx/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-mulx/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-mulx -MULTILIB_EXCEPTIONS += mhw-div/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-div/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-div/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-div/mcustom-fadds=253/mcustom-fdivs=255 -MULTILIB_EXCEPTIONS += mhw-div/mcustom-fadds=253/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-div/mcustom-fadds=253/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-div/mcustom-fadds=253/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-div/mcustom-fadds=253 -MULTILIB_EXCEPTIONS += mhw-div/mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-div/mcustom-fdivs=255/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-div/mcustom-fdivs=255/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-div/mcustom-fdivs=255 -MULTILIB_EXCEPTIONS += mhw-div/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-div/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mhw-div/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mhw-div -MULTILIB_EXCEPTIONS += mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mcustom-fadds=253/mcustom-fdivs=255/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mcustom-fadds=253/mcustom-fdivs=255 -MULTILIB_EXCEPTIONS += mcustom-fadds=253/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mcustom-fadds=253/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mcustom-fadds=253/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mcustom-fadds=253 -MULTILIB_EXCEPTIONS += mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mcustom-fdivs=255/mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mcustom-fdivs=255/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mcustom-fdivs=255 -MULTILIB_EXCEPTIONS += mcustom-fmuls=252/mcustom-fsubs=254 -MULTILIB_EXCEPTIONS += mcustom-fmuls=252 -MULTILIB_EXCEPTIONS += mcustom-fsubs=254 +MULTILIB_OPTIONS += mhw-mul mhw-mulx mhw-div +MULTILIB_DIRNAMES += mul mulx div + +MULTILIB_OPTIONS += mcustom-fadds=253 mcustom-fdivs=255 mcustom-fmuls=252 mcustom-fsubs=254 mcustom-fpu-cfg=fph2 +MULTILIB_DIRNAMES += fadds fdivs fmuls fsubs fph2 + +MULTILIB_REQUIRED += mhw-mul +MULTILIB_REQUIRED += mhw-mul/mhw-mulx/mhw-div +MULTILIB_REQUIRED += mhw-mul/mhw-mulx/mhw-div/mcustom-fadds=253/mcustom-fdivs=255/mcustom-fmuls=252/mcustom-fsubs=254 +MULTILIB_REQUIRED += mhw-mul/mhw-mulx/mhw-div/mcustom-fpu-cfg=fph2