From patchwork Wed Dec 11 16:19:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 849162 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:2c4:b0:385:e875:8a9e with SMTP id o4csp414162wry; Wed, 11 Dec 2024 08:22:05 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWAR1jbACRsfavHsQmiBM7e1kLXCb3rF7yYGippIpC48h24MgKrvDKtTJKCiTAp5l83+tc/Gg==@linaro.org X-Google-Smtp-Source: AGHT+IGHGcYDAjz1ku1Mx/nUC14UIm1nZH7iaOa3dtlH4K3rv2D8yaVTYOZoteX+HZ8vcUS2X/1V X-Received: by 2002:a05:6214:c64:b0:6d1:9e72:596a with SMTP id 6a1803df08f44-6d934b7f2f5mr58020756d6.37.1733934125269; Wed, 11 Dec 2024 08:22:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1733934125; cv=none; d=google.com; s=arc-20240605; b=Szze9UrYRBF9IYmEosSG+NJng6OAlPk88TuWs/0Rpqb7yWBnPDaNNt4o6ZAqknjLlm Q5LBmxyC/BDwf3mNKKPHchFPjzVRHu5No9MB7PcJbrrcijQcsHzK1OWXMLRDaB62xcdO gMmDTj/62uoVGpYLOUKHlWzKNJoqXE6Ek3FHiVWCjCMlPFznJOW4Ue7sYUsVHopW7LU/ nj1yNCq7DRLszmKjkIqZeN7ZTIRyxykSYnTuIqEeHG7oc5PzsW3SH6XBheT9kit+osIQ AOJqO7sFbjb8JhEHPUU1DpSkrPKGOp63jUIUSms5BMkYgq2+rAogup9w9DMFuOAdL8n/ sP6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=3myRINrKnQas6bU6fv1OR23zH4Adyf999B3PUNZnQ7Q=; fh=PnYt+qEB9tAfMKoqBm2xjKOFpYyFFGPudh5cVIoieJM=; b=kF9z2yLGFQfh9PyAndegkEmIiNSKanXErF17yXDmSnFTnMkaUXQ/i2IOHoaEr+JLzF R23AOZhBWoA5VXfm+wuqjEEdT5n7ECA1G5KWFsyBTL6F60wLQmWgYUlSh/p4VXyfKHds XFEvyPYO5B3BvkMlkszjf2yyzXgPiMj+jB/xU4F1XqVG1xt6t/z2IwVueGWXOWaoK/3N /V9WjIxwe5+w/3IHErzP/vIEzfm8QXs4+4XmyupH20lvXfAo0YDi1OyjaReNlmznRY1A whnqcIvyFKLrNDjBQt/g/moK4nSeMqRh13JHj2H10z5ElFR202jsz3lhYpkq404STZLp vNzA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Gjuf9Ml6; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6d8da67f91fsi171945936d6.66.2024.12.11.08.22.05 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 11 Dec 2024 08:22:05 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Gjuf9Ml6; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tLPSB-0000Lu-VD; Wed, 11 Dec 2024 11:20:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tLPSA-0000L5-FC for qemu-devel@nongnu.org; Wed, 11 Dec 2024 11:20:46 -0500 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tLPS7-0007kC-Pw for qemu-devel@nongnu.org; Wed, 11 Dec 2024 11:20:45 -0500 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-4361b0ec57aso12767135e9.0 for ; Wed, 11 Dec 2024 08:20:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1733934042; x=1734538842; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=3myRINrKnQas6bU6fv1OR23zH4Adyf999B3PUNZnQ7Q=; b=Gjuf9Ml6Ui5L9NM1cajl55/8r3ugGLUJ0nWAmcjC2h31ljbFpeB7lYViE6XMu1mHRH ADEIo0j9NwEBEdVCkzExkhZdq6obvK8eCr0X1TiHs4lJay/bO4UtGI7rFUvGXq+A4MF+ fF35A5hrbrXV4VCo16Tbr+vcfLDau9UZn0Mzpd20G+/jfUrsbhsJH4XHKzsoGbSSRTE2 TorfSKjb3HNODnV3Dnyn+r6f/X5cU8CfhJa5L2xayHm37hrKjmhEuxhiT34rxnuseI6c vyJgwn2UL8H+1YwJoeT/SZX33KoZXZqjDUi025enpWkxY76Dw1EmFKFTz+D60pen/pUB dDXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733934042; x=1734538842; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3myRINrKnQas6bU6fv1OR23zH4Adyf999B3PUNZnQ7Q=; b=Uq80389bKXIuvji49QodIVK8nRhhBLV9XAH3RzevT/RXgbXC5j/Rd7wl5z1a32Trz8 4y3lOrmus/AEQXGc/kjgC6C4SzAuoApUtn3HexHkeSFJIBTDRIkR7p2UcTka257MXrcY HDNxjpLGZJGnE+KPex0w+cTnZTOuQqDQf1v2/EBOpaxT1lt28vKI+OSTqg9Y9eX1Z2Gq +wEehrc+J+xY+tDjMs1RKYjyjUkr26/JQrQ0qwpTlqvbhfHt2ZTkp6QoHGaHXsslivYt olDxBeXDE5f/m9BwZ7H9pv6+dujHjPOzgpIM3/IRydhRi0DDphV4QlrG7q8JvrZDgZxw MTWg== X-Gm-Message-State: AOJu0Yw758lDiy1lleWYfh6v2rOFU2vSCd40v9Dvgo/UZJFlON+w0eY1 eKt1PdnXFWXzvpr0hlHYM5H3dpsXD7Is5m4mi1aniJhzv0RlwZ+waOLVj781YkvidZCpiR+RbEx 8 X-Gm-Gg: ASbGncsNmYGgQX/8lq0a1rtTkOjl3LjT0hCOPJFxZXsWODLSiAaCCfKi4T2VMazl/Gm 2ehelipwM2Zf9rQvvx3FvlXmXp3spTYty4RPT//2wxdxU8EN0j0t9eg6CDqJpRwCRt9TBx33bFL a1RZWhWo6mBresEE9BIKd//nWBAGA9WY+ShXC1FLhLAjEw0zBuZHkwiUz6TZ6x78+y+2tvoB4v+ klKgsiruwd3T05GpzwGS9FXPbqvD880i1drlI+u9CEqxfKdMLNELgi+PWxY X-Received: by 2002:a05:600c:1e0b:b0:435:330d:de86 with SMTP id 5b1f17b1804b1-4362256d085mr3832545e9.0.1733934042275; Wed, 11 Dec 2024 08:20:42 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-434f4dfdcdfsm121460595e9.39.2024.12.11.08.20.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Dec 2024 08:20:41 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Subject: [PULL 30/72] target/hppa: Set Float3NaNPropRule explicitly Date: Wed, 11 Dec 2024 16:19:22 +0000 Message-Id: <20241211162004.2795499-31-peter.maydell@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20241211162004.2795499-1-peter.maydell@linaro.org> References: <20241211162004.2795499-1-peter.maydell@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32d; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x32d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Set the Float3NaNPropRule explicitly for HPPA, and remove the ifdef from pickNaNMulAdd(). HPPA is the only target that was using the default branch of the ifdef ladder (other targets either do not use muladd or set default_nan_mode), so we can remove the ifdef fallback entirely now (allowing the "rule not set" case to fall into the default of the switch statement and assert). We add a TODO note that the HPPA rule is probably wrong; this is not a behavioural change for this refactoring. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20241202131347.498124-26-peter.maydell@linaro.org --- target/hppa/fpu_helper.c | 8 ++++++++ fpu/softfloat-specialize.c.inc | 4 ---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/target/hppa/fpu_helper.c b/target/hppa/fpu_helper.c index 393cae33bf9..69c4ce37835 100644 --- a/target/hppa/fpu_helper.c +++ b/target/hppa/fpu_helper.c @@ -55,6 +55,14 @@ void HELPER(loaded_fr0)(CPUHPPAState *env) * HPPA does note implement a CPU reset method at all... */ set_float_2nan_prop_rule(float_2nan_prop_s_ab, &env->fp_status); + /* + * TODO: The HPPA architecture reference only documents its NaN + * propagation rule for 2-operand operations. Testing on real hardware + * might be necessary to confirm whether this order for muladd is correct. + * Not preferring the SNaN is almost certainly incorrect as it diverges + * from the documented rules for 2-operand operations. + */ + set_float_3nan_prop_rule(float_3nan_prop_abc, &env->fp_status); /* For inf * 0 + NaN, return the input NaN */ set_float_infzeronan_rule(float_infzeronan_dnan_never, &env->fp_status); } diff --git a/fpu/softfloat-specialize.c.inc b/fpu/softfloat-specialize.c.inc index 67428dab98a..5fbc953e71e 100644 --- a/fpu/softfloat-specialize.c.inc +++ b/fpu/softfloat-specialize.c.inc @@ -504,10 +504,6 @@ static int pickNaNMulAdd(FloatClass a_cls, FloatClass b_cls, FloatClass c_cls, } } - if (rule == float_3nan_prop_none) { - rule = float_3nan_prop_abc; - } - assert(rule != float_3nan_prop_none); if (have_snan && (rule & R_3NAN_SNAN_MASK)) { /* We have at least one SNaN input and should prefer it */