From patchwork Thu Feb 21 19:02:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 158957 Delivered-To: patch@linaro.org Received: by 2002:a02:48:0:0:0:0:0 with SMTP id 69csp860179jaa; Thu, 21 Feb 2019 11:25:48 -0800 (PST) X-Google-Smtp-Source: AHgI3Ia4LOaPooCQ2LQRRr/hRSIO54jLP1A/zBc5sN0ku1hQSB+pk9Mh+Xv+03rfgsjjGv6s0dZH X-Received: by 2002:a5b:64d:: with SMTP id o13mr122054ybq.95.1550777148440; Thu, 21 Feb 2019 11:25:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550777148; cv=none; d=google.com; s=arc-20160816; b=OFEIhleTKwQBmd++7gTC9ocW7OUkyVpalH3Ygj4xOWPiuT6koTWItJZNf3lw/ED5B+ fkja+WceVL6r+KVC/vjaqZUPPeZp8N6R57vCk7YHnCwECrgrrfclgsBZtqEJhHMwTXtO ZGnQOZ4V/k85CKUns6tgR7wd5RlEKLhCni/uSZaZLfZoP8iFF8NXjSm0BB3IDDW4e4Ja GfNxRO0xsKQat20wUzzcwt97BWskCkp21qQU0I1oZe/bPXf9KZiehi01hlm3Uevzwpou po5Fp6N5ovgOP9xqajIAMpipEiDCZjw4Ls8Qd2HAQc8bJuPTN6ER90KUdDCb6vrYbslk ++4g== 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:references:in-reply-to :message-id:date:to:from:dkim-signature; bh=zd2QH1J0icuK5AQtavaBesEnix+3biwXrTatVCvoDbs=; b=aAGoZCpQ5dDBi3y3C3F+xCV/F8IGHCxkda2GhoHqT+FU0KoH39Hhz5nsJTRB6gWibU 3VEGJ+7Zk2Vu8NFlyzNKgBeewJfFsx8mum8Q6jqoDYPHdiFX0KG2b2YR/fbNImMjqrUr FJ3Hz3rFGWGTyOl76E1g7pqCErpwNOEn6K2hc6eeGXu2/MtBqbrfkGYV0TMldZmwimkV ym48DRwI5whKDnfZwYdUq9bwp/tslhJBmpYwtbciry/saANPnmMqhZmQou2vP6D3tAoZ DQC3uYVS9bsjj5jzgCoJKuyUrbFCwdqOthqz+eE7a5c8d8SMso0uqiBmq5smeRjnY/Pb QCFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b="zTd/Y3lT"; 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 i124si13224355ybb.90.2019.02.21.11.25.48 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 21 Feb 2019 11:25:48 -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=fail header.i=@linaro.org header.s=google header.b="zTd/Y3lT"; 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 ([127.0.0.1]:37308 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gwtye-0008QM-1B for patch@linaro.org; Thu, 21 Feb 2019 14:25:48 -0500 Received: from eggs.gnu.org ([209.51.188.92]:53414) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gwtcA-0004fT-IX for qemu-devel@nongnu.org; Thu, 21 Feb 2019 14:02:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gwtc9-0001xZ-PD for qemu-devel@nongnu.org; Thu, 21 Feb 2019 14:02:34 -0500 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]:43799) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gwtc9-0001xB-IZ for qemu-devel@nongnu.org; Thu, 21 Feb 2019 14:02:33 -0500 Received: by mail-pl1-x631.google.com with SMTP id m10so4943518plt.10 for ; Thu, 21 Feb 2019 11:02:33 -0800 (PST) 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; bh=zd2QH1J0icuK5AQtavaBesEnix+3biwXrTatVCvoDbs=; b=zTd/Y3lTmEEDZkb/lhLZ2eg/7jlhAiF3pfAR72DnyxQvJsqSfA2FFU+pE6EXGesmj1 xzxF17C1mclZpk4Sen1qKaxmRLrdxTsF4ujJ7XHo8Im88ivKKnWdzZ8nz3eL/Jw7+gGV 9mDAh1aOmpCWNxxAdi89sjFwrq5uBSoipVw6GBXIGaeUxMiRtDM1ppwRYJgIf7kCbmxL 5gkBLPiowm0BD3cQKTLyURHaCCfgzLe8xb9S0FvCDCx1yKBV27I+q8kRfemTamPmsYAJ 67FRLHgYXzOjoKK0F+QYs2I4GTVlj6WdaPbGJlAJM6LxMxbsAdnDp1erYKFD/plfb7JA PDVQ== 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:in-reply-to :references; bh=zd2QH1J0icuK5AQtavaBesEnix+3biwXrTatVCvoDbs=; b=hu5crpoR0yF4Uqif+FpekHuIgGSKJlMfsbgiYnR0JwhmvPjZ+nE6GNHHE9ex1XBpIb wAGqNpf+P9J9XMNghiOYQ/GnV7mNL99X4AgYcW1WlQUzHSBzbJ85k/KIXcovWLGFkpie c6zkYoEwXw0UjKHHVWbC0VZ9xRfsywP9r5mWWUcM+SYGsAQNPj+kDpHIJ/EX075pf673 EXptNJ9Iayzo9tIEFWghjU34LpLuGL802XvXacfjnjSbmFOhOByGHWgB+z+R/vjo6dqC vH1TNUElXLJtKHBFGqY+C2JpL4CuVZ9ZFRslIAKHicxAIopKiXKK+ediZEfm1p+srjjd 0xdA== X-Gm-Message-State: AHQUAuaQV9ShzX0s4m1tu9qaZvCITZ+ONlX+19bSMzQqMy2ruOOjra68 ottCrBdImTm6Orb3HziOgr+KuWXcCD4= X-Received: by 2002:a17:902:29aa:: with SMTP id h39mr67053plb.6.1550775752185; Thu, 21 Feb 2019 11:02:32 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-188-82.tukw.qwest.net. [97.113.188.82]) by smtp.gmail.com with ESMTPSA id v1sm19300675pff.9.2019.02.21.11.02.31 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 21 Feb 2019 11:02:31 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Thu, 21 Feb 2019 11:02:28 -0800 Message-Id: <20190221190229.22599-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190221190229.22599-1-richard.henderson@linaro.org> References: <20190221190229.22599-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::631 Subject: [Qemu-devel] [PULL 1/2] tcg: Remove TODO file 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 Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" The last update to this file was 9 years ago. In the meantime, 4 of the 6 ideas have actually been completed. The lat two do not actually make sense anymore. Suggested-by: Thomas Huth Signed-off-by: Richard Henderson --- tcg/TODO | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 tcg/TODO -- 2.17.2 diff --git a/tcg/TODO b/tcg/TODO deleted file mode 100644 index 074784778e..0000000000 --- a/tcg/TODO +++ /dev/null @@ -1,14 +0,0 @@ -- Add new instructions such as: clz, ctz, popcnt. - -- See if it is worth exporting mul2, mulu2, div2, divu2. - -- Support of globals saved in fixed registers between TBs. - -Ideas: - -- Move the slow part of the qemu_ld/st ops after the end of the TB. - -- Change exception syntax to get closer to QOP system (exception - parameters given with a specific instruction). - -- Add float and vector support. From patchwork Thu Feb 21 19:02:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 158953 Delivered-To: patch@linaro.org Received: by 2002:a02:48:0:0:0:0:0 with SMTP id 69csp854381jaa; Thu, 21 Feb 2019 11:19:33 -0800 (PST) X-Google-Smtp-Source: AHgI3IY3jFXvr6QFJoXV5DemJNpsU8QC682T4uqJGiY2p+vG9QBaMkdrhpOJsOPm8AF186l4pN6Y X-Received: by 2002:a5b:34e:: with SMTP id q14mr73371ybp.401.1550776773131; Thu, 21 Feb 2019 11:19:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550776773; cv=none; d=google.com; s=arc-20160816; b=Bkgi2lHda+PLVzY5kx811adPaHORz/ZCsd54N69H2XFj/3kl/fnnOMO6MyTiKcHd9X S9WfE2kChMoliE2yytNonc0upVV4O9hKp1bXYHqBgtTg6NICJo/2UKU5I2C2ktvFeE26 NJwjuB2AzuG+gQ4NqHL7DlV1Skp4DZKFJXGjkd3EFiAfK2lx7wNMYcaHOEBeDj7++8VZ 1I8yGksg49pJ2J414oLLVKCeTheCZWgnjYa9oYt/NqZDzDn52GBQ6Q9cZ6cItPvvgP9+ fmCiOwr8GNyZfClP/l/sPfc7NRUAO8uRClSS+WMVnyniOmyn+5ahV598YYc2+xmQSM3h Uu1Q== 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:references:in-reply-to :message-id:date:to:from:dkim-signature; bh=j++1cjJYjaYiU5QQ1AcrS0RVXtuDfk0nBs2HoastqKg=; b=ostDjHBtzNEkmlWKnVW++LPXIbufFYeiIyhJlV/hITM2cXVj915pdxYXvQ9b2tH30m RPg4bNJoqyfrEKi+eagIT9F1gNdKCLzXmEBGwetjmDEBL2pEGjUGP4vQ1uOOLIHoktMW sJTauTd4pH9DssPo4KEmMOSRVeQWpaCucWapVI6KtGZzf9i7AONEAxZFg/2nUB0+8Zch t9SbEaqZMXpROtX/GCOoi3Qt/uOThAL2oV722owvJvASH5i+9q/L3thUOfq7GEgrwVbw iROzktq4kSku9HrVLg3L/W7ebwZzg+rSDb0WS98Gp0RXON0D9y2ba4RzmXL8k/pliIWE Bo/w== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=OaSEsmId; 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 u76si9380338ywu.265.2019.02.21.11.19.33 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 21 Feb 2019 11:19:33 -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=fail header.i=@linaro.org header.s=google header.b=OaSEsmId; 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 ([127.0.0.1]:37171 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gwtsa-0001fK-KF for patch@linaro.org; Thu, 21 Feb 2019 14:19:32 -0500 Received: from eggs.gnu.org ([209.51.188.92]:53430) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gwtcB-0004gb-NA for qemu-devel@nongnu.org; Thu, 21 Feb 2019 14:02:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gwtcA-0001yE-TY for qemu-devel@nongnu.org; Thu, 21 Feb 2019 14:02:35 -0500 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]:35287) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gwtcA-0001xq-NM for qemu-devel@nongnu.org; Thu, 21 Feb 2019 14:02:34 -0500 Received: by mail-pl1-x635.google.com with SMTP id p19so3387196plo.2 for ; Thu, 21 Feb 2019 11:02:34 -0800 (PST) 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; bh=j++1cjJYjaYiU5QQ1AcrS0RVXtuDfk0nBs2HoastqKg=; b=OaSEsmIdQODi+g4kZhOchQMNnvwFDaXRM+G+0o9iEXd8Jov+3PKCMnd2BEmpvflYc7 SkRa0PlcfMI46U0ZwjZKbh76xXjMyQqqqufyPY3P7wHvEE0y0pXbNuadt6OAbcXWoWfC OE1m+8qLCNcjy1t9GRyfzlwv7uWv7xFJoGVMA/vc9hIkKn1SsIStiiEYdN68EofOVFyG aU7L9Py/ZJ7wlSjItHd+dSjAIPOUiFlivPf3lH1c33R/Gov/xylGlupm2Ih8pOatnRTc 9KTV4Vwvvhet6DkJ6rGIUd5JHVhPmzSLkrFwYvEKTcN8C4H7KkJ3HZWq7Lmd0HHyjrmX mXtw== 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:in-reply-to :references; bh=j++1cjJYjaYiU5QQ1AcrS0RVXtuDfk0nBs2HoastqKg=; b=hkStmTzpGRQBuZfjJlb3nXE0hs8UmC4uUwK6oaF3Ri1acDjv/w+F30EX2KTmSpFhHd +z+18BN1l19HCy3BUik/xIbJati9wBGTc0NlhRaGfEi8/vv25K7XE6ZkHGrtYIpIfAv3 Knco/Oe/4OxXlL5PYyAl2wg+WZ+eVH/0QKGjIbriu8339g9hZW0N83LNZCFbj7MNb4Ff 3/IMwXJA7V7rQ3tEQNEtVeM/koRd+scPvkjNjvIMcx72Y3+koTfTo/GDAJyOctxo8k6u 3VtyaYjJ6T89zkrNGRRUbYU7VHLMvk4spZoLUcr9vMwU2s10Ob07c3OMEzbDA+XWakoF Fjqw== X-Gm-Message-State: AHQUAua9Es8uaMLWSpFgkpD1tFGyysviEunZ4pjSyMXp8efak6PM0eBs ID3osaYutW2hLSeNGt4qtB4Zkc9O4Iw= X-Received: by 2002:a17:902:46a4:: with SMTP id p33mr69332pld.48.1550775753361; Thu, 21 Feb 2019 11:02:33 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-188-82.tukw.qwest.net. [97.113.188.82]) by smtp.gmail.com with ESMTPSA id v1sm19300675pff.9.2019.02.21.11.02.32 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 21 Feb 2019 11:02:32 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Thu, 21 Feb 2019 11:02:29 -0800 Message-Id: <20190221190229.22599-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190221190229.22599-1-richard.henderson@linaro.org> References: <20190221190229.22599-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::635 Subject: [Qemu-devel] [PULL 2/2] include/exec/helper-head.h: support "const void *" in helper calls 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, David Hildenbrand Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: David Hildenbrand Especially when dealing with out-of-line gvec helpers, it is often helpful to specify some vector pointers as constant. E.g. when we have two inputs and one output, marking the two inputs as consts pointers helps to avoid bugs. Const pointers can be specified via "cptr", however behave in TCG just like ordinary pointers. We can specify helpers like: DEF_HELPER_FLAGS_4(gvec_vbperm, TCG_CALL_NO_RWG, void, ptr, cptr, cptr, i32) void HELPER(gvec_vbperm)(void *v1, const void *v2, const void *v3, uint32_t desc) And make sure that here, only v1 will be written (as long as const is not casted away, of course). Signed-off-by: David Hildenbrand Message-Id: <20190221093459.22547-1-david@redhat.com> Signed-off-by: Richard Henderson --- include/exec/helper-head.h | 5 +++++ 1 file changed, 5 insertions(+) -- 2.17.2 diff --git a/include/exec/helper-head.h b/include/exec/helper-head.h index ab4f8b6623..f2519c9741 100644 --- a/include/exec/helper-head.h +++ b/include/exec/helper-head.h @@ -30,6 +30,7 @@ #define dh_alias_f32 i32 #define dh_alias_f64 i64 #define dh_alias_ptr ptr +#define dh_alias_cptr ptr #define dh_alias_void void #define dh_alias_noreturn noreturn #define dh_alias(t) glue(dh_alias_, t) @@ -43,6 +44,7 @@ #define dh_ctype_f32 float32 #define dh_ctype_f64 float64 #define dh_ctype_ptr void * +#define dh_ctype_cptr const void * #define dh_ctype_void void #define dh_ctype_noreturn void QEMU_NORETURN #define dh_ctype(t) dh_ctype_##t @@ -88,6 +90,7 @@ #define dh_is_64bit_i32 0 #define dh_is_64bit_i64 1 #define dh_is_64bit_ptr (sizeof(void *) == 8) +#define dh_is_64bit_cptr dh_is_64bit_ptr #define dh_is_64bit(t) glue(dh_is_64bit_, dh_alias(t)) #define dh_is_signed_void 0 @@ -105,6 +108,7 @@ extension instructions that may be required, e.g. ia64's addp4. But for now we don't support any 64-bit targets with 32-bit pointers. */ #define dh_is_signed_ptr 0 +#define dh_is_signed_cptr dh_is_signed_ptr #define dh_is_signed_env dh_is_signed_ptr #define dh_is_signed(t) dh_is_signed_##t @@ -117,6 +121,7 @@ #define dh_callflag_f32 0 #define dh_callflag_f64 0 #define dh_callflag_ptr 0 +#define dh_callflag_cptr dh_callflag_ptr #define dh_callflag_void 0 #define dh_callflag_noreturn TCG_CALL_NO_RETURN #define dh_callflag(t) glue(dh_callflag_, dh_alias(t))