From patchwork Wed Apr 27 04:39:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 566750 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6886:0:0:0:0 with SMTP id m6csp4182348map; Tue, 26 Apr 2022 21:43:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwBmMhbTx+7idXPWLdDdsQFVYDh4nmKx+3SLN/Q1FtAF3sK9h0ta746IkkzK3LQytqVAaMy X-Received: by 2002:a05:6214:1c83:b0:443:6749:51f8 with SMTP id ib3-20020a0562141c8300b00443674951f8mr18694712qvb.74.1651034628536; Tue, 26 Apr 2022 21:43:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651034628; cv=none; d=google.com; s=arc-20160816; b=lBNg363OjWmFvCpELVuCI2sil9uRIG0W+lfj/hymZUjwu1O8DEJEcg0tNI2Kr0OcxN ND42GnI/rg+nLM/Yju5F26W48+p8f2dzgqH2/EEEDS9y3hWxUEq0dJAUgcvp+f+9Bv9f SG1rhhDTQ2CCVPYd+dzTTEK6Q60XaAw5fNiRkWT7I4Ni3gEFXIPy0Q4yvbgdElKON0Ij PKZ92mISGhWyfovQxUePdH0ILDJncR/qrbsI14pdXZ3naBdfS+P9mJlCs+jgGRhi04cS 20hPLO9sODmudjaln1obPQmpkVCk05f8xvncBn+MIAbVgtGmZkOzeh7AD0SjJFNZJOsc RG9w== 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:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=ULcFg+YQtMFDdmUsYGTe6VlNAYytQ0q+FNB9e1xihHc=; b=pHMpybv5qujAt9zFiqKyfLkcXN6AHnrm2w0uMz9bwjbG5RChYdDRDcEGractIdfCEd acPQC7gIJPQ4TM5XTickvlrABDLFdA4f1yiNnCIsOfo1YTFQnlMsFJ7YRkc510BomEdU LMv76DpTq/aTsj0SyMDzr0y3SwikW3+cYikB7ukNn8/c66zi0V5vu34PznWpKttVK6hU J9QsO0yE2HQM4752+h0PFaZEg99VDVvspRX1StaqpXJDxVhHMfJbRiAJGjD14IodJQUl SqEKPJje3qPxTnFCntuDIOtnxMt8nPJZ120RxE1EJ0xRUbwaIbFjZJjUlwc6rkUlc8SW UTLw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=vAHCnIJF; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d11-20020a05622a05cb00b002f382c217ddsi104405qtb.340.2022.04.26.21.43.48 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 26 Apr 2022 21:43:48 -0700 (PDT) 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=vAHCnIJF; 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 Received: from localhost ([::1]:56772 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1njZWm-00073N-4J for patch@linaro.org; Wed, 27 Apr 2022 00:43:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50348) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1njZSv-0001IA-77 for qemu-devel@nongnu.org; Wed, 27 Apr 2022 00:39:50 -0400 Received: from mail-pf1-x42c.google.com ([2607:f8b0:4864:20::42c]:41735) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1njZSs-0007SE-FO for qemu-devel@nongnu.org; Wed, 27 Apr 2022 00:39:48 -0400 Received: by mail-pf1-x42c.google.com with SMTP id p8so595981pfh.8 for ; Tue, 26 Apr 2022 21:39: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:in-reply-to:references :mime-version:content-transfer-encoding; bh=ULcFg+YQtMFDdmUsYGTe6VlNAYytQ0q+FNB9e1xihHc=; b=vAHCnIJFKSGzke1kR1JTpgjaVhRtkKvSwQ0XWmYh6+yYRuhV4GN4Zbxb500XajiSIO BzQYgG7jaG9RYtjLGPUajRHdBaQHLe4WkUDu1rToRm+AW5uPSaCg0gIvfVmDmr+bSAx3 Wsmu6eTK/0nXPt94V7OV+ODzefs7yfq50SmxKyKamRsQ5VGzqYjqll0Y7gTjkHV8dsFT NILzs8ZW0f7fqxOJfjekrIQhQBF7Zb7EfCug8xx7AKEPt6MccE3q4lXeY2F4A28y8nXg TQue+bT/AJlJrNaL9OVsQwSvCFcAiZ1rf92JkwHevEGUffmqY7MGqCgZUqR4APgEvPKP sPGw== 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=ULcFg+YQtMFDdmUsYGTe6VlNAYytQ0q+FNB9e1xihHc=; b=s6yWLYOnVpvaRvbLuKBuPBHHyV8Yj+8v7OOduLimVXHHgL8UWoOLZ8gdnKCrEZ6ETE dgRvgVwAZiM+ZyjckyH8Y9jHwdh8KIBpxVCpWIUIIRRbsV9RBjVxSELg53vUU5St7afd p1a5c1gFdy5zf8hdRlY2MEy/BK7lKzeYfa1224RbE1B8a3vMwMhP9FpRJk3YashYx4tO 2Sp/gwxLHJIaCR2Ig59KI3QDE6oE0qAns7i4M9RKeOlJvfyAg5lpWIJ6fCGs0IeAhsC1 IUDkVcUCm8qSZGfBQYsQYQbZVb4/inXcoYGO5TA1cutiUHyrhSl8CwrbdhzoLjkCAWk1 usNA== X-Gm-Message-State: AOAM532NLQB8zh5dHyLWUobHEGZrRkBnkkkU8+pjupYFbZtNcsLutIoj K3OiX/IODvxhGxFHsKcc+iyqKTdi5Kdbmw== X-Received: by 2002:a63:88c8:0:b0:3ab:1871:13b4 with SMTP id l191-20020a6388c8000000b003ab187113b4mr15034786pgd.85.1651034384548; Tue, 26 Apr 2022 21:39:44 -0700 (PDT) Received: from stoup.. (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id f16-20020aa78b10000000b0050a81508653sm16875632pfd.198.2022.04.26.21.39.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Apr 2022 21:39:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 1/6] accel/tcg: Assert mmu_idx in range before use in cputlb Date: Tue, 26 Apr 2022 21:39:37 -0700 Message-Id: <20220427043942.294654-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220427043942.294654-1-richard.henderson@linaro.org> References: <20220427043942.294654-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42c; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42c.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, 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: , Cc: Peter Maydell , =?utf-8?q?Alex_Benn=C3=A9e?= Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Coverity reports out-of-bound accesses within cputlb.c. This should be a false positive due to how the index is decoded from MemOpIdx. To be fair, nothing is checking the correct bounds during encoding either. Assert index in range before use, both to catch user errors and to pacify static analysis. Fixes: Coverity CID 1487120, 1487127, 1487170, 1487196, 1487215, 1487238 Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell Reviewed-by: Alex Bennée Message-Id: <20220401170813.318609-1-richard.henderson@linaro.org> --- accel/tcg/cputlb.c | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index dd45e0467b..f90f4312ea 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -1761,7 +1761,7 @@ static void *atomic_mmu_lookup(CPUArchState *env, target_ulong addr, MemOpIdx oi, int size, int prot, uintptr_t retaddr) { - size_t mmu_idx = get_mmuidx(oi); + uintptr_t mmu_idx = get_mmuidx(oi); MemOp mop = get_memop(oi); int a_bits = get_alignment_bits(mop); uintptr_t index; @@ -1769,6 +1769,8 @@ static void *atomic_mmu_lookup(CPUArchState *env, target_ulong addr, target_ulong tlb_addr; void *hostaddr; + tcg_debug_assert(mmu_idx < NB_MMU_MODES); + /* Adjust the given return address. */ retaddr -= GETPC_ADJ; @@ -1908,18 +1910,20 @@ load_helper(CPUArchState *env, target_ulong addr, MemOpIdx oi, uintptr_t retaddr, MemOp op, bool code_read, FullLoadHelper *full_load) { - uintptr_t mmu_idx = get_mmuidx(oi); - uintptr_t index = tlb_index(env, mmu_idx, addr); - CPUTLBEntry *entry = tlb_entry(env, mmu_idx, addr); - target_ulong tlb_addr = code_read ? entry->addr_code : entry->addr_read; const size_t tlb_off = code_read ? offsetof(CPUTLBEntry, addr_code) : offsetof(CPUTLBEntry, addr_read); const MMUAccessType access_type = code_read ? MMU_INST_FETCH : MMU_DATA_LOAD; - unsigned a_bits = get_alignment_bits(get_memop(oi)); + const unsigned a_bits = get_alignment_bits(get_memop(oi)); + const size_t size = memop_size(op); + uintptr_t mmu_idx = get_mmuidx(oi); + uintptr_t index; + CPUTLBEntry *entry; + target_ulong tlb_addr; void *haddr; uint64_t res; - size_t size = memop_size(op); + + tcg_debug_assert(mmu_idx < NB_MMU_MODES); /* Handle CPU specific unaligned behaviour */ if (addr & ((1 << a_bits) - 1)) { @@ -1927,6 +1931,10 @@ load_helper(CPUArchState *env, target_ulong addr, MemOpIdx oi, mmu_idx, retaddr); } + index = tlb_index(env, mmu_idx, addr); + entry = tlb_entry(env, mmu_idx, addr); + tlb_addr = code_read ? entry->addr_code : entry->addr_read; + /* If the TLB entry is for a different page, reload and try again. */ if (!tlb_hit(tlb_addr, addr)) { if (!victim_tlb_hit(env, mmu_idx, index, tlb_off, @@ -2310,14 +2318,16 @@ static inline void QEMU_ALWAYS_INLINE store_helper(CPUArchState *env, target_ulong addr, uint64_t val, MemOpIdx oi, uintptr_t retaddr, MemOp op) { - uintptr_t mmu_idx = get_mmuidx(oi); - uintptr_t index = tlb_index(env, mmu_idx, addr); - CPUTLBEntry *entry = tlb_entry(env, mmu_idx, addr); - target_ulong tlb_addr = tlb_addr_write(entry); const size_t tlb_off = offsetof(CPUTLBEntry, addr_write); - unsigned a_bits = get_alignment_bits(get_memop(oi)); + const unsigned a_bits = get_alignment_bits(get_memop(oi)); + const size_t size = memop_size(op); + uintptr_t mmu_idx = get_mmuidx(oi); + uintptr_t index; + CPUTLBEntry *entry; + target_ulong tlb_addr; void *haddr; - size_t size = memop_size(op); + + tcg_debug_assert(mmu_idx < NB_MMU_MODES); /* Handle CPU specific unaligned behaviour */ if (addr & ((1 << a_bits) - 1)) { @@ -2325,6 +2335,10 @@ store_helper(CPUArchState *env, target_ulong addr, uint64_t val, mmu_idx, retaddr); } + index = tlb_index(env, mmu_idx, addr); + entry = tlb_entry(env, mmu_idx, addr); + tlb_addr = tlb_addr_write(entry); + /* If the TLB entry is for a different page, reload and try again. */ if (!tlb_hit(tlb_addr, addr)) { if (!victim_tlb_hit(env, mmu_idx, index, tlb_off, From patchwork Wed Apr 27 04:39:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 566747 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6886:0:0:0:0 with SMTP id m6csp4181309map; Tue, 26 Apr 2022 21:41:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwB7UCC5TsJzj5iD4oAGmsZnqPSsdHPaVOMxOya9HjGrGonmosJnTluyoI+RUK2cRTpAMY/ X-Received: by 2002:a05:622a:293:b0:2f3:692e:f04 with SMTP id z19-20020a05622a029300b002f3692e0f04mr8891390qtw.191.1651034474021; Tue, 26 Apr 2022 21:41:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651034474; cv=none; d=google.com; s=arc-20160816; b=jdnzndMS/m0ZM58whMMgE+pAZ8C1Tz6UhzyrTnrTEqH8jlej3PfTFsZurEzN6oBqeM THfV5wpyZ93BCdMrX2qHjcc+wV2hcuV1cM4ZrxREI42rRwdERfAK00LHNgq1KnUpBK8B J79Q0vb7/81//+dHV/pBoSvKO9v/gyhZ60/MZCJCRzuwUg2vOJlH5qu3tTNMSkhAKdvB 63hcM8dFJJqOcZBTnxXcOf87wZU7bgkacaRm+17+m0XqippLzsuO+zIWGvpsjitRM8BU VrdGyxO40mD5OWGTIFaMn3uZEDeYIF0YlsylzoMv4i5He0RqPMY65FVyCd7nKOSEvf8c wtQg== 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:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=g1WB0RTRAo0nXyQSrlhIlewb+RTtC6M6f1BSHd8CFHI=; b=HkeYnuLqwkpmJHF3gkfHZlA1KJTkwBG1FtjpHB6pdnhgSYdaldz9QTCOGY2G7zf15j Jeye3W+KUwy0zYF3zKh5qYl6Txp4lKs3npADJeN62EOjQ4j9pwwLGm5fh31p0ckm0yHv bGJvDxeYzQE6jl4M9TPRwHXW7O1P6rkCVga6NcmIMkwnhcRAoSBa+wh6XT83lJQhVB54 sjrjE/pFFFkKuxttfjui6b4KYIKPo+DU1sRoBJOFv88uowuWM41ZeMl9i9A9vexx/Jqs eqsAQzzVDPUPBYSB6+WoDtbDticIIm+JBHhyIx6Cs9ibmLXNdTtQa7vUa9DZzfSsu3Q2 QZBw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=X9K3SldP; 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=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id ay32-20020a05620a17a000b0069c0fb8ee83si126385qkb.755.2022.04.26.21.41.13 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 26 Apr 2022 21:41:14 -0700 (PDT) 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=fail header.i=@linaro.org header.s=google header.b=X9K3SldP; 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=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:48396 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1njZUH-0001Nj-JC for patch@linaro.org; Wed, 27 Apr 2022 00:41:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50372) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1njZSx-0001IP-1C for qemu-devel@nongnu.org; Wed, 27 Apr 2022 00:39:51 -0400 Received: from mail-pg1-x52a.google.com ([2607:f8b0:4864:20::52a]:42522) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1njZSt-0007SJ-0R for qemu-devel@nongnu.org; Wed, 27 Apr 2022 00:39:49 -0400 Received: by mail-pg1-x52a.google.com with SMTP id bg9so532474pgb.9 for ; Tue, 26 Apr 2022 21:39:46 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=g1WB0RTRAo0nXyQSrlhIlewb+RTtC6M6f1BSHd8CFHI=; b=X9K3SldPigsK7ip1iVtWsq8GXBdpiwx9rXu8Es1/Ocyupu/vnU7PNQaJ3NTgTK0Vac voLioW8w7N0KWim6EwW97joVrPe9/kRV3YUgmqMYhcKkOQqHLFGt8tvgGqEo79K4cQSA 05Rwhde7aMxItXccFeETKeRTDZof0kJQ8y/7v7Jh5evORJe88NZoa9k4d++OBcR2hqo1 UH9Lp16BYrglmi88PvkLlln2325fdujVhXoAgFK8kq5d+GkiIAW5jhQ5GloaC6IMvpCE Ht9rDrbbGzGLND2dpynFfyvdXLbZaU5alht5Iqr4WNsw8XCFf1Fsm0YgQyzB0PzzgwEa Xehg== 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=g1WB0RTRAo0nXyQSrlhIlewb+RTtC6M6f1BSHd8CFHI=; b=gPtxJ00diR25cz7T7hbCFAmKD3/FkOfTtWc+9BmpolO7NTsUXwnO41MMWWSkA559UV IT7Hml33xPMOWsPfm3g3UQ56VsxRCnDhuKeecEDu1DUDcX0Tn6FohlL7Pxrgy780IFBs pM2msvjq49XWkoodqa7zTrLSXMIP97eAcArxURDT2E80UJujDOgcLqo0ntV8yTbgOxg0 +yoIKkxIuZmZib7bD28FWHU/TYvdwtJgTlhQKlEM7k0cIApv4girzZ1adqIptR7ABi17 aKJq1TPdl67o8f7q7NAIMSbNHZS7gyBsqmyZ77fgF4vjT2UAiVlzv4w6Sl4X/jvSAAyX J+EA== X-Gm-Message-State: AOAM532LQ1gBn4h5T/94L5G5yzBlbeyMEkzn4iCzYQSNdGTc79YVtrMb RPmaq5DDjSPEkQ00HdDx4DHiY3JIzkM11w== X-Received: by 2002:a65:6a4c:0:b0:39c:f169:b54a with SMTP id o12-20020a656a4c000000b0039cf169b54amr22626718pgu.384.1651034385363; Tue, 26 Apr 2022 21:39:45 -0700 (PDT) Received: from stoup.. (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id f16-20020aa78b10000000b0050a81508653sm16875632pfd.198.2022.04.26.21.39.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Apr 2022 21:39:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 2/6] target/s390x: Fix the accumulation of ccm in op_icm Date: Tue, 26 Apr 2022 21:39:38 -0700 Message-Id: <20220427043942.294654-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220427043942.294654-1-richard.henderson@linaro.org> References: <20220427043942.294654-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::52a; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52a.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, 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: , Cc: Thomas Huth , David Hildenbrand Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Coverity rightly reports that 0xff << pos can overflow. This would affect the ICMH instruction. Fixes: Coverity CID 1487161 Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Reviewed-by: Thomas Huth Message-Id: <20220401193659.332079-1-richard.henderson@linaro.org> --- target/s390x/tcg/translate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index ae70368966..8f092dab95 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -2622,7 +2622,7 @@ static DisasJumpType op_icm(DisasContext *s, DisasOps *o) tcg_gen_qemu_ld8u(tmp, o->in2, get_mem_index(s)); tcg_gen_addi_i64(o->in2, o->in2, 1); tcg_gen_deposit_i64(o->out, o->out, tmp, pos, 8); - ccm |= 0xff << pos; + ccm |= 0xffull << pos; } m3 = (m3 << 1) & 0xf; pos -= 8; From patchwork Wed Apr 27 04:39:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 566746 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6886:0:0:0:0 with SMTP id m6csp4181304map; Tue, 26 Apr 2022 21:41:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxF4QvALshHPa6uVj7lA0qUUPMRzV+atmFvDjw8t2F0iHCzkbEvi9Ljq7dnO2LTtqN1MY9z X-Received: by 2002:a0c:8151:0:b0:42c:2329:91a0 with SMTP id 75-20020a0c8151000000b0042c232991a0mr18887326qvc.107.1651034473672; Tue, 26 Apr 2022 21:41:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651034473; cv=none; d=google.com; s=arc-20160816; b=pfYAkZ2HxWvcqT4qhCn6I1lhcFv5NTDXJrBZRYc+Ufo+Dznu6VSOnkz9Gi9eph90s8 0EfWbBx3rTBZG7S4s8IcRZQUKG4KxIz3ZqQf81YdxqsL7uiCd92RkBiFNurVs4zttupM D89g87VLFKqiGYQax0ncr2hRPDX5NpzX2XD9sgu31lDwAsvsVcudfIqBrGJxBgNMDp7l nMFAjsJnseM06p5RMtQ7XpThqk1wZRY6KIEV/gLv/Bk4yLgk6Jg/mWgHpHTjBD2mVDgP EWv9qMRo+TLMVD0bS/M9zL+NZZJB5rR65K9uoLocJ3y2QBTY8vPXpZw/Ih7m+TyQiMeT 8rFA== 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:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=NRYF+Ra7iYksoyhTCV0mNo+OicYLHFeWp8iuqZeYmls=; b=bKFtCbmDTRmEGrcIDvHuQ5bffFOti/ueDdMMMuL4MNyTntGGsPQ0W7qQRhES6eQ2uw 3g5kE4G2kwhAH/gmPgE5mVMByLR2XzclirgCx8BskwN75DHhsHZ3CQ2iAbbWYq6sDVwT oQrOpPZQwkUpxC9I28ElnnDABlHN4l9wAOFe/UZeVj8clmKBjYh5wTmO847t3kzR/TZZ 8WhsOKXO1W9XjyGRQA4TUa9RpzOK1pGFcc0Io/yzv9ue+ocmGTukfjqGQPXuUe3LKJo8 T5A6DpxcE4RF0+0yG3WqCgmvEXIsD5bHoJHpGPiKRZjQaPG1VWSmlAmgLfaBJ7UEvESL piRw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=n7xxUqpF; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id im6-20020a056214246600b0044bdfe660f8si87745qvb.494.2022.04.26.21.41.13 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 26 Apr 2022 21:41:13 -0700 (PDT) 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=n7xxUqpF; 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 Received: from localhost ([::1]:48276 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1njZUH-0001Ip-5n for patch@linaro.org; Wed, 27 Apr 2022 00:41:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50376) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1njZSx-0001IR-1N for qemu-devel@nongnu.org; Wed, 27 Apr 2022 00:39:51 -0400 Received: from mail-pg1-x52f.google.com ([2607:f8b0:4864:20::52f]:34482) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1njZSt-0007SO-EX for qemu-devel@nongnu.org; Wed, 27 Apr 2022 00:39:49 -0400 Received: by mail-pg1-x52f.google.com with SMTP id z21so556261pgj.1 for ; Tue, 26 Apr 2022 21:39:47 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=NRYF+Ra7iYksoyhTCV0mNo+OicYLHFeWp8iuqZeYmls=; b=n7xxUqpFJ3DQeo68209tgAQSatM8OP+ppHOMQSb6Mfw4ZtQXuKWaOtRCtb5hCErxj0 J9rHwIUbrVPUNXOKuDD2VV+jJdboHdQ9D/mJ3NJENqnuu8Nk1FePYGbYmTESe/0Kp3sl 1K9wop/GoEW4AL4Q4q7KiQW9am6UZnnlg3IdLDnF2cUOoaVvXw7Va4v11nLAmlwdudM/ UgXDOxdxj66KJ2pVdbkGO/GfBtu2DlM0JrscJqwZXhnBtjcsnYbdD6RSt/JTQb7dmsTB DIY1gU1rsPU4Jfspg4EKLrlX4xIMSyOgHMCOdFkd55Hg6H0pLGM8Pgezc/MuJaW4DeIN NlAw== 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=NRYF+Ra7iYksoyhTCV0mNo+OicYLHFeWp8iuqZeYmls=; b=EhVQ5sXXMvQiH9E3ElNH2n8MenO4njZbnSG9DTmkfK6XcqJYR3u3hwuY1vqaJXwX82 52VaATcw4LFC0sW/fXwXUMyQY1mTSPG50a9BAXlK4jsHe3xaYkVBcV17jn2q1tBdnwn/ pxwgRuCrM1YtgkgD7AXIGvXrg4ndivP/rVNsIZVd0jSnVtwJUTI9us1W3FEQARNBMgoR VIXjR3DPg02X8Z7F5OUEPe8LFnA3cQ4QaYQe3LjPqxnOBA60mRYZLQJy19Byn4keImD2 H1q2TXzKJVfr595J+El4EpuHyqccyWakvTxDkCENhR89QkXe0FN++djq+hpvUM83xzu7 x4gg== X-Gm-Message-State: AOAM5320XFTt95DbXf/FXxSKtYNDqTd7pDXHBEHqxY4dauEhMJ901t3M /C+XPgHF+fIWD6SImpdlUp1Y/nrFClsjnQ== X-Received: by 2002:a65:6093:0:b0:373:9c75:19ec with SMTP id t19-20020a656093000000b003739c7519ecmr23146630pgu.539.1651034386201; Tue, 26 Apr 2022 21:39:46 -0700 (PDT) Received: from stoup.. (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id f16-20020aa78b10000000b0050a81508653sm16875632pfd.198.2022.04.26.21.39.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Apr 2022 21:39:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 3/6] target/i386: Suppress coverity warning on fsave/frstor Date: Tue, 26 Apr 2022 21:39:39 -0700 Message-Id: <20220427043942.294654-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220427043942.294654-1-richard.henderson@linaro.org> References: <20220427043942.294654-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::52f; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52f.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, 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: , Cc: Damien Hedde Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Coverity warns that 14 << data32 may overflow with respect to the target_ulong to which it is subsequently added. We know this wasn't true because data32 is in [1,2], but the suggested fix is perfectly fine. Fixes: Coverity CID 1487135, 1487256 Signed-off-by: Richard Henderson Reviewed-by: Damien Hedde Message-Id: <20220401184635.327423-1-richard.henderson@linaro.org> --- target/i386/tcg/fpu_helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/i386/tcg/fpu_helper.c b/target/i386/tcg/fpu_helper.c index ebf5e73df9..30bc44fcf8 100644 --- a/target/i386/tcg/fpu_helper.c +++ b/target/i386/tcg/fpu_helper.c @@ -2466,7 +2466,7 @@ static void do_fsave(CPUX86State *env, target_ulong ptr, int data32, do_fstenv(env, ptr, data32, retaddr); - ptr += (14 << data32); + ptr += (target_ulong)14 << data32; for (i = 0; i < 8; i++) { tmp = ST(i); do_fstt(env, tmp, ptr, retaddr); @@ -2488,7 +2488,7 @@ static void do_frstor(CPUX86State *env, target_ulong ptr, int data32, int i; do_fldenv(env, ptr, data32, retaddr); - ptr += (14 << data32); + ptr += (target_ulong)14 << data32; for (i = 0; i < 8; i++) { tmp = do_fldt(env, ptr, retaddr); From patchwork Wed Apr 27 04:39:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 566748 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6886:0:0:0:0 with SMTP id m6csp4181312map; Tue, 26 Apr 2022 21:41:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzUQl38hY5PgkCZJmZRqoncmjy2haje3gF922+2nkPVVY3vfdT40YWrYd1vU7a+Qbx+nQ0J X-Received: by 2002:a05:622a:1394:b0:2f3:4383:bf0 with SMTP id o20-20020a05622a139400b002f343830bf0mr17938671qtk.80.1651034474468; Tue, 26 Apr 2022 21:41:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651034474; cv=none; d=google.com; s=arc-20160816; b=tSI/0H1NH5vWMQ4FMmreRIlYCZXS3tKSzltQlfk1Ii2mo0/eRSOA2YYtcT5JSjQhLY hSuWNqqJpMGqhHIYUbzc1Wo8z693OOLAHAv6HYnDxkrHAmrWb0ToCjonxJ0c3zm4NiqD fy2RqKq7K+vvwD7mYTSRNhtA91IZm3L8SjpP/qRKaqEmYkXPmF8OqCtrQdndHKZrI+a6 wAE6ZSFQcx3E6rf8i9jQ/gz0Qw4v9MFtqyg/M/O3++SoLAh8JL8eKWYJyghxLmEJvxh9 +RlhP9eO95cRpBRqE52bLhjL/0GaqoG2UzMcv3nUlV/DI0Mc+jtx+hgCADSbkWh2w8Xb qTMg== 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:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=mvRig1nFgvxtwsEdF8GyeeEoyjVTBGh15NALcLN7Zm0=; b=kgPcCJTljUFA+ZSGmIr4tkp2rwFfRPaQIvImdLBp/7baiPrUUktZBaPpVC6onN19n+ 5sY6xEqdMITUnrcNGtqw7/v+ENMNm+AcC8wqQSiPqsWQa2wW3+WPcEZ5jymWb1pcftoX 6h59A9Jeaw035dVAWFeu6/68Oe6/VdKDbhYUfml9YHKpavxXlUkTQYuq2BVKmnv6hYf7 azJ0Q7jYT4dKaFNJTODOu8IYjGoHN+nmTiHYK/sDCQu6C0FziXLVsrCsmUphzAzdAHS/ 92XpganzZqN++XpIzMhpa3t6P9NGs6FdOwCs8kyHU7wKxH/VR4P65dOoPfswlIte4cK/ VNJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="Yu7d/kXR"; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d8-20020ac85d88000000b002e2161f2446si107612qtx.172.2022.04.26.21.41.14 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 26 Apr 2022 21:41:14 -0700 (PDT) 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="Yu7d/kXR"; 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 Received: from localhost ([::1]:48348 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1njZUI-0001Li-2w for patch@linaro.org; Wed, 27 Apr 2022 00:41:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50374) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1njZSx-0001IQ-1L for qemu-devel@nongnu.org; Wed, 27 Apr 2022 00:39:51 -0400 Received: from mail-pg1-x52b.google.com ([2607:f8b0:4864:20::52b]:35539) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1njZSu-0007SU-Sb for qemu-devel@nongnu.org; Wed, 27 Apr 2022 00:39:50 -0400 Received: by mail-pg1-x52b.google.com with SMTP id r83so554126pgr.2 for ; Tue, 26 Apr 2022 21:39:48 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=mvRig1nFgvxtwsEdF8GyeeEoyjVTBGh15NALcLN7Zm0=; b=Yu7d/kXROEeLSqJaaAVounzKK/oo825RWn0/DAOqWyeI+jBIlBjRenjbp+4DwsMYP8 8K4xK0Z/x/fXjr5yItF+8M9/KDdhMlvJ2cKxK1qdustLMo1fQWJhsoQH/4uhrHN9a31N NUaL2HoA/dnQSY4het0P735RJLj7zRm1uqfJJUCBqCM0gO9PhWDC3O/ZzSqWbcLYWDpk QcVfpwE1HxMsarEjBCePRumXlyRnqea3nSpS1uYNMxuKnt2MTubxVsBg3Cii8Rx2MVNf q50Pqi0fyqIfHAfhd9iQ0ukZK2BXA4HmiPm16vnqVHdQFJAfKrNNQO8kes4Yi5ffXM7c bl7A== 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=mvRig1nFgvxtwsEdF8GyeeEoyjVTBGh15NALcLN7Zm0=; b=tlZpzr40zxAXVlMWuaYpv9vU+tEb1XZ9sAftOBEOYyqUjgFJARCZSTuNZeTJHLGJOw ZbkgFDe2+ZWZgFUKdZcZbosISWXrAVxUwUemlwRa2XhYFBuH+wnMIpYjrnd9Gng8kPwb TwNVPLeEVcfOAV4JVKDi7JZkCEdQFtxNG5kS/94toVaB6JDUVZuG3gDSrCNyVgAxfIvb liJ/4279zDhruIyPFOQcAIDm6k30Krw8D6ngrdhNCXuzYeeK90ODZYo1+pSCCBCvyh+d LXQqFvXBEmZKggXaM3RavPcBEtKuj55wxYyiLkKxlP1ZRUJDxlj4WslrwfvcEDN1PhEZ C2Bw== X-Gm-Message-State: AOAM532ynFJOqek1HgBTIfMwaibTj8weJEMgz1Zc5hS975RN0WwQoQUR 55y0keVmUIoW+XS0PAk/9X5oJWcGEm+RiA== X-Received: by 2002:a63:5d60:0:b0:3a9:ef9f:eac2 with SMTP id o32-20020a635d60000000b003a9ef9feac2mr22280086pgm.553.1651034387372; Tue, 26 Apr 2022 21:39:47 -0700 (PDT) Received: from stoup.. (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id f16-20020aa78b10000000b0050a81508653sm16875632pfd.198.2022.04.26.21.39.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Apr 2022 21:39:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 4/6] softfloat: Fix declaration of partsN_compare Date: Tue, 26 Apr 2022 21:39:40 -0700 Message-Id: <20220427043942.294654-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220427043942.294654-1-richard.henderson@linaro.org> References: <20220427043942.294654-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::52b; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52b.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, 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: , Cc: Peter Maydell Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" The declaration used 'int', while the definition used 'FloatRelation'. This should have resulted in a compiler error, but mysteriously didn't. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell Message-Id: <20220401132240.79730-2-richard.henderson@linaro.org> --- fpu/softfloat.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index 5e2cf20448..e7d7ad56bc 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -874,10 +874,10 @@ static FloatParts128 *parts128_minmax(FloatParts128 *a, FloatParts128 *b, #define parts_minmax(A, B, S, F) \ PARTS_GENERIC_64_128(minmax, A)(A, B, S, F) -static int parts64_compare(FloatParts64 *a, FloatParts64 *b, - float_status *s, bool q); -static int parts128_compare(FloatParts128 *a, FloatParts128 *b, - float_status *s, bool q); +static FloatRelation parts64_compare(FloatParts64 *a, FloatParts64 *b, + float_status *s, bool q); +static FloatRelation parts128_compare(FloatParts128 *a, FloatParts128 *b, + float_status *s, bool q); #define parts_compare(A, B, S, Q) \ PARTS_GENERIC_64_128(compare, A)(A, B, S, Q) From patchwork Wed Apr 27 04:39:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 566751 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6886:0:0:0:0 with SMTP id m6csp4183486map; Tue, 26 Apr 2022 21:46:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxhKT8ud/V4iZ/7Gj3evirfFvWxLNhzXvbLM5fNKXegLGSqtp6OC6Zm4nlOlnFBYvzm55L/ X-Received: by 2002:a37:e106:0:b0:69f:81cd:5f5b with SMTP id c6-20020a37e106000000b0069f81cd5f5bmr2967926qkm.164.1651034777945; Tue, 26 Apr 2022 21:46:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651034777; cv=none; d=google.com; s=arc-20160816; b=If3+rFmPEfmnBtzFwsSOnwOLYvo3FhRSWNmcN0OuSF1CPqPBkBNqB4J++cf++DHA0m TQPFSb7/u2cmFXNxfxdeeWz6Uql/aTKysMEGbjdesPKeNC970fIH1XSqSWqsGm083cLj cHLD/GjCUXC2ANE+W/HGi+Z4fHulec/p4ZAvTf2FHYvF3d0jr8gacqEYz/d+vHZ58kZ3 WGxljKq2A3nhci1tqWqRfi+zdM2APZx96KR83jIQRgWTdS7qBssnIaVB7LVh3mtUJGLc Brg6iTFPNKGWOj1Z5ocM0BmpyPLDjAnpixsQzUhwHt0LsMDKB1PCp2z8yryug1wTCg4X OG9w== 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:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=1o9si1s5HiM2x4iDuDzWhxWXoWFSwko9HR+xkw5Bkro=; b=Hpt3jkTC5WglXQ5+FDgv9Plxk/4PC3yucTJy5v6VAffTqm5Qp18z/EGH5GOys71kDB YybOuEStGXKS1MDvdXK0ER+zkTFiy9YP/xaudIbYFlMfhlZKmoJ82o7p0ZmmNIy4hzHA HM3etIl7bnC5ZRYtQcuxqUlrspJWwAmUhwCxQI7F+fydvB5OnsMT2pItrKB3tfwVDHrq ZLuIq+5Nt6u6XwN0Zg4pSRaC5+Dgv+1onY8shOtIS6FNuxwX8yFjHEoAIG3zCR74fmnx sRlooPh1r5OgU/u3njP67SaWgNfhU3ZpeosIpOKpukEANst9VODk0bIkq89C5QDzhg0x vOBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=RqU2SZ3M; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id g11-20020ac87d0b000000b002f1f559e978si100339qtb.421.2022.04.26.21.46.17 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 26 Apr 2022 21:46:17 -0700 (PDT) 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=RqU2SZ3M; 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 Received: from localhost ([::1]:34226 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1njZZB-0002Qh-Ic for patch@linaro.org; Wed, 27 Apr 2022 00:46:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50398) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1njZSy-0001Jd-C2 for qemu-devel@nongnu.org; Wed, 27 Apr 2022 00:39:52 -0400 Received: from mail-pf1-x42a.google.com ([2607:f8b0:4864:20::42a]:40737) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1njZSw-0007Sc-PN for qemu-devel@nongnu.org; Wed, 27 Apr 2022 00:39:52 -0400 Received: by mail-pf1-x42a.google.com with SMTP id i24so599453pfa.7 for ; Tue, 26 Apr 2022 21:39:49 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=1o9si1s5HiM2x4iDuDzWhxWXoWFSwko9HR+xkw5Bkro=; b=RqU2SZ3MnBRRWZG0WzVeLaiPs8q8KL7AWEqyvpVJDxs3XUvO78jAP4+cQsuqaeXQi6 OHODAs9jjkfCc62gko5Mdt0eVN0Z4pxqGOHddZXEUTw4sg5ms5+NRa8jyld9i8JRQA5x 5Dlb+upSCfIk2k6XiW0aUGcUYXHJZ/5gz5cQRHodZjmgHBvQeW41n/YVCahP1Wz9Zw41 3DU89XIqh2TP0qiXbbStF6V/lIQZWyyMyLy+TSwVUWXgqHiiuLIp4mLW8Hxh9UykdsHV hjt099KZV//S0GFGvBGxcLuIW0SWg1tIkehJlagTgbda83lmwIqBDn7URyV2zrh7gjze PHHw== 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=1o9si1s5HiM2x4iDuDzWhxWXoWFSwko9HR+xkw5Bkro=; b=KCwhXos6Nunoz23OaW7lSifI1HbgfhHUeKb3mWZM7FhaDIYD+Xp3C2eiTCGnAe3cKc +mipSgbj3dYGKvN/RewVTQBwOp5FJK6Xf0YYbrSPCkRQT0VKJb3Kyj1scP0ORV5K04pa Rnwx3R4eg9PpPLEPbBj68u5TaOWS29iOkKyaF4VFWJOPpmPqQtsxQBzV/BPm6dhwIhQb 0BqFANmlMj4OKb82L77gFx5qcx3THgGUeYe1nlwVo8FBu3XB14l4hneFI7Xzof8FaSBN L2W9YyN3av+L5apIIz6OCRTt0kIHqFTTjAiL1Eyrq06O+BSieG1Uda2itcPhh5ARTPPk OV9A== X-Gm-Message-State: AOAM530nGFg4NLNjCu0yOdbfo14Tc6HKw1Pslm6gQYndAr6By/s0i5eY 3A4oOQJ6Wyo6jIVLRqRRRH1unDxFxOuzqg== X-Received: by 2002:a05:6a00:1a8f:b0:50a:8c2d:2edf with SMTP id e15-20020a056a001a8f00b0050a8c2d2edfmr27666752pfv.82.1651034388360; Tue, 26 Apr 2022 21:39:48 -0700 (PDT) Received: from stoup.. (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id f16-20020aa78b10000000b0050a81508653sm16875632pfd.198.2022.04.26.21.39.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Apr 2022 21:39:47 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 5/6] softfloat: Use FloatRelation within partsN_compare Date: Tue, 26 Apr 2022 21:39:41 -0700 Message-Id: <20220427043942.294654-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220427043942.294654-1-richard.henderson@linaro.org> References: <20220427043942.294654-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42a; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42a.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, 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: , Cc: Peter Maydell Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" As the return type is FloatRelation, it's clearer to use the type for 'cmp' within the function. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell Message-Id: <20220401132240.79730-3-richard.henderson@linaro.org> --- fpu/softfloat-parts.c.inc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/fpu/softfloat-parts.c.inc b/fpu/softfloat-parts.c.inc index db3e1f393d..bbeadaa189 100644 --- a/fpu/softfloat-parts.c.inc +++ b/fpu/softfloat-parts.c.inc @@ -1327,16 +1327,19 @@ static FloatRelation partsN(compare)(FloatPartsN *a, FloatPartsN *b, float_status *s, bool is_quiet) { int ab_mask = float_cmask(a->cls) | float_cmask(b->cls); - int cmp; if (likely(ab_mask == float_cmask_normal)) { + FloatRelation cmp; + if (a->sign != b->sign) { goto a_sign; } - if (a->exp != b->exp) { - cmp = a->exp < b->exp ? -1 : 1; - } else { + if (a->exp == b->exp) { cmp = frac_cmp(a, b); + } else if (a->exp < b->exp) { + cmp = float_relation_less; + } else { + cmp = float_relation_greater; } if (a->sign) { cmp = -cmp; From patchwork Wed Apr 27 04:39:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 566749 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6886:0:0:0:0 with SMTP id m6csp4182347map; Tue, 26 Apr 2022 21:43:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwzc6hawdSSuoVsxBh6wZuAork0e7csPMLCPD2J8R2lH0Gh1FN3Y9bQdHGPSvfePJW8UaGW X-Received: by 2002:ac8:7dcc:0:b0:2f2:5c6:91db with SMTP id c12-20020ac87dcc000000b002f205c691dbmr18180983qte.240.1651034628473; Tue, 26 Apr 2022 21:43:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651034628; cv=none; d=google.com; s=arc-20160816; b=VWd7f9Mq0/oAfz3A2phbDn6b8pKJsWdZMP1V28MWnECVc5gyDf4rnBIO1MLx/Q4PzA nr0Y8vtBMBl3wL0RaarHJIYtFMVvhfsah7m9TiQJiJl7d98PGcwKA9+IJKGt9UaHICze jlL0gu87+XBjISak5EFCtM05wVwvEfEDoI1A1bzr6EzNt+8s9J1fTFY+/mD3vnPSajgo XlinjgRaW4dVv4Q/suQUfypJ1pezA7ldCZWUn9f48dwUxAWpCc0wvqgjy6XwXAjoPlC0 ZZOuMJ+7ehEiTzdrRJPpBmU6vRtAV8ivHWguyjvWcwZ98EL7UZYdzjppeU2Q3lYKB3xo X9sg== 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:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=Vj2pfmJyu+VBd81eZurWJYtZCi/tXlPkPdE7lYV8+vU=; b=xghb5t9ws5Tjc+OFaa90dNPIWiOp1MJsGZhee0888pYYqqVQt9XGAV3yXPcX3dQcRG njRI/lzl4Ru4omrsqSP/o8Xj+tFUYsA0iz5YUhKpLdkKSFr1/0BxHEatKiWfkX22rR+/ 71I9wqKgZvG8xL4TcQzuhzB7pfRUc5t8ElmyoVeKdBWxQ27ZrLotFeUhSyrPXyDH5F2J XW/1tW1mIlsbo6RNMBu39sK59hdnqwJ+IsboZ5VA6Z2TA3oNHE60rTWoc4ndJvsw2ZST zNnv7gytshlNvV/nwvZmYT07wTzmkltwwirf4kH+t5nZrHh1JGxqBJkhVroGRytxWQ96 T5IQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=jf5CGVy7; 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id u14-20020a37ab0e000000b0069f70d0cad3si146012qke.36.2022.04.26.21.43.48 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 26 Apr 2022 21:43:48 -0700 (PDT) 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=jf5CGVy7; 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 Received: from localhost ([::1]:56868 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1njZWm-00076y-2C for patch@linaro.org; Wed, 27 Apr 2022 00:43:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50396) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1njZSy-0001JS-8e for qemu-devel@nongnu.org; Wed, 27 Apr 2022 00:39:52 -0400 Received: from mail-pf1-x429.google.com ([2607:f8b0:4864:20::429]:42907) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1njZSw-0007Ss-Pp for qemu-devel@nongnu.org; Wed, 27 Apr 2022 00:39:51 -0400 Received: by mail-pf1-x429.google.com with SMTP id j17so591692pfi.9 for ; Tue, 26 Apr 2022 21:39:50 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=Vj2pfmJyu+VBd81eZurWJYtZCi/tXlPkPdE7lYV8+vU=; b=jf5CGVy71OVXkDaJBLz3nPkutTSMBLxKgKHhW5khl8DgYuGbP2iLlhWLuU0tMgmdj7 cca0rz2RqMrxm7Nxt50TqBtpgWoKTLGkkuEfUanzVLeZcTUX6zSB8R9Ghi3C2Oxcnq/B o2R3I8AikVKxMWtjgYNFriny0lEJYWxiGccv1DLtdXYUdYVXmShCI+1G6Bxji9C62ROF 8tj5kql9EgmoHui9QyfbFj36fYmMdXxRQqgQehDCKmf35zdSqKHP6yGZ4MNWHgQnScF7 MmiznmER7BohnUWbnjXGjw6VJsrAV9U/BgSebw0M4bIvRm4GUgWq6BzNKIfBqnZvAi7/ 9MZg== 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=Vj2pfmJyu+VBd81eZurWJYtZCi/tXlPkPdE7lYV8+vU=; b=7vituUxd+uVRBfq19guCGE7QkD81Dq3afd7iJIRLA5hnN/P/PRBlIXncfKutPeY84A WvlwN+zM5wBIZqJrBeLDqAAuD3Jo4RDL3X0UdbBQGhC2zQGL2+iZCca+r20FVWlA0Bfg IPw8VQ1iV26NMV6aYjaD6etjfjOyVTYq+14EccFgdl0PM098T65qU3WusyQxYoo1HggM dor2x9NGsKQAMjmrXEXJPaj40YttN5lFKzSH4DUMLfhFz4WwIQsNTehLgocsmyDqPWsM afo1gFIR0vbg5j+4Xk0MzcWWVChxZ5D1pyIuOELYAG6GcLiGRGdZt/YIQKvaVv6y356H yH2A== X-Gm-Message-State: AOAM5312GgePt3A7yuPKUUi2meEBI5JI32y+HgCdIl8IN1tF8UqH2BNW 4TaLRo4mgbRkKQfhe72SH71kW8xTgimtHg== X-Received: by 2002:a63:4e62:0:b0:398:cb40:19b0 with SMTP id o34-20020a634e62000000b00398cb4019b0mr22679402pgl.445.1651034389269; Tue, 26 Apr 2022 21:39:49 -0700 (PDT) Received: from stoup.. (174-21-142-130.tukw.qwest.net. [174.21.142.130]) by smtp.gmail.com with ESMTPSA id f16-20020aa78b10000000b0050a81508653sm16875632pfd.198.2022.04.26.21.39.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Apr 2022 21:39:48 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 6/6] softfloat: Use FloatRelation for fracN_cmp Date: Tue, 26 Apr 2022 21:39:42 -0700 Message-Id: <20220427043942.294654-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220427043942.294654-1-richard.henderson@linaro.org> References: <20220427043942.294654-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::429; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x429.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, 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: , Cc: Peter Maydell Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Since the caller, partsN_compare, is now exclusively using FloatRelation, it's clearer to use it here too. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell Message-Id: <20220401132240.79730-4-richard.henderson@linaro.org> --- fpu/softfloat.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/fpu/softfloat.c b/fpu/softfloat.c index e7d7ad56bc..4a871ef2a1 100644 --- a/fpu/softfloat.c +++ b/fpu/softfloat.c @@ -957,21 +957,23 @@ static void frac128_allones(FloatParts128 *a) #define frac_allones(A) FRAC_GENERIC_64_128(allones, A)(A) -static int frac64_cmp(FloatParts64 *a, FloatParts64 *b) +static FloatRelation frac64_cmp(FloatParts64 *a, FloatParts64 *b) { - return a->frac == b->frac ? 0 : a->frac < b->frac ? -1 : 1; + return (a->frac == b->frac ? float_relation_equal + : a->frac < b->frac ? float_relation_less + : float_relation_greater); } -static int frac128_cmp(FloatParts128 *a, FloatParts128 *b) +static FloatRelation frac128_cmp(FloatParts128 *a, FloatParts128 *b) { uint64_t ta = a->frac_hi, tb = b->frac_hi; if (ta == tb) { ta = a->frac_lo, tb = b->frac_lo; if (ta == tb) { - return 0; + return float_relation_equal; } } - return ta < tb ? -1 : 1; + return ta < tb ? float_relation_less : float_relation_greater; } #define frac_cmp(A, B) FRAC_GENERIC_64_128(cmp, A)(A, B)