From patchwork Tue May 15 22:25:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 135934 Delivered-To: patch@linaro.org Received: by 2002:a2e:9706:0:0:0:0:0 with SMTP id r6-v6csp73418lji; Tue, 15 May 2018 15:26:22 -0700 (PDT) X-Google-Smtp-Source: AB8JxZogZnF2fGNQgcNDXG4Wo4VJwmwL+A2fYQrTIJWCKkMwsS2/1sYW9pknJbglH9+OdCEGld0+ X-Received: by 2002:ac8:3fd9:: with SMTP id v25-v6mr15547818qtk.54.1526423182289; Tue, 15 May 2018 15:26:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526423182; cv=none; d=google.com; s=arc-20160816; b=o6YoODP9oufqF1spVwhjETuM5n+2RnSOuLpEJ58pwCjREyYTzkJtZkSaDCSGUmW2Bq vsMLwQaka/6JifsWSOp7Nf7XljLCvZK7tQO6a7vcIfDjjuNZY4+DzpjTAUC7OdbEJ6Fe MEw+qRhjSFCyocI1hprZYnoo+h+hUDHU8JJwVBOUwKeAq3efskj4REij/gmH0FB+M+Rt f/7wTGyKZ3DEuCTlqDWZNQ4X6mqh45661F4rdUQ/fYxDiUvmcK3QHlMN/G+lRSQwaNdx PdgVILJ/KNwOBwVIB1rcIVLBFEqgNhPsKis7VGbWv3X8IyMqd1BQNCdIoUAV9nmUBoYP /gXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:message-id:date:to:from :dkim-signature:arc-authentication-results; bh=SfsLrNN4xfRD/8NcTnhhiIgD4C4cq6MzqmsXiF/Wjyg=; b=wntQZEuNmyi/mFRx2uikhmtMXE1Ei7a9WN/KPAFX/LXCdtEvYSAzVDUyshId+T2N2A ce3yQiciKll+JvjDCLeNT2ILWboi4mTS6Amqo49MN4Bi+zwI2kB7uPHMuXaeXrb2QS1m EuhAowTPylkjZ+xId4faGbANJHgz48FmMBZTn/4KpsHp5Spuahi9pzjNItofq6ZGoLJx aK76tHjtjooVhbMdBxykfS9ZvKXBDXY8xxob8GZvhHNcHUD24RpC2U3ozff8V2Eu2mR4 xHU4914xHY5upiuwfY1xe5498IwJELwjaKncDZx0h5FaPR0KeWyXALneU+XXobK+7/98 O1vQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=A4bz3hF3; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id s3-v6si448042qkb.211.2018.05.15.15.26.22 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 15 May 2018 15:26:22 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=A4bz3hF3; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:36278 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fIiOj-0003IL-MT for patch@linaro.org; Tue, 15 May 2018 18:26:21 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39440) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fIiOE-0003Fk-77 for qemu-devel@nongnu.org; Tue, 15 May 2018 18:25:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fIiOA-0003Bl-1U for qemu-devel@nongnu.org; Tue, 15 May 2018 18:25:50 -0400 Received: from mail-pf0-x244.google.com ([2607:f8b0:400e:c00::244]:44811) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fIiO9-00035y-PS for qemu-devel@nongnu.org; Tue, 15 May 2018 18:25:45 -0400 Received: by mail-pf0-x244.google.com with SMTP id q22-v6so730697pff.11 for ; Tue, 15 May 2018 15:25:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=SfsLrNN4xfRD/8NcTnhhiIgD4C4cq6MzqmsXiF/Wjyg=; b=A4bz3hF36Ylwz3s1Ia97oqkhYWMw3xilJhgM6ecTQgONZmXzaduXkrrmDmQM4SnmRw qLnlJy26GJHa21XJNkyKHOC6BN/v3rGpKZ4wkWrKIpn47ffjItWRyR9oUe6yBQbHF2Cq tvDTcjyBSdXD/PymrqreMZogw0GlQaqfXVtjA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=SfsLrNN4xfRD/8NcTnhhiIgD4C4cq6MzqmsXiF/Wjyg=; b=NKNkEWyeRe8FPiOKV3mqpl2U4NFgAxIPUm5okfc5IGQ4dHbbP+zrr7SPASyc0oiPnr BVAbwimuA3sNNy4iHWWUB4b/nuCqPsANiNmt/Q74YQCEgAuzBhx6ze00It6CNUhhaA3J 40ThYyl0+1Ew4jlyD/pHT1fQ/gezy6drfCgaZUPxNUx+Yb/rCeK0H6MKgqfQxCrjqGxl jRbYB/b/bJEnuu1NL9DPeFRjK+1B4jQsLDwFmlJGVC23rN0WtWVRdf7075LLryGxB2mi XFAI9MMUFQE4oR3pk8+w44KDRU3D7KduZGxgxvuk/6yEJJa2aGEO0Bhh+3YAXSTgl7rp AGlA== X-Gm-Message-State: ALKqPwcGVEX56JNdMUsikCrCzo6HLDgqAAiAdOihCz75kbdd90SExV9c pduis8jgI2a8VxvXNgZMVGonEdyI4D4= X-Received: by 2002:a63:7154:: with SMTP id b20-v6mr13713024pgn.13.1526423144396; Tue, 15 May 2018 15:25:44 -0700 (PDT) Received: from cloudburst.twiddle.net (97-113-2-170.tukw.qwest.net. [97.113.2.170]) by smtp.gmail.com with ESMTPSA id g11-v6sm941419pgq.62.2018.05.15.15.25.42 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 15 May 2018 15:25:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Tue, 15 May 2018 15:25:12 -0700 Message-Id: <20180515222540.9988-1-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.0 MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400e:c00::244 Subject: [Qemu-devel] [PATCH v6 00/28] softfloat patch roundup X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This is my SNaN patch set, Alex's float-float refactor, and a couple of other random outstanding fpu patches. This has been reordered so as to be bisectable, since the float-float refactor requires the snan work to avoid breakage. The edition of pm215/target-arm.next upon which this was built has now been merged to master, so there are no external dependencies. Changes since v5: - Fix issues in the last couple of patches added for v5. - Incorporate feedback from pm215. Changes since n-2: - Use v5 instead of v3, since Alex was up to v4 with float-float. - Incorporate feedback from pm215. - Include float128 fix from Petr. - Include further cleanups for default_nan and silence_nan. The first of these was inspired by a comment from pm215; the rest follow as logical extensions. r~ Alex Bennée (4): target/arm: convert conversion helpers to fpst/ahp_flag target/arm: squash FZ16 behaviour for conversions fpu/softfloat: Partial support for ARM Alternative half-precision fpu/softfloat: re-factor float to float conversions Petr Tesarik (1): fpu/softfloat: Fix conversion from uint64 to float128 Richard Henderson (23): fpu/softfloat: Merge NO_SIGNALING_NANS definitions fpu/softfloat: Split floatXX_silence_nan from floatXX_maybe_silence_nan fpu/softfloat: Move softfloat-specialize.h below FloatParts definition fpu/softfloat: Canonicalize NaN fraction fpu/softfloat: Introduce parts_is_snan_frac fpu/softfloat: Replace float_class_dnan with parts_default_nan fpu/softfloat: Replace float_class_msnan with parts_silence_nan target/arm: Use floatX_silence_nan when we have already checked for SNaN target/arm: Remove floatX_maybe_silence_nan from conversions target/hppa: Remove floatX_maybe_silence_nan from conversions target/m68k: Use floatX_silence_nan when we have already checked for SNaN target/mips: Remove floatX_maybe_silence_nan from conversions target/riscv: Remove floatX_maybe_silence_nan from conversions target/s390x: Remove floatX_maybe_silence_nan from conversions fpu/softfloat: Use float*_silence_nan in propagateFloat*NaN fpu/softfloat: Remove floatX_maybe_silence_nan fpu/softfloat: Specialize on snan_bit_is_one fpu/softfloat: Make is_nan et al available to softfloat-specialize.h fpu/softfloat: Pass FloatClass to pickNaN fpu/softfloat: Pass FloatClass to pickNaNMulAdd fpu/softfloat: Define floatN_default_nan in terms of parts_default_nan fpu/softfloat: Clean up parts_default_nan fpu/softfloat: Define floatN_silence_nan in terms of parts_silence_nan fpu/softfloat-specialize.h | 691 +++++++++++++------------------- include/fpu/softfloat-types.h | 1 + include/fpu/softfloat.h | 18 +- target/arm/helper.h | 10 +- target/arm/translate.h | 12 + fpu/softfloat.c | 726 ++++++++++++---------------------- target/arm/helper-a64.c | 7 +- target/arm/helper.c | 114 +++--- target/arm/translate-a64.c | 37 +- target/arm/translate.c | 74 +++- target/hppa/cpu.c | 1 - target/hppa/op_helper.c | 2 - target/m68k/softfloat.c | 3 +- target/mips/msa_helper.c | 4 - target/mips/op_helper.c | 2 - target/ppc/fpu_helper.c | 1 - target/riscv/fpu_helper.c | 6 +- target/s390x/fpu_helper.c | 12 +- target/sh4/cpu.c | 1 - target/unicore32/cpu.c | 2 - 20 files changed, 718 insertions(+), 1006 deletions(-) -- 2.17.0 Tested-by: Alex Bennée