From patchwork Mon Dec 3 16:08:35 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 152711 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp7034608ljp; Mon, 3 Dec 2018 08:55:14 -0800 (PST) X-Google-Smtp-Source: AFSGD/XcPzDIh81AWt+jQyV1o8c/nmahG6Jczb4V7dNXKn3jAp6MHbgZru9nZMHbO/rDY3CMW6CS X-Received: by 2002:a37:18d5:: with SMTP id 82mr15033389qky.65.1543856114381; Mon, 03 Dec 2018 08:55:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543856114; cv=none; d=google.com; s=arc-20160816; b=aZb3cOxB211yvSLLLLSRrJxwcpzMwKJ6f8PXvXLr6yo++2st5ip7gz0ePNwYpyrk+t AA71prGKmU3USxGafxL2SI6joABJgGVGC1c5FyMQCdsRapcM3k4ewbYox/0EU49+a7Q4 3GUgH3IjZ8HfWagBWw1eCK5jbUYfx0+qduE33e3MmCMX+d2Eiycfqe6Qdkzf8jlEhbpJ ZGAmZZLDEn8HRQzM5NTpfBErEvhV0P7vowEgFf2xDtwpfjscyBFrcr7SBYp/UkdQ78EF PQLvnTk6efOqYzZAlg5Qn5RCo/IECKdOMF5OpqQSi+jPuwsFDQlgl9cC1JrUEZ+8atld PrCw== 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:message-id:date:to:from :dkim-signature; bh=0m9NVs7DWp8ndSQ0H7x0N8EIB/a/04Zmu/MTCRrSUAQ=; b=ZICy6fzUKAc7Qph2aXNCKhgLaOD3C6CQiih3rCE4b+9myfCwRBm6PVLlHs/yK08JqO DW6M4/F0ODuWEh51QHiCzKDcpEbvYKP4JjNhiGlmeo22GD1bPT3t/ThMWb4gpPz4Mz4K g262oXTv5KQfEoTdFXWFz+hrswgMYHjOqSSsuoVVncXGPshy1Y1fJqYpnjAU8SSb9Ki3 yJFeewkwCFPXJ/alq+E7wvPSr6/TX2U3xwiapUkXxsJdHSair5HIhn2Xooei1Zx3ACkw WhbmOST9sIkmW8z921/gqM75ZGbgGw7JgfPFqztWX2N95klBZ50Xv869ILG2s3IOrdBi 105w== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=LybKvfYo; 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 w1si7376473qtj.360.2018.12.03.08.55.14 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 03 Dec 2018 08:55:14 -0800 (PST) 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=LybKvfYo; 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]:50626 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gTrV3-0004nm-Rr for patch@linaro.org; Mon, 03 Dec 2018 11:55:13 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35386) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gTqm9-0001ao-UK for qemu-devel@nongnu.org; Mon, 03 Dec 2018 11:08:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gTqm5-0003Mi-9L for qemu-devel@nongnu.org; Mon, 03 Dec 2018 11:08:49 -0500 Received: from mail-ot1-x341.google.com ([2607:f8b0:4864:20::341]:39678) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gTqm5-0003MK-42 for qemu-devel@nongnu.org; Mon, 03 Dec 2018 11:08:45 -0500 Received: by mail-ot1-x341.google.com with SMTP id n8so8214022otl.6 for ; Mon, 03 Dec 2018 08:08:45 -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; bh=0m9NVs7DWp8ndSQ0H7x0N8EIB/a/04Zmu/MTCRrSUAQ=; b=LybKvfYojHjLBgCHuZTl3KOnl6fbBbCZ9KezfdgkcoPy6gXoX7MOkaCxJzsrUfVwTC YN1K/3oQ/guaKSXv2Yc9yLxB6Jh7X6a40YqlQMBEQgSz+TCeIua6AH8RhHHAMHLHOy73 CuzVDJhjH3dY3vn1t2HmBQHqctBH+e8cw+2RY= 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; bh=0m9NVs7DWp8ndSQ0H7x0N8EIB/a/04Zmu/MTCRrSUAQ=; b=GYSv8oLEvalCMeeZzMqt0FjRsQU7g9m35Fouc9aLPqi2hk5E+baqf3irgJdfOULIv2 ExcyvcJgzPpPaBBrrJij1p9U0KNO0f+u49pbkPO/7o/EvajGMrOlrmPioS4uaJpH6gmx fqsD9dLR2MJ+JeHv138FwkvjUOZwiFSGlpG03P/bp7IU3jlXn2ChhH4qZNhjqLk6zPHe WOVJGqfxiOc+kvzlVMXesGn1Uhow/oh+O+gzZmxTPmWS5vp/H+8wVIeOMTK+Z5nlt1Et Zf/Ure4nE6DqLNwxNHTXUzbhlib8og4NWh13I4E5WI7sjKdCYfitHNuYlVd4fm5bQ8t+ BKDg== X-Gm-Message-State: AA+aEWZA/nYiQSe8nhnekqyQQBHxmYX90jA8cHQDREIqR50NGZDzmCue ZIpNCXBB8BgqKDsX46pYCk/rSLzR6UZWBg== X-Received: by 2002:a9d:2d81:: with SMTP id g1mr9846379otb.111.1543853324040; Mon, 03 Dec 2018 08:08:44 -0800 (PST) Received: from cloudburst.twiddle.net (172.189-204-159.bestel.com.mx. [189.204.159.172]) by smtp.gmail.com with ESMTPSA id c19sm6338165otl.16.2018.12.03.08.08.42 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 03 Dec 2018 08:08:43 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Mon, 3 Dec 2018 10:08:35 -0600 Message-Id: <20181203160840.15115-1-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::341 Subject: [Qemu-devel] [PATCH for-4.0 0/5] tcg/i386: Improve guest_base handling 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: cota@braap.org, alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This tidies guest_base handling such that (1) we require no scratch registers, (2) we require no extra instructions besides the memory op, and (3) we reduce the size of the memory op by omitting a prefix. In principal point 3 is offset by adding additional opcodes to handle zero-extension when converting 64-bit guest values back to 32-bit guest addresses. But those turn out to be hen's teeth, since 32-bit guests often have no way of even producing 64-bit guest values. In particular, I saw none in a simple pass through linux-user-test-0.3 for i386, arm, sh4, sparc. r~ Richard Henderson (5): tcg/i386: Propagate is64 to tcg_out_qemu_ld_direct tcg/i386: Implement INDEX_op_extr{lh}_i64_i32 for 32-bit guests tcg/i386: Assume 32-bit values are zero-extended tcg/i386: Precompute all guest_base parameters tcg/i386: Add setup_guest_base_seg for FreeBSD tcg/i386/tcg-target.h | 5 +- tcg/i386/tcg-target.inc.c | 188 ++++++++++++++++---------------------- 2 files changed, 83 insertions(+), 110 deletions(-) -- 2.17.2 Reviewed-by: Emilio G. Cota