{"id":2234615,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2234615/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20260507221717.486023-12-richard.henderson@linaro.org/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.2/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260507221717.486023-12-richard.henderson@linaro.org>","list_archive_url":null,"date":"2026-05-07T22:17:10","name":"[11/18] fpu: Use accessors for tininess_before_rounding","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"9ec0b577a32504d93c020b4ec6fba52754a7a120","submitter":{"id":72104,"url":"http://patchwork.ozlabs.org/api/1.2/people/72104/?format=json","name":"Richard Henderson","email":"richard.henderson@linaro.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20260507221717.486023-12-richard.henderson@linaro.org/mbox/","series":[{"id":503289,"url":"http://patchwork.ozlabs.org/api/1.2/series/503289/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=503289","date":"2026-05-07T22:16:59","name":"fpu: Compress float_status","version":1,"mbox":"http://patchwork.ozlabs.org/series/503289/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2234615/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2234615/checks/","tags":{},"related":[],"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=W2W0yGCl;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4gBRVY3ptJz1yCg\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 08 May 2026 08:19:01 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wL72K-0000s7-3a; Thu, 07 May 2026 18:17:40 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <richard.henderson@linaro.org>)\n id 1wL72I-0000ru-Qw\n for qemu-devel@nongnu.org; Thu, 07 May 2026 18:17:38 -0400","from mail-oo1-xc34.google.com ([2607:f8b0:4864:20::c34])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <richard.henderson@linaro.org>)\n id 1wL72G-0003Ex-BF\n for qemu-devel@nongnu.org; Thu, 07 May 2026 18:17:38 -0400","by mail-oo1-xc34.google.com with SMTP id\n 006d021491bc7-6949f3eeaf6so1216157eaf.0\n for <qemu-devel@nongnu.org>; Thu, 07 May 2026 15:17:35 -0700 (PDT)","from stoup.attlocal.net ([2600:381:c938:6375:9641:bbb2:a93a:bb4c])\n by smtp.gmail.com with ESMTPSA id\n 586e51a60fabf-435573e7254sm45037fac.14.2026.05.07.15.17.33\n for <qemu-devel@nongnu.org>\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 07 May 2026 15:17:33 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1778192254; x=1778797054; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:to:from:from:to:cc:subject:date:message-id\n :reply-to; bh=m63KohySy09FkFyyCZ8fbqOzqD49GaHFi9mPn3TK+k4=;\n b=W2W0yGCl6FQ8aNgjA9zd63DmAWbjllVLHP2kgd+jbNEpyCMPjUp7SdPyu/ANoHh+lg\n wp9NGXkTX5/CaTN3oVVyKfOyBOxY7tasBYRFAeDDrvd3D+b2x3CgEeZMBYuVHfpLFZTn\n 2eUYDOrGDyEBn+D76hAn1z+x+iITfMJZMwblPq0kKmTR8z9EE28ka6Fr5biZ42jrNvkC\n qkvcMC+pV41AMsqGPuh3EKA4h9BBMdrSfkzg+uzHvH5e7SAPBKiDhb2UlwPya7P7LfFO\n 26oSfshq+O8rJYzdnD9Gfjb92SNlEUDhJkwZsG+DEoqzvEUUXoj1SCOIx3Umzo3Q/Fin\n ZxIA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1778192254; x=1778797054;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to\n :cc:subject:date:message-id:reply-to;\n bh=m63KohySy09FkFyyCZ8fbqOzqD49GaHFi9mPn3TK+k4=;\n b=V3x6P8HDuJ4o6SwPsNmX3SNFiR1j05cg9730TM4TnHwRySUiXMrM/TShxK8q9zuE3G\n bSUowZIv2KVKDaemBXxvQ6FBynkYOyplCtslV4IglhuzYw3xJTb8rJ+kOOJF29LPoxel\n 8bs0torto5aqGLPHHTLwAdOvbwxtMg8Gs2KCrdn6cs9hrxjC6i+ezJsIRMF1EJlPSqsZ\n XYN0E6m2TszAKBcSFIJ3mP6dr5dVU65hYuVasbrb8E4VyDL1asAqw0YdQF1qwHDdYNdC\n 3Ckokssl1vpeSeMsSL4sXhW1HT0LvcD/676l/XjTGw36r/7WDNGh1Ib6FDhMlaG0it09\n 22tQ==","X-Gm-Message-State":"AOJu0YyebAFYpYE2PSp63W0Q2q5zDbfl2ZaO9LpY92XELT4ze0/RSvb4\n C8ro9A5gXdUQfs89152YeqV2IYVHfXxCgATPDZ6nbDlFBpMJR7lq9nx0ZMZ2JTgCU5HNeyHGAed\n y+o8b","X-Gm-Gg":"AeBDiesgeBcCboFp5K5I1wMcDxUaiDibaws+Jt4dLp4XG7zjP8YfaA1XerZg1EvUSxc\n Jvdt49i8N1L0hfGeac3h2R3VVGallRSd0cNyvarGK5FP9v/edGQU+qwGpPQ+Ved8pS5Bqx3CJor\n ah0+Wjma46GxWibUCZx9UrGzVdU3FV+PNYQzpsEE3jLfGrDCNfc6N0/L5cJucw/fMaobxR/IrsI\n FFOxw9IPPjNCHJBlvW7iodPny+YrToPr6r1dCpivE3CNpqO9H+2a4npZ5lH83lxJFZzg+1bYTDz\n xGF3t555yxTcst9HYd6em/cBUt3h1eWuAnKdl7PYtPb+Knn7fKqnRp9R5RC+1tzpFjZZ/7ruL3+\n KHydSCz8yKSigz07Yr8x0yYqgFQgnA/ewKkzbi1Ge7NXeVCRhZWOt4tqBQhSkjX6zy9Ofm/Z63e\n alp48iviar84NOdxY/SxMGtyNMmtY5I5/i340GNi60wSkyIw==","X-Received":"by 2002:a05:6820:c8f:b0:67d:e6fa:4488 with SMTP id\n 006d021491bc7-699ab64e49dmr2547814eaf.22.1778192254263;\n Thu, 07 May 2026 15:17:34 -0700 (PDT)","From":"Richard Henderson <richard.henderson@linaro.org>","To":"qemu-devel@nongnu.org","Subject":"[PATCH 11/18] fpu: Use accessors for tininess_before_rounding","Date":"Thu,  7 May 2026 17:17:10 -0500","Message-ID":"<20260507221717.486023-12-richard.henderson@linaro.org>","X-Mailer":"git-send-email 2.43.0","In-Reply-To":"<20260507221717.486023-1-richard.henderson@linaro.org>","References":"<20260507221717.486023-1-richard.henderson@linaro.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Received-SPF":"pass client-ip=2607:f8b0:4864:20::c34;\n envelope-from=richard.henderson@linaro.org; helo=mail-oo1-xc34.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,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n 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":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"},"content":"Rename get_float_detect_tininess to get_tininess_before_rounding\nand move to softfloat.c, as there are no external users.\n\nSigned-off-by: Richard Henderson <richard.henderson@linaro.org>\n---\n include/fpu/softfloat-helpers.h | 5 -----\n fpu/softfloat.c                 | 4 ++--\n tests/fp/fp-test.c              | 2 +-\n fpu/softfloat-parts.c.inc       | 2 +-\n fpu/softfloat-specialize.c.inc  | 5 +++++\n 5 files changed, 9 insertions(+), 9 deletions(-)","diff":"diff --git a/include/fpu/softfloat-helpers.h b/include/fpu/softfloat-helpers.h\nindex 95edd22842..395ce67abf 100644\n--- a/include/fpu/softfloat-helpers.h\n+++ b/include/fpu/softfloat-helpers.h\n@@ -132,11 +132,6 @@ static inline void set_snan_rule(FloatSNaNRule val, float_status *status)\n     status->float_snan_rule = val;\n }\n \n-static inline bool get_float_detect_tininess(const float_status *status)\n-{\n-    return status->tininess_before_rounding;\n-}\n-\n static inline FloatRoundMode get_float_rounding_mode(const float_status *status)\n {\n     return status->float_rounding_mode;\ndiff --git a/fpu/softfloat.c b/fpu/softfloat.c\nindex 1be90c9c7c..b1c2b0e6e1 100644\n--- a/fpu/softfloat.c\n+++ b/fpu/softfloat.c\n@@ -4911,7 +4911,7 @@ floatx80 roundAndPackFloatx80(FloatX80RoundPrec roundingPrecision, bool zSign,\n                 float_raise(float_flag_output_denormal_flushed, status);\n                 return packFloatx80(zSign, 0, 0);\n             }\n-            isTiny = status->tininess_before_rounding\n+            isTiny = get_tininess_before_rounding(status)\n                   || (zExp < 0 )\n                   || (zSig0 <= zSig0 + roundIncrement);\n             shift64RightJamming( zSig0, 1 - zExp, &zSig0 );\n@@ -4985,7 +4985,7 @@ floatx80 roundAndPackFloatx80(FloatX80RoundPrec roundingPrecision, bool zSign,\n             return floatx80_default_inf(zSign, status);\n         }\n         if ( zExp <= 0 ) {\n-            isTiny = status->tininess_before_rounding\n+            isTiny = get_tininess_before_rounding(status)\n                   || (zExp < 0)\n                   || !increment\n                   || (zSig0 < UINT64_C(0xFFFFFFFFFFFFFFFF));\ndiff --git a/tests/fp/fp-test.c b/tests/fp/fp-test.c\nindex 326a1201f3..16ffd36e6f 100644\n--- a/tests/fp/fp-test.c\n+++ b/tests/fp/fp-test.c\n@@ -1011,7 +1011,7 @@ void run_test(void)\n \n                     verCases_tininessCode = 0;\n                     slowfloat_detectTininess = tmode;\n-                    qsf.tininess_before_rounding = sf_tininess_to_qemu(tmode);\n+                    set_float_detect_tininess(sf_tininess_to_qemu(tmode), &qsf);\n \n                     if (attrs & FUNC_EFF_TININESSMODE ||\n                         ((attrs & FUNC_EFF_TININESSMODE_REDUCEDPREC) &&\ndiff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc\nindex 38b317c1a7..72bbafcb13 100644\n--- a/fpu/softfloat-parts.c.inc\n+++ b/fpu/softfloat-parts.c.inc\n@@ -428,7 +428,7 @@ static void partsN(uncanon_normal)(FloatPartsN *p, float_status *s,\n         exp = 0;\n         fracN(clear)(p);\n     } else {\n-        bool is_tiny = s->tininess_before_rounding || exp < 0;\n+        bool is_tiny = get_tininess_before_rounding(s) || exp < 0;\n         bool has_pseudo_denormals = fmt->has_explicit_bit &&\n             (get_floatx80_behaviour(s) & floatx80_pseudo_denormal_valid);\n \ndiff --git a/fpu/softfloat-specialize.c.inc b/fpu/softfloat-specialize.c.inc\nindex 91250bc5a1..ac3fc85138 100644\n--- a/fpu/softfloat-specialize.c.inc\n+++ b/fpu/softfloat-specialize.c.inc\n@@ -79,6 +79,11 @@ this code that are retained.\n  * version 2 or later. See the COPYING file in the top-level directory.\n  */\n \n+static inline bool get_tininess_before_rounding(const float_status *status)\n+{\n+    return status->tininess_before_rounding;\n+}\n+\n /*----------------------------------------------------------------------------\n | For the deconstructed floating-point with fraction FRAC, return true\n | if the fraction represents a signalling NaN; otherwise false.\n","prefixes":["11/18"]}