From patchwork Fri Nov 30 21:52:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 152591 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp4166873ljp; Fri, 30 Nov 2018 13:52:53 -0800 (PST) X-Google-Smtp-Source: AFSGD/UK3msXVrge8VwGBfoCbsDczvdS++1aBmW1SV773QRaVYV0B/KM359PCvt8q+RNEpof8FV6 X-Received: by 2002:a81:6189:: with SMTP id v131mr7464083ywb.37.1543614773367; Fri, 30 Nov 2018 13:52:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543614773; cv=none; d=google.com; s=arc-20160816; b=ZSDOc6s9lgVm0Ga6e0gL3xeLpqxtVLsWeX2g1pPcxX6DodfeglB1zmU1uuiEye/BWX JinL31skExgyH4zJPjsh6HrqaxQdmrAVsgkIu+/gq0lwzxr1FLgRFfh6zRdmi+gGcQtE isAveRJipCUbOqs4l3srlIf+9faGfEra5WeYK3UWmwuQSSDQS05+UB0e9nT5NhCSCEuO hBztCVJ+u7WttZm22miUV1FGDrcN7dO3iKDgiCfGFrdqrLpDtOTim/kSIpYS3/91n49X 2kcrfmM+9TFvk82T8UUqHEBvQFm7+T26OCYUovvh5S4mEbA4bDJd/yBLFFTpVvA5JjHg bwYQ== 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:references:in-reply-to :message-id:date:to:from:dkim-signature; bh=NhEZSAJG05xqXtLacoC2PBUagTVyKddaBYmrH62y/sY=; b=XjZ0Ukx4bntY9eVVt9c1qTUaLyljjrsWjRbOcWsdOv8vbmFqv7iUPCcj9KPyKtRqL2 854Rdo/mdIbiXBxv+du3oDsAYwwMKIGIx2xLdIKv7cXKn2sJfeBFZq5kBf/tioyFtXoc v7TKv90sjbKg7/vuWw+ov84rBedY/N4QJKxIglRpNeO7CaWZnxb5O53D/td+jSwzea46 xwurX1eJEzTvpF8wiLm/tKUvzwhOqVhBEp+tqeYBU3/O+cy2HjCK7tiZOSFIjURO75lO ObYdVgwK7ocb6Ty6SLtzIzBH5238c9krIKb7GmkjaHJE7pCx8lQwoKVs5Wn8pPEZZ3pl 4zhw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=SGDdVJDC; 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 r123si1324980ywh.99.2018.11.30.13.52.53 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 30 Nov 2018 13:52:53 -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=SGDdVJDC; 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]:34732 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqiS-0007rv-MD for patch@linaro.org; Fri, 30 Nov 2018 16:52:52 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52470) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqi4-0007qG-6n for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSqi2-0006Ea-9H for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:28 -0500 Received: from mail-pg1-x543.google.com ([2607:f8b0:4864:20::543]:43975) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSqi2-00069c-2G for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:26 -0500 Received: by mail-pg1-x543.google.com with SMTP id v28so3044248pgk.10 for ; Fri, 30 Nov 2018 13:52:25 -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 :mime-version:content-transfer-encoding; bh=NhEZSAJG05xqXtLacoC2PBUagTVyKddaBYmrH62y/sY=; b=SGDdVJDCpEKl5iDotnv/YA7RJ5xDbz69Uc9GS4WL6YlXLZNngPZXKF189/p2UfY16M eUpbTIFImgsat1fDUv6ye207Dxam0XZOejlGa9TWLuqb6LUpc++JQauL6APTCis/Pq1R E5x+AEr4Z1ZWzFuVY1AJJdouPBXVimcsTqaG4= 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:mime-version:content-transfer-encoding; bh=NhEZSAJG05xqXtLacoC2PBUagTVyKddaBYmrH62y/sY=; b=j0CpFpIG4cEmzR4wHUnpEUcxufp/zjqxwzr7IYfyfTUlK46oCqTMFxtpA2VHAJp/cX WvhdqI8h0vg0Xijf9gucOYP9P7Ewvq8aL1WMWkfg5yKnA62wf1iKwsgsuf4ih1YNfRPO qvHF79sx2C8SuyqeukykMF8444E5i061qffBpmKxzvMVrhYKFa7GsOv1pgZ6v9pyoqEC d2gaMAns5DTq1hNc4HZ3P9H+2iz9vJkqWnT5H3M7mEGGlyOzONvD79QDQ/jZwqD1ErJa vB1LUQLpD52gU4vhW9ry/OLu+/u/RKgHR09KOpqVxu2ETqnRogE4qhUkD1sjY+l0tUi7 9Cpw== X-Gm-Message-State: AA+aEWYN8+wu66icZQC+YpF3qmTrz6v8OZgGd+K2PE6nZ0DCo/7tb3T1 il+f0AMGtyIge7NXErTxIODrqScsfxg= X-Received: by 2002:a63:a552:: with SMTP id r18mr6210983pgu.176.1543614744459; Fri, 30 Nov 2018 13:52:24 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-170-180.tukw.qwest.net. [97.113.170.180]) by smtp.gmail.com with ESMTPSA id a18sm6973967pgj.30.2018.11.30.13.52.23 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 13:52:23 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 13:52:06 -0800 Message-Id: <20181130215221.20554-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181130215221.20554-1-richard.henderson@linaro.org> References: <20181130215221.20554-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::543 Subject: [Qemu-devel] [PATCH v3 01/16] tcg/i386: Always use %ebp for TCG_AREG0 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: alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" For x86_64, this can remove a REX prefix resulting in smaller code when manipulating globals of type i32, as we move them between backing store via cpu_env, aka TCG_AREG0. Reviewed-by: Alex Bennée Reviewed-by: Emilio G. Cota Signed-off-by: Richard Henderson --- tcg/i386/tcg-target.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) -- 2.17.2 diff --git a/tcg/i386/tcg-target.h b/tcg/i386/tcg-target.h index 9fdf37f23c..7488c3d869 100644 --- a/tcg/i386/tcg-target.h +++ b/tcg/i386/tcg-target.h @@ -84,6 +84,8 @@ typedef enum { TCG_REG_RBP = TCG_REG_EBP, TCG_REG_RSI = TCG_REG_ESI, TCG_REG_RDI = TCG_REG_EDI, + + TCG_AREG0 = TCG_REG_EBP, } TCGReg; /* used for function call generation */ @@ -194,12 +196,6 @@ extern bool have_avx2; #define TCG_TARGET_extract_i64_valid(ofs, len) \ (((ofs) == 8 && (len) == 8) || ((ofs) + (len)) == 32) -#if TCG_TARGET_REG_BITS == 64 -# define TCG_AREG0 TCG_REG_R14 -#else -# define TCG_AREG0 TCG_REG_EBP -#endif - static inline void flush_icache_range(uintptr_t start, uintptr_t stop) { } From patchwork Fri Nov 30 21:52:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 152595 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp4169088ljp; Fri, 30 Nov 2018 13:55:49 -0800 (PST) X-Google-Smtp-Source: AFSGD/WG3OamQghcrGeJBrAdSwYnET3zfmaxaEnks1f4Y0FktZfHBGYSnWq/AKynT/RCEF/k0h4f X-Received: by 2002:a81:c144:: with SMTP id e4mr7623793ywl.409.1543614949317; Fri, 30 Nov 2018 13:55:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543614949; cv=none; d=google.com; s=arc-20160816; b=Qd56iqFogriO/hZ5vO3sTW+90yby/jGivG/pv0p2zDT5SUo2ZTvd042Y8ew/DanzJn fT3JLRPM4xyON6cXFVQgZ+l8/2rAYEOQlkvnpAs50K7kjVZ4U+jwpraUzicuda20sjJT cYWvvvJ/LaDjXhd53r3ssak8XoXm4fP/LP5eeMZUE/1u1fgYgNbLF8d240T3h17+dXyv mHeWnXOUtvoRfcgAAFqgjRuZ47W4iAjsQawPkH/olCikA3+vWeWsr8B4XelJJCBCdCW2 L/PaS2KIDBgffKvlQVaV+DxT20hJXvZ7VsSL61kHDeFXufZ+9i6hPgKIySYB9JtJM2hz S5qw== 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:references:in-reply-to :message-id:date:to:from:dkim-signature; bh=Jrh4Y+SFq2jwiqT4wxhzL7fYXQ83Kj3wp2Zs2cGnVdE=; b=dzrd2eFWR7gIdXDovNmHSdfskAfDVFnC0LIk6PKyTaVjjNjqabRB/HSBYSwf9Vt0z3 x2EdPMMr37gsysrqwTwmwZ0/ttsPuZ0Auf28AAGfalo3f+mTxZMbiz7Zh21TC8MWOCAi /jvG89D9/29AHMyWNPyq8oeos43iU8GB3vPkcCheV3jAkxVPYwwcOGVhVM2VQQJrDLal Rq8JX0FgDBoxYobt+NMEp1lPAF3mATnQeaUjBOO+TOBnnOt3umFR/A91fAGEQGie+yIZ Zwe3pyW5l4uht8xPIcCk67HoVDieBW8HMT9724Q7ioZCERXkelL8AXwIHoXz91vGQhq1 AtYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=JuOU0n1a; 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 h17-v6si3680965ybq.22.2018.11.30.13.55.48 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 30 Nov 2018 13:55:49 -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=JuOU0n1a; 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]:34747 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqlI-0003Dm-Kx for patch@linaro.org; Fri, 30 Nov 2018 16:55:48 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52487) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqi5-0007qk-5h for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSqi3-0006Kl-PC for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:29 -0500 Received: from mail-pg1-x543.google.com ([2607:f8b0:4864:20::543]:39657) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSqi3-0006HN-II for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:27 -0500 Received: by mail-pg1-x543.google.com with SMTP id w6so3050204pgl.6 for ; Fri, 30 Nov 2018 13:52:27 -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 :mime-version:content-transfer-encoding; bh=Jrh4Y+SFq2jwiqT4wxhzL7fYXQ83Kj3wp2Zs2cGnVdE=; b=JuOU0n1aNDU7TXiUyZaTDQ2DKuP/SWA1tEVDszv/8QtT6WauDEDcnwzwM3oUDEXvlc 73HY42Y/1ZJxhuaTJYwn3n6ionEb5d/BBDfxuNqS2M0vQmJ2pMDLyWWrUl/bW4eujDYk FvTMIbBXKcMxTStKKiu2G0YnxxeMvdqe3PgEs= 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:mime-version:content-transfer-encoding; bh=Jrh4Y+SFq2jwiqT4wxhzL7fYXQ83Kj3wp2Zs2cGnVdE=; b=hNJug32PoGSfUF3OYbT+QWsHsF8B+WhrbktDyFU/e9F1CcPhPmIO433WYT8XTB5GQ4 h0kMBs0YFK9wOg8yPxYmETB8lmbIMEtGIZXDIk+TTdDQW+tFdpbbCljQHn6JRfQ5dvTz oP5GADAk6SFrLcc8n268Nyw1JVfX3CpBTW0DLpexzeI/gDjusDCxDmrQW7aykg32DX5q AqOLkpXn+1t/lsl3ahe/QCZmPS6RWiUGh4alsfKDHmg+bW5TY266amhPh2wKQbuKpdFK CWJLbi6N6H6VCWI2vqcuHbXxoAfsRPDAiCwaFq6ltNl8XOe9Azr0rX6WCLPEbPbS0P0J 8rDw== X-Gm-Message-State: AA+aEWZHjbYWjV68Z/XKFB8RoAFb5OmpzGeG+5fVvbL2OTUHetypbHAx +2omxpreAa7ZEOjOwvJN9P96zFfB5rE= X-Received: by 2002:a65:49cd:: with SMTP id t13mr6256330pgs.376.1543614745960; Fri, 30 Nov 2018 13:52:25 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-170-180.tukw.qwest.net. [97.113.170.180]) by smtp.gmail.com with ESMTPSA id a18sm6973967pgj.30.2018.11.30.13.52.24 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 13:52:24 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 13:52:07 -0800 Message-Id: <20181130215221.20554-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181130215221.20554-1-richard.henderson@linaro.org> References: <20181130215221.20554-1-richard.henderson@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::543 Subject: [Qemu-devel] [PATCH v3 02/16] tcg/i386: Move TCG_REG_CALL_STACK from define to enum 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: alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Reviewed-by: Alex Bennée Reviewed-by: Emilio G. Cota Signed-off-by: Richard Henderson --- tcg/i386/tcg-target.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.17.2 diff --git a/tcg/i386/tcg-target.h b/tcg/i386/tcg-target.h index 7488c3d869..2441658865 100644 --- a/tcg/i386/tcg-target.h +++ b/tcg/i386/tcg-target.h @@ -86,10 +86,10 @@ typedef enum { TCG_REG_RDI = TCG_REG_EDI, TCG_AREG0 = TCG_REG_EBP, + TCG_REG_CALL_STACK = TCG_REG_ESP } TCGReg; /* used for function call generation */ -#define TCG_REG_CALL_STACK TCG_REG_ESP #define TCG_TARGET_STACK_ALIGN 16 #if defined(_WIN64) #define TCG_TARGET_CALL_STACK_OFFSET 32 From patchwork Fri Nov 30 21:52:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 152597 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp4170643ljp; Fri, 30 Nov 2018 13:58:06 -0800 (PST) X-Google-Smtp-Source: AFSGD/UvbBLKr+JiVcqaAUZm22t1BuKx9VQIp4woaRP8rsEOgRSaiu3t0ZfliM71clVGbXqTTn7+ X-Received: by 2002:a25:b104:: with SMTP id g4-v6mr7064223ybj.112.1543615086391; Fri, 30 Nov 2018 13:58:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543615086; cv=none; d=google.com; s=arc-20160816; b=ulCv3dV8Mb4Rt1xv6cM9CyQxKzLUXOQTjVRz21MAbNrAIN6cMu/TMlkb99tVMupaCE Tw6mAVtKYhc0Stq+W5ye2Ztdc0AHk72yhh3kZnFQ7/HIOTVcJa5uMIH9ZQwe3b7S307P JtFl9nr3+MWQKk4np+0XEF8rloJg23iO+yo1DlYo60ZZds0YblO7lwvN6OdJLVYb6IP4 bSj0ByyBE1subQqhDuO8XYNTuGyGGjCre5w3TvjkT6eyfYlOvjIf7VTh/3fkdbIqt0R4 46q88kpqSaye6wjO6GbYy0WvHnyg7kYU8SIMx388fIIwFcuoCDzkjJxLfYRnWL4uKkjO SydQ== 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=yK0dG/0vrNxbKSba6n1ipzVAper4VICqvkqQD/UZX0Q=; b=XEijAz8eBNvv/ku//YoyVG8u6Z2jjQtSg5XdzstEprbty/xfnKTW9OLw/C+XlE85ml y7M0iovYHtTdC//9vkJ1XkaoF1fb8bxNiSya98O45bTDxhsJ9k8EAokuJ75gI54NmL2O Wwz8OFc5cY+hXhS0TVpqcDCEe7Vo/C6TGPKvVcIaO+EHi7uQh07bgIU7J7bdsCnvFIdq pm5+BP4FZGYTY5cy5QWEVTC9SGMLVdBZvdHCCRi1m6ba9hgnzc3Uc0P6og6Ni83vLFz8 udWmI1TAkWubhyJN3P1H8M/nqsP6wzWrY1f+u4ePfDy8CZbMZ44s8tno3n1dzMgrV4fn zNWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=Zd56Oa3a; 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 p194si4045688ywg.204.2018.11.30.13.58.06 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 30 Nov 2018 13:58:06 -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=Zd56Oa3a; 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]:34759 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqnV-0005Tb-SY for patch@linaro.org; Fri, 30 Nov 2018 16:58:05 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52503) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqi6-0007rW-8U for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSqi5-0006TI-Gm for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:30 -0500 Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]:46740) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSqi5-0006Nf-9g for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:29 -0500 Received: by mail-pf1-x444.google.com with SMTP id c73so3415644pfe.13 for ; Fri, 30 Nov 2018 13:52:29 -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=yK0dG/0vrNxbKSba6n1ipzVAper4VICqvkqQD/UZX0Q=; b=Zd56Oa3avf/iuZ9p1V7ecewLJ39rsgu3lvWl5i9nUwwkJ9it5rDUgAV6NfyEPb8uwQ Y6KGZP7DHFiTtpEXiGJ78rAZ8G3YFKputE11RyZtB0mKAAiyvXXW0DqDGjcJbelbPcyg 4LODftLVfxHicd8w57QNYh+9jkAeEHP/ezfcE= 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=yK0dG/0vrNxbKSba6n1ipzVAper4VICqvkqQD/UZX0Q=; b=BzD157fU0cCZXrU/u9TWQdPVIuaOdAVfK6Q6b0WgvmCSmRxzyPv29hNDP94tpplco/ tkFZ3Knc9oEVJiRO6E64vGfpPKRPfmznPh5n7Ojy1Iyn3VocLLTvWF4GaFK1D7yh/SnG xo6w7jsiC3K24lXuK1R4eXtm8V9a8Q9qGn9O7112FUxwUe1fhw7/qxlee17vFK0fAhFV 1072OA3X0lHUT+20xK5W6Z9GTdCdTR0ifKx1ymVpzkb0RT5782V+qILpvdnFfKwUoRK2 7JHLtEoB5UgI3CFhLx4FIscoGYTJ7+B8AUuZU8uXZAXXcMbvsYVgieomU2iOSt5Wnn8A EcKQ== X-Gm-Message-State: AA+aEWaWZqgYv+vdal00i2khy7sEE1MOs1xJKAP/qGEiHgONuI8EC3eR PdDMrukrIayu37tE1rfKFvlvSVIEXn0= X-Received: by 2002:a65:6684:: with SMTP id b4mr6210311pgw.55.1543614747222; Fri, 30 Nov 2018 13:52:27 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-170-180.tukw.qwest.net. [97.113.170.180]) by smtp.gmail.com with ESMTPSA id a18sm6973967pgj.30.2018.11.30.13.52.26 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 13:52:26 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 13:52:08 -0800 Message-Id: <20181130215221.20554-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181130215221.20554-1-richard.henderson@linaro.org> References: <20181130215221.20554-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::444 Subject: [Qemu-devel] [PATCH v3 03/16] tcg/aarch64: Remove reloc_pc26_atomic 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: alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" It is unused since b68686bd4bfeb70040b4099df993dfa0b4f37b03. Signed-off-by: Richard Henderson --- tcg/aarch64/tcg-target.inc.c | 12 ------------ 1 file changed, 12 deletions(-) -- 2.17.2 Reviewed-by: Alex Bennée diff --git a/tcg/aarch64/tcg-target.inc.c b/tcg/aarch64/tcg-target.inc.c index 083592a4d7..a41b633960 100644 --- a/tcg/aarch64/tcg-target.inc.c +++ b/tcg/aarch64/tcg-target.inc.c @@ -87,18 +87,6 @@ static inline void reloc_pc26(tcg_insn_unit *code_ptr, tcg_insn_unit *target) *code_ptr = deposit32(*code_ptr, 0, 26, offset); } -static inline void reloc_pc26_atomic(tcg_insn_unit *code_ptr, - tcg_insn_unit *target) -{ - ptrdiff_t offset = target - code_ptr; - tcg_insn_unit insn; - tcg_debug_assert(offset == sextract64(offset, 0, 26)); - /* read instruction, mask away previous PC_REL26 parameter contents, - set the proper offset, then write back the instruction. */ - insn = atomic_read(code_ptr); - atomic_set(code_ptr, deposit32(insn, 0, 26, offset)); -} - static inline void reloc_pc19(tcg_insn_unit *code_ptr, tcg_insn_unit *target) { ptrdiff_t offset = target - code_ptr; From patchwork Fri Nov 30 21:52:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 152600 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp4172949ljp; Fri, 30 Nov 2018 14:00:54 -0800 (PST) X-Google-Smtp-Source: AFSGD/WLAOXhPecBqaLfOtxSyPcCNWHEjGOOrhJB7VJ8sEZCMca5+BhY6UGWp+1/XIfzFpwtoKI2 X-Received: by 2002:a5b:4a:: with SMTP id e10-v6mr7063723ybp.485.1543615254725; Fri, 30 Nov 2018 14:00:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543615254; cv=none; d=google.com; s=arc-20160816; b=HAHdQBEwFOE9WnAoJZzFL4UykHoy/mpbf4b/JYcdsEF/03tf3sG8oOgYLZi9YBgJIV QYxChwwZxHk3eXg6pB8NZSEWXmkQxCtA5rt407kH2flnccjfFUohzKt/mhBAP3Ee9xsS qC8aPIP/T/Sslh312F5hIel7a7Is/ex0OOqc7JnGyXXO0LzVmxwXYo5PXO0LM2zQZj4x JXK7vV3aDLQ1+ldxibOzLEjzMiI2FVBvj9yO2ZwnYIoL2Kl0jojLDYJ9muKAsvE2VSXB xuE8D7eqQkSo63XkuSjIQzuL6CB3jhmEOgEIzajouAYL8T0nCBvJflXnrBn7ivc2wkpH dktg== 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=Kwdiribgzx2Cbccg4TG0vd/ef0gMrNWExhCNQW0ga6s=; b=GEUT7ohIgGxJWno6aj/T3C2BIpJ2z5fpCnxoyJ4FcygUxBajG99hVIAwd0PbI1yjXb kPDydDC78AVMJb4ZMZOvfp2J0II7f8s0AY/ACwdIFKDWTkPs0iUeNCQpvu28qtEu50ZB k1ScicGDEscLS4a7aPptAGNvW/XAQbzgjXUqtq7icBH6EYqUuD+tavvXGgu+mmyoldct aYJ7sdHhNszjEk1NFddQMIK9LBur+cTtSB+QjEonCYsuM41wzijZm+6WoH5OHcgpifmP 5VGxv8K1J5hNx1mzlaNYzJWO8crsSKYryQ475bwKy2hIqSZaT9NLn+Yqfxi426DmCcdG oGcg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=OmIBjvnm; 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 b13si3956872ywe.191.2018.11.30.14.00.54 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 30 Nov 2018 14:00:54 -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=OmIBjvnm; 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]:34780 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqqE-0000tZ-4J for patch@linaro.org; Fri, 30 Nov 2018 17:00:54 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52514) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqi7-0007sI-0u for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSqi6-0006Wr-37 for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:30 -0500 Received: from mail-pg1-x544.google.com ([2607:f8b0:4864:20::544]:44117) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSqi5-0006RE-TF for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:30 -0500 Received: by mail-pg1-x544.google.com with SMTP id t13so3036035pgr.11 for ; Fri, 30 Nov 2018 13:52:29 -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=Kwdiribgzx2Cbccg4TG0vd/ef0gMrNWExhCNQW0ga6s=; b=OmIBjvnm1G9nGS12ATFtW75Zmw2sdWzseKxscYWiH9Gt4d/n0IIyoTenXy4+VXYqTE hvIXxXRdo4PnfkFk0RJIVUoeSJG8h+9ct21XvQ1Bw8bx8bL+mJYiPwAAQ4zJkV/bkxSd FBqEmg8NQ8hk4L8+re/8k8/aMqapenpMZ+tXA= 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=Kwdiribgzx2Cbccg4TG0vd/ef0gMrNWExhCNQW0ga6s=; b=FaUNpnz3g0FvBkfJExHcKHQz4KbM9VklND4FftQUQBdjTMSSJ1DZuI+FB1cuMFJ6w1 +e4zCbEqMS5a4yFHN7NuhoBYiWz/z+F7aIaW8gMtgElCFeBMf3m5EmqRW2KzQb6eFJPb xN87+pw/Rlo5w/VoY2C00UVMh0O03Du76/QE/wdNz9cGRi7GWuW0DimuL7ah08eVHGgc xY5VfAd/HU/EAxfLzI8pEcnCGUWYxDyzBgEaNMpWI4MYa8XDDl1OH5I491D8gkwqJxjq 49wT1KOJY63P37zRcv6+3A3DX5uuxIXU99ig62NJfuSRG4ua3jLmKIiD+Z8kQ3c8F+/k UhOQ== X-Gm-Message-State: AA+aEWbQd1bCijvHUApS8WmopuhhPfIpUFSvJqt0e9WkvcqBwumwCx3d C5mD484CrtmnHQags3oGfHAFLE/Z02k= X-Received: by 2002:a62:ce0e:: with SMTP id y14mr7531215pfg.100.1543614748468; Fri, 30 Nov 2018 13:52:28 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-170-180.tukw.qwest.net. [97.113.170.180]) by smtp.gmail.com with ESMTPSA id a18sm6973967pgj.30.2018.11.30.13.52.27 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 13:52:27 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 13:52:09 -0800 Message-Id: <20181130215221.20554-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181130215221.20554-1-richard.henderson@linaro.org> References: <20181130215221.20554-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::544 Subject: [Qemu-devel] [PATCH v3 04/16] tcg/aarch64: Fold away "noaddr" branch routines 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: alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" There are one use apiece for these. There is no longer a need for preserving branch offset operands, as we no longer re-translate. Signed-off-by: Richard Henderson --- tcg/aarch64/tcg-target.inc.c | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) -- 2.17.2 Reviewed-by: Alex Bennée diff --git a/tcg/aarch64/tcg-target.inc.c b/tcg/aarch64/tcg-target.inc.c index a41b633960..28de0226fb 100644 --- a/tcg/aarch64/tcg-target.inc.c +++ b/tcg/aarch64/tcg-target.inc.c @@ -1129,23 +1129,6 @@ static inline void tcg_out_goto_long(TCGContext *s, tcg_insn_unit *target) } } -static inline void tcg_out_goto_noaddr(TCGContext *s) -{ - /* We pay attention here to not modify the branch target by reading from - the buffer. This ensure that caches and memory are kept coherent during - retranslation. Mask away possible garbage in the high bits for the - first translation, while keeping the offset bits for retranslation. */ - uint32_t old = tcg_in32(s); - tcg_out_insn(s, 3206, B, old); -} - -static inline void tcg_out_goto_cond_noaddr(TCGContext *s, TCGCond c) -{ - /* See comments in tcg_out_goto_noaddr. */ - uint32_t old = tcg_in32(s) >> 5; - tcg_out_insn(s, 3202, B_C, c, old); -} - static inline void tcg_out_callr(TCGContext *s, TCGReg reg) { tcg_out_insn(s, 3207, BLR, reg); @@ -1192,7 +1175,7 @@ static inline void tcg_out_goto_label(TCGContext *s, TCGLabel *l) { if (!l->has_value) { tcg_out_reloc(s, s->code_ptr, R_AARCH64_JUMP26, l, 0); - tcg_out_goto_noaddr(s); + tcg_out_insn(s, 3206, B, 0); } else { tcg_out_goto(s, l->u.value_ptr); } @@ -1523,7 +1506,7 @@ static void tcg_out_tlb_read(TCGContext *s, TCGReg addr_reg, TCGMemOp opc, /* If not equal, we jump to the slow path. */ *label_ptr = s->code_ptr; - tcg_out_goto_cond_noaddr(s, TCG_COND_NE); + tcg_out_insn(s, 3202, B_C, TCG_COND_NE, 0); } #endif /* CONFIG_SOFTMMU */ From patchwork Fri Nov 30 21:52:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 152598 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp4170906ljp; Fri, 30 Nov 2018 13:58:31 -0800 (PST) X-Google-Smtp-Source: AFSGD/VGeD2HwtHRiMpHxEUEBf8BJtL7faTUn+5GvwSyuvNn+OFy6DiQ3mPwSEty2XamADR5HgT0 X-Received: by 2002:a25:fa12:: with SMTP id b18-v6mr6977682ybe.206.1543615111855; Fri, 30 Nov 2018 13:58:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543615111; cv=none; d=google.com; s=arc-20160816; b=HBdzs6ds274HKwzLKYS/4Fr6Yebra2yLlbVnI5hUcQI28FalSYtUmGvswc+/UQdhmb TUcyTX6TM0HnFQ3YxKPxAbbB3fIJasWEDVNseMx3DgwjWX0lbc22E1+F5kSDsri49Ut2 a5Yi8jZEmu75VXk1pqjDK/KURiZJnm6PBBGtCioSostKvRaIanN6l3bgbm/6TECO7Wio ZackLmLnwsMSDfYltFSW8FBdC7BVfn7wmBcuWXnlZCScML4/ob1Ak7jVPJarvzHrCmIA 4ucWgCeFooY4rjJ+yUrUDpOXRCWcbQ77uZUE2byDWYT+G8cK0dzZby7HCQEX20sozRDD e7Mg== 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=7h4GXNb91zOPDnh2Ls29pcZk2e9bcCSLu7mxmI+kTHY=; b=DoY3IFsLscRnXtpbX+ysJTRijeNgZhmU8RlbfXl94dm56SJ1oOOzOPOU93uE+uvJrl GeF1gsuKB7VqUC1aTjIWvMhWtCy3zZe4/czMw4VkqIx5nQ+X5bcZWeidHdcKqnr6Vj+B XY711NqdOI0Q4EexIj/SkIAlgmhbJNV3/CaoyArTXmPY5WfqHDZJ2BWPRpniEucwG5Bc plCDe05xcpqCuAdHRPzWvGHRQ7bppjVDUSWnuZR6lUQvOGAo6/v81b2ad/95BBBUH//x TVJVwDGpxiBATjI1hcdDsAyTZhEMFvw0Grs6AuSsnA/gKbzKcIghHL0i+WMyInh2PY2B rdtA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=gdgib4yn; 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 q65si3976735ywc.246.2018.11.30.13.58.31 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 30 Nov 2018 13:58:31 -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=gdgib4yn; 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]:34761 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqnv-0005XJ-9B for patch@linaro.org; Fri, 30 Nov 2018 16:58:31 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52525) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqi7-0007tB-Vr for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSqi7-0006dK-6l for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:31 -0500 Received: from mail-pg1-x544.google.com ([2607:f8b0:4864:20::544]:41099) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSqi7-0006ZR-0l for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:31 -0500 Received: by mail-pg1-x544.google.com with SMTP id 70so3049087pgh.8 for ; Fri, 30 Nov 2018 13:52:30 -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=7h4GXNb91zOPDnh2Ls29pcZk2e9bcCSLu7mxmI+kTHY=; b=gdgib4ynRoD6RjnI2p99XVxiTAUlPOIxzI1KDvQCJB0qCUcr8bdQh84d79NWooSNlG LFDp4cRSCknFiWUNUDDLvBsKrbiDjKSlxLkjRsdRZ40uPYVq5B1p79PVF/lbuhGVnjEF /h8xG6HsDuT3AvdQrkzuAcAnFE0whp2n7aWwo= 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=7h4GXNb91zOPDnh2Ls29pcZk2e9bcCSLu7mxmI+kTHY=; b=UdehJm0Q1s4eDL8D+nx4hqsignaS73i12XUuSQ0avfAZ3XP1AWmkDfgw5B+cdNBXLR 55NTxKBaj8LjS6i/YLfYTQdKlojJpmnCwb7aqqi0wUeu+82y0iPaSMVUNedLVsKBr0EN nqreiYU3gce7OfFmYjMuUtsp/DChRRDLsm73C4KV1Gz4oPVXcbSkiuYPu/9lrGUq5Hb+ XnYrxUkpjH5BM+Jw0aY9760w1Bza3CiQ/wzBi4rPXer7koqNKMUFvBFH0WBV76Vj+b/n v25iAZ0QdCsdlTKysbD9PgvEtBMrHCV8MNqK+9S7XkNk62ayTGFgEazRmWeIk1np+W5m bk/g== X-Gm-Message-State: AA+aEWYLWIJsgeq8XF0Dt0G1HYNCFvy83kqNiJQw85mN+JziyEVSk8gG YUwb6u8ehBkSQrSsTHsZbmtyHMatiso= X-Received: by 2002:a63:ca0a:: with SMTP id n10mr6216565pgi.258.1543614749731; Fri, 30 Nov 2018 13:52:29 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-170-180.tukw.qwest.net. [97.113.170.180]) by smtp.gmail.com with ESMTPSA id a18sm6973967pgj.30.2018.11.30.13.52.28 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 13:52:28 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 13:52:10 -0800 Message-Id: <20181130215221.20554-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181130215221.20554-1-richard.henderson@linaro.org> References: <20181130215221.20554-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::544 Subject: [Qemu-devel] [PATCH v3 05/16] tcg/arm: Remove reloc_pc24_atomic 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: alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" It is unused since 3fb53fb4d12f2e7833bd1659e6013237b130ef20. Signed-off-by: Richard Henderson --- tcg/arm/tcg-target.inc.c | 8 -------- 1 file changed, 8 deletions(-) -- 2.17.2 Reviewed-by: Alex Bennée diff --git a/tcg/arm/tcg-target.inc.c b/tcg/arm/tcg-target.inc.c index e1fbf465cb..1142eb13ad 100644 --- a/tcg/arm/tcg-target.inc.c +++ b/tcg/arm/tcg-target.inc.c @@ -193,14 +193,6 @@ static inline void reloc_pc24(tcg_insn_unit *code_ptr, tcg_insn_unit *target) *code_ptr = (*code_ptr & ~0xffffff) | (offset & 0xffffff); } -static inline void reloc_pc24_atomic(tcg_insn_unit *code_ptr, tcg_insn_unit *target) -{ - ptrdiff_t offset = (tcg_ptr_byte_diff(target, code_ptr) - 8) >> 2; - tcg_insn_unit insn = atomic_read(code_ptr); - tcg_debug_assert(offset == sextract32(offset, 0, 24)); - atomic_set(code_ptr, deposit32(insn, 0, 24, offset)); -} - static void patch_reloc(tcg_insn_unit *code_ptr, int type, intptr_t value, intptr_t addend) { From patchwork Fri Nov 30 21:52:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 152604 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp4175702ljp; Fri, 30 Nov 2018 14:03:24 -0800 (PST) X-Google-Smtp-Source: AFSGD/UR5cWZ/jmy5SIleY3z9PGOz9VkYPJH097uwvi1yno6bdO9Q+P/jsxV1MO/tEwOKXyW/2uz X-Received: by 2002:a81:2ac1:: with SMTP id q184mr7187744ywq.99.1543615404592; Fri, 30 Nov 2018 14:03:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543615404; cv=none; d=google.com; s=arc-20160816; b=BwJ9MaDfMLRbZzNqRSYSDgOHyQj4d3uGdhHQ0QPTif7rN1rB8F6ua5+oXRrJks84LS GSzFjwqwwCmswxw3I5NBTz6AlYrJHRr7ONL48Cx4T522hoD26fpiwfxZChxBe1NwenLs f1LGyDha/W8w7aZC8cV4qGUSsKFiunhwJ5bkFH9d67lNNoeUY3zZk8fNsLMbVuA9TYmm wDhaEw85Mf3GxAyjMuEujwd4wqtIqpKBoA50iFwY1RYC+8l9guEqoQlIozfyerkEHP6Y T9EwTG+sYOnj+rlEapYl0v0STGCPObq7mO3tGZh/WypaVAj85v3chuFBiyloDh8rPyua OWrg== 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=ozCrCOAJZo+64UxjSymZwYWwMBonWg+ae4lW/HzfewQ=; b=NtKtjgxnVv3CMRPQ9qs3r62MOliGHHroJAQWZfHS1PcfzxfGSi74zjsIa2LGFXeu9t wa+ikAVD46SSUxlB4FBedfNhpMAk7ICXPormm3kFQKNWik3OS1wBiIVi+Rxjun+SVdhY 1xzbp+LBN1L6Gf+v1cC2XsMNtt2GP5jYDXd0cRKS/4KP35la/153vcm8LAvRT6XEC74W x+54RvmtZ7QdRuOLoqagyLv+kUXivoM6UoFNoZCn+Kbf9dtnjTKosht+iBVDevvdtnHn oDN7xXAeV6qkvf08I1XlaVdkytELzcuxIUvRVEolPipzNUaauS+B5YhMHD7mfLdQnBkX 29Kg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=OLY9h4Bk; 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 o68-v6si3799110ybc.308.2018.11.30.14.03.24 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 30 Nov 2018 14:03:24 -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=OLY9h4Bk; 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]:34796 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqse-0003z3-2t for patch@linaro.org; Fri, 30 Nov 2018 17:03:24 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52544) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqi9-0007uc-A4 for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSqi8-0006jP-Fn for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:33 -0500 Received: from mail-pg1-x542.google.com ([2607:f8b0:4864:20::542]:35350) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSqi8-0006gh-AU for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:32 -0500 Received: by mail-pg1-x542.google.com with SMTP id s198so3064150pgs.2 for ; Fri, 30 Nov 2018 13:52:32 -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=ozCrCOAJZo+64UxjSymZwYWwMBonWg+ae4lW/HzfewQ=; b=OLY9h4BkZX5FoL5s4AblhxA06BVeddoasC+m2i0V3bYJzUSXgOczZ5AuDDKpe5EjAN iXZRgpGz8D8iwp8ZwPlUn3OOodCVejFqO+XS37jqfYxyf5u5SQwZJzmyMJw6YxDMf3Z1 OboiEu1VOnQttxYR5U7+2tPJzcF6cOWLbBcY8= 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=ozCrCOAJZo+64UxjSymZwYWwMBonWg+ae4lW/HzfewQ=; b=E2L3Ktn3MNA+xsxk/KmNOmYTr+7rV0Uwc1TNu9p9DeAl/M83Y84KoM1wdibn7te2gs Ti8DLnlQQuA4kFFTXjjd1zW/WR/A0iR/m6M1QxdglCY8s+0TcHLBrRNsb9hvq/78LFle WaBiRzaU+37xUKohrGOArdqX9CWBcKWJ93w4Y8Z/Jjlw5mjQWqUdbFdOrSARmE6lUwsc QCxqQp7VJiWFQ9PFAVEDYb2cHySOkmso1zgJbfGmYDxNgatxURxLfPDdm9bdEUGfzV0J flgHmN/U2dc8shTsJFAQmM9uu0TUep2mOBJQIOrIhkee38YhBgKNqjuMlqRM3bgBDqU7 iCyQ== X-Gm-Message-State: AA+aEWZHrxU1qqtrS1GrANo8R15s+jojN4bKM3oRG8R+WVHWFI954MO5 jcd2PcEgPqCDFceLmV78DLfWCurrkI0= X-Received: by 2002:a63:1904:: with SMTP id z4mr5976595pgl.135.1543614750891; Fri, 30 Nov 2018 13:52:30 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-170-180.tukw.qwest.net. [97.113.170.180]) by smtp.gmail.com with ESMTPSA id a18sm6973967pgj.30.2018.11.30.13.52.29 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 13:52:30 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 13:52:11 -0800 Message-Id: <20181130215221.20554-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181130215221.20554-1-richard.henderson@linaro.org> References: <20181130215221.20554-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::542 Subject: [Qemu-devel] [PATCH v3 06/16] tcg/arm: Fold away "noaddr" branch routines 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: alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" There are one use apiece for these. There is no longer a need for preserving branch offset operands, as we no longer re-translate. Signed-off-by: Richard Henderson --- tcg/arm/tcg-target.inc.c | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) -- 2.17.2 Reviewed-by: Alex Bennée diff --git a/tcg/arm/tcg-target.inc.c b/tcg/arm/tcg-target.inc.c index 1142eb13ad..1651f00281 100644 --- a/tcg/arm/tcg-target.inc.c +++ b/tcg/arm/tcg-target.inc.c @@ -366,22 +366,6 @@ static inline void tcg_out_b(TCGContext *s, int cond, int32_t offset) (((offset - 8) >> 2) & 0x00ffffff)); } -static inline void tcg_out_b_noaddr(TCGContext *s, int cond) -{ - /* We pay attention here to not modify the branch target by masking - the corresponding bytes. This ensure that caches and memory are - kept coherent during retranslation. */ - tcg_out32(s, deposit32(*s->code_ptr, 24, 8, (cond << 4) | 0x0a)); -} - -static inline void tcg_out_bl_noaddr(TCGContext *s, int cond) -{ - /* We pay attention here to not modify the branch target by masking - the corresponding bytes. This ensure that caches and memory are - kept coherent during retranslation. */ - tcg_out32(s, deposit32(*s->code_ptr, 24, 8, (cond << 4) | 0x0b)); -} - static inline void tcg_out_bl(TCGContext *s, int cond, int32_t offset) { tcg_out32(s, (cond << 28) | 0x0b000000 | @@ -1082,7 +1066,7 @@ static inline void tcg_out_goto_label(TCGContext *s, int cond, TCGLabel *l) tcg_out_goto(s, cond, l->u.value_ptr); } else { tcg_out_reloc(s, s->code_ptr, R_ARM_PC24, l, 0); - tcg_out_b_noaddr(s, cond); + tcg_out_b(s, cond, 0); } } @@ -1628,7 +1612,7 @@ static void tcg_out_qemu_ld(TCGContext *s, const TCGArg *args, bool is64) /* This a conditional BL only to load a pointer within this opcode into LR for the slow path. We will not be using the value for a tail call. */ label_ptr = s->code_ptr; - tcg_out_bl_noaddr(s, COND_NE); + tcg_out_bl(s, COND_NE, 0); tcg_out_qemu_ld_index(s, opc, datalo, datahi, addrlo, addend); @@ -1760,7 +1744,7 @@ static void tcg_out_qemu_st(TCGContext *s, const TCGArg *args, bool is64) /* The conditional call must come last, as we're going to return here. */ label_ptr = s->code_ptr; - tcg_out_bl_noaddr(s, COND_NE); + tcg_out_bl(s, COND_NE, 0); add_qemu_ldst_label(s, false, oi, datalo, datahi, addrlo, addrhi, s->code_ptr, label_ptr); From patchwork Fri Nov 30 21:52: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: 152592 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp4167535ljp; Fri, 30 Nov 2018 13:53:45 -0800 (PST) X-Google-Smtp-Source: AFSGD/UlDRvlDd+Ry+HnwcN9JARg85o9o00paSdnREZq45OA4ubSDcGIBfmLALACzVyIhoG7MBR4 X-Received: by 2002:a0d:f845:: with SMTP id i66-v6mr7610589ywf.160.1543614825846; Fri, 30 Nov 2018 13:53:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543614825; cv=none; d=google.com; s=arc-20160816; b=Jo2YCZtXLclOuEb5cOSkLgMOWCS28P1DnMLNISSqsGTZYN5h7rKtC+SxXHEeZGe0cN hDw9T5/ox4HaEJKrWb9lVMh3iMPwNe/q1VCkF/QHO88HjjsRA/PYnNTV/4PrhvTCBYnn vGIDr/sKHxTLfgmiQ5GtVvHTHCn3z2y7IECvvP6xO/J3sPIVt6i6VM9iCKKveY9Q3B8C t0SOrfgdzRtGIJ0IO6kVGlFc9uuGVTvEtMqSjLll72e+i3bkwLyXsxcF5W5fyIjok8kl Pn5b3SjJ28JhWlA6h1ivssy2/uvmHXoOKMxuO2q7MhUrovEnRP1Su/kbQUPR0nYhRmeW uW2Q== 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=SdEJC75HoX+aaLFVYPRT91luz3tIvq+5jmKsSfMgW5w=; b=HDL50bvgu+L1kSpzb+gauuXgWZ4Djhkeq1PQG4vJLXPfvhe5l7m6oqPymB2v7F6355 IOt/TTxKoQAahDHPr98IZa2VE21wA6ZynRNO3gn+FSVHWExj9SAwtkxgapCMElHNXccA SEpkFeIYShzp5hjo7z0OFKjiEFPNZPneW0ysinZlvvtn+vkwmKOcGbzJypmwWS+Rkm/P LIel1vEOrvgd9KhFEAA5MYpw9D83Q2kGXuCC9myJQoH9ydXBno7++bx07PPLEn6wu7vL rVAVeO+WXsgbmy8usnCUnbfjDtVEK4IoMq18DCFPAwz6QTHEV2nmY2FR71oQmeYrV+Tj NGoQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=bBqYqc9e; 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 k74si3275083ywa.271.2018.11.30.13.53.45 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 30 Nov 2018 13:53:45 -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=bBqYqc9e; 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]:34735 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqjJ-0001Zm-5h for patch@linaro.org; Fri, 30 Nov 2018 16:53:45 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52569) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqiC-0007zl-Fk for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSqi9-0006qS-KR for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:36 -0500 Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]:36944) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSqi9-0006lu-EA for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:33 -0500 Received: by mail-pf1-x444.google.com with SMTP id y126so3440178pfb.4 for ; Fri, 30 Nov 2018 13:52: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=SdEJC75HoX+aaLFVYPRT91luz3tIvq+5jmKsSfMgW5w=; b=bBqYqc9eN4KuSEn8KaKm6OyqW0hOTSjHoQ78Z91gv0RKgrgV6Nv2dnVAbrT4DF2/JT N8b4gTDxHFKxzECCr1NciuWAZZgJoujrY5IoS96JMrjXGprihzHfaU2K83S9iSO6o1C4 y/rAMufZaA16X9zN38Uf4OtrDgohy9vZSAplQ= 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=SdEJC75HoX+aaLFVYPRT91luz3tIvq+5jmKsSfMgW5w=; b=TxntZEgHVsMfZUYgWbkanBQPv5MHHq+yUNKhGjPrgCPAxsNQXd0at3KfOnrXkeHNbo gg1t/5nUtmwl42oeG6IdV3GAG9fBi69KcG7Lntt6WLmaThXK0SGakOl1EaFgvdcGVHFH zmUvVz3irLSibomOfxz6toyYS/XAuCCoTsham3ym3AFWxKcRAkGGrTf6RWkeXIeP/eif EkL5yTlmwtsiPaIJK4UZQ3zVcPkHaWPIJzRQebsKy9p0zGEL6BRnT0DoHIOyII0YrAD6 74BWGO9DpEBCXitK3kNS7CZFPZ9H0q1za2FGiS9Z5JUyWCWbb572NBBKE6Jpts1HhXo4 uEgQ== X-Gm-Message-State: AA+aEWZqpRWZNQgpX33iTBBDnNJ379InA3Yjft1509YQwUQvM/amJ2gh t/jdxeZtIBR33U8azRVKT/z6qzlbB4Y= X-Received: by 2002:a63:561b:: with SMTP id k27mr6174371pgb.271.1543614752085; Fri, 30 Nov 2018 13:52:32 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-170-180.tukw.qwest.net. [97.113.170.180]) by smtp.gmail.com with ESMTPSA id a18sm6973967pgj.30.2018.11.30.13.52.31 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 13:52:31 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 13:52:12 -0800 Message-Id: <20181130215221.20554-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181130215221.20554-1-richard.henderson@linaro.org> References: <20181130215221.20554-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::444 Subject: [Qemu-devel] [PATCH v3 07/16] tcg/ppc: Fold away "noaddr" branch routines 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: alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" There is no longer a need for preserving branch offset operands, as we no longer re-translate. Signed-off-by: Richard Henderson --- tcg/ppc/tcg-target.inc.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) -- 2.17.2 Reviewed-by: Alex Bennée diff --git a/tcg/ppc/tcg-target.inc.c b/tcg/ppc/tcg-target.inc.c index c2f729ee8f..2e2a22f579 100644 --- a/tcg/ppc/tcg-target.inc.c +++ b/tcg/ppc/tcg-target.inc.c @@ -210,18 +210,6 @@ static void reloc_pc14(tcg_insn_unit *pc, tcg_insn_unit *target) *pc = (*pc & ~0xfffc) | reloc_pc14_val(pc, target); } -static inline void tcg_out_b_noaddr(TCGContext *s, int insn) -{ - unsigned retrans = *s->code_ptr & 0x3fffffc; - tcg_out32(s, insn | retrans); -} - -static inline void tcg_out_bc_noaddr(TCGContext *s, int insn) -{ - unsigned retrans = *s->code_ptr & 0xfffc; - tcg_out32(s, insn | retrans); -} - /* parse target specific constraints */ static const char *target_parse_constraint(TCGArgConstraint *ct, const char *ct_str, TCGType type) @@ -1179,11 +1167,11 @@ static void tcg_out_setcond(TCGContext *s, TCGType type, TCGCond cond, static void tcg_out_bc(TCGContext *s, int bc, TCGLabel *l) { if (l->has_value) { - tcg_out32(s, bc | reloc_pc14_val(s->code_ptr, l->u.value_ptr)); + bc |= reloc_pc14_val(s->code_ptr, l->u.value_ptr); } else { tcg_out_reloc(s, s->code_ptr, R_PPC_REL14, l, 0); - tcg_out_bc_noaddr(s, bc); } + tcg_out32(s, bc); } static void tcg_out_brcond(TCGContext *s, TCGCond cond, @@ -1771,7 +1759,7 @@ static void tcg_out_qemu_ld(TCGContext *s, const TCGArg *args, bool is_64) /* Load a pointer into the current opcode w/conditional branch-link. */ label_ptr = s->code_ptr; - tcg_out_bc_noaddr(s, BC | BI(7, CR_EQ) | BO_COND_FALSE | LK); + tcg_out32(s, BC | BI(7, CR_EQ) | BO_COND_FALSE | LK); rbase = TCG_REG_R3; #else /* !CONFIG_SOFTMMU */ @@ -1846,7 +1834,7 @@ static void tcg_out_qemu_st(TCGContext *s, const TCGArg *args, bool is_64) /* Load a pointer into the current opcode w/conditional branch-link. */ label_ptr = s->code_ptr; - tcg_out_bc_noaddr(s, BC | BI(7, CR_EQ) | BO_COND_FALSE | LK); + tcg_out32(s, BC | BI(7, CR_EQ) | BO_COND_FALSE | LK); rbase = TCG_REG_R3; #else /* !CONFIG_SOFTMMU */ @@ -2044,13 +2032,14 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, const TCGArg *args, case INDEX_op_br: { TCGLabel *l = arg_label(args[0]); + uint32_t insn = B; if (l->has_value) { - tcg_out_b(s, 0, l->u.value_ptr); + insn |= reloc_pc24_val(s->code_ptr, l->u.value_ptr); } else { tcg_out_reloc(s, s->code_ptr, R_PPC_REL24, l, 0); - tcg_out_b_noaddr(s, B); } + tcg_out32(s, insn); } break; case INDEX_op_ld8u_i32: From patchwork Fri Nov 30 21:52:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 152603 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp4175637ljp; Fri, 30 Nov 2018 14:03:21 -0800 (PST) X-Google-Smtp-Source: AFSGD/UZaqz8JzWjAoD0yJflUVc+Rvp1uQa4gif96H+ziAGuIVsDwslOHv43z38wQYRGwXVeT7Cg X-Received: by 2002:a25:f50d:: with SMTP id a13-v6mr7153903ybe.56.1543615401384; Fri, 30 Nov 2018 14:03:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543615401; cv=none; d=google.com; s=arc-20160816; b=nPC0auC8IDHSXQY94P2grPkHOYHZbo/ykwIweN2FtHamPRY9r13C6k+Dzcr8AMSZ7t YvbkY7CUt51SoWHtQ7EAENFF4T6eLPukRHRERScnPODGkKcmx9sarbJHDShndquU3TLU ndCRV6qmnN2fFD9/SYN91+N9aOz4meWT0cbccsXHq6M3mMIzKIKHX9r1Lggn6laoz+fA dXcQKC3EPWW0svAzDPn9syy/XN1qSFUpAYb65vOgmroT9NHV3JffENl+DmSaoClspyVa f5sEGFLzykhk8OneZzcAhEJv0xnwI0OIVjnpSdWzIAFFEhA1vhTaobsH/t7hdF35zJdV PCIA== 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=meIomQO1GtN3dMIndLu+UFeHsb6xbjxNIqoRJl4bs4M=; b=igLDHAd6iFrhaDUDlc6jSIyp4MWviOg+mpY8g1YMYE5XK7SYbdIqYh4HEg2K0lxXJ7 lN/PpmK60UXxxZuWFax6WpHhvf0J36PC/NLEHpoVL0MfHpvjdOHm8gnzAtZSwS5l/kWC SLtecvZMqXixTzJCvxpO/ElAjWdiViTS8z5Gzeuu1QhuyP31Ed3WPTFpcty/HESQkT1w MlE8MILV0/Twf+PqkiVg2oxNJM2E6/ZvQOAAmKNYqejC/3lEjNHGbWpNqNjphRp0KExP MlGDx/vUEpETAGUGcwMHt5dzQcMD/35/WxMZPWHVE92C8aWv+3RjUJbxDuXAaag6MvOQ i3Jg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=JR4ASTrd; 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 x131si3855561ywd.27.2018.11.30.14.03.21 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 30 Nov 2018 14:03:21 -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=JR4ASTrd; 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]:34794 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqsa-0003wX-OZ for patch@linaro.org; Fri, 30 Nov 2018 17:03:20 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52567) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqiC-0007zi-F2 for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSqiA-0006vo-Tn for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:36 -0500 Received: from mail-pg1-x543.google.com ([2607:f8b0:4864:20::543]:41099) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSqiA-0006tK-O9 for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:34 -0500 Received: by mail-pg1-x543.google.com with SMTP id 70so3049139pgh.8 for ; Fri, 30 Nov 2018 13:52: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=meIomQO1GtN3dMIndLu+UFeHsb6xbjxNIqoRJl4bs4M=; b=JR4ASTrdv+nh4SdxVNJz3aDFiriHArQBIgOYh0tCofkYO+l9q+QLuOphY+AlGXoDu+ 3+ADPDIgcSTyqlxTM/KzhxBkDXAKeqCNM5q3ixpPq1am5Zp+UuqQ/cTnQ7LjUNOL941m Je26snvROIh5sl07huJ6rbiBXLntouwMfAeoM= 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=meIomQO1GtN3dMIndLu+UFeHsb6xbjxNIqoRJl4bs4M=; b=Cb7amY84A04s5Qw5lfbZtn9yPHnApy9MQenA7yCO3HghvzcLzEMSFdyJH5ngA6RVvt fOmNjN5aJS/4C/KxTsjOTrarQgf9/ruWMqTI+tPgU1M2SN3De2PIMkEmqqA/t4n7g43o +EO91WLv6BnoF08kOGck4Gw6lC/LpuULAX+dhZRKXTsEp62BWydL6rRm7KoHYWzGzc8U 6pKUhhsX38+R+EX7JzVUbJtN/jfXPJdqK+vPPSvt0IRbv90zJfIt+h+RU9DdI2c1iD3I n4HODSyYfLoWNp5+mfRhp/toTYCwo8Kn7mYZ3aagswTCCpC7YuDPSUslfReDnnubEGaE rh+w== X-Gm-Message-State: AA+aEWbuYLvldxtRHIGyfKMotEPfGT1g0k7XDDfG56t+IGk9XMDTZ5lH B31JbOtzCjstwTkluP6yI5diAUuKapc= X-Received: by 2002:a63:9306:: with SMTP id b6mr5941075pge.36.1543614753448; Fri, 30 Nov 2018 13:52:33 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-170-180.tukw.qwest.net. [97.113.170.180]) by smtp.gmail.com with ESMTPSA id a18sm6973967pgj.30.2018.11.30.13.52.32 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 13:52:32 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 13:52:13 -0800 Message-Id: <20181130215221.20554-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181130215221.20554-1-richard.henderson@linaro.org> References: <20181130215221.20554-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::543 Subject: [Qemu-devel] [PATCH v3 08/16] tcg/s390: Remove retranslation code 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: alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" There is no longer a need for preserving branch offset operands, as we no longer re-translate. Signed-off-by: Richard Henderson --- tcg/s390/tcg-target.inc.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) -- 2.17.2 Reviewed-by: Alex Bennée diff --git a/tcg/s390/tcg-target.inc.c b/tcg/s390/tcg-target.inc.c index 17c435ade5..96c344142e 100644 --- a/tcg/s390/tcg-target.inc.c +++ b/tcg/s390/tcg-target.inc.c @@ -1329,13 +1329,11 @@ static void tgen_branch(TCGContext *s, int cc, TCGLabel *l) static void tgen_compare_branch(TCGContext *s, S390Opcode opc, int cc, TCGReg r1, TCGReg r2, TCGLabel *l) { - intptr_t off; + intptr_t off = 0; if (l->has_value) { off = l->u.value_ptr - s->code_ptr; } else { - /* We need to keep the offset unchanged for retranslation. */ - off = s->code_ptr[1]; tcg_out_reloc(s, s->code_ptr + 1, R_390_PC16DBL, l, 2); } @@ -1347,13 +1345,11 @@ static void tgen_compare_branch(TCGContext *s, S390Opcode opc, int cc, static void tgen_compare_imm_branch(TCGContext *s, S390Opcode opc, int cc, TCGReg r1, int i2, TCGLabel *l) { - tcg_target_long off; + tcg_target_long off = 0; if (l->has_value) { off = l->u.value_ptr - s->code_ptr; } else { - /* We need to keep the offset unchanged for retranslation. */ - off = s->code_ptr[1]; tcg_out_reloc(s, s->code_ptr + 1, R_390_PC16DBL, l, 2); } @@ -1696,7 +1692,6 @@ static void tcg_out_qemu_ld(TCGContext* s, TCGReg data_reg, TCGReg addr_reg, base_reg = tcg_out_tlb_read(s, addr_reg, opc, mem_index, 1); - /* We need to keep the offset unchanged for retranslation. */ tcg_out16(s, RI_BRC | (S390_CC_NE << 4)); label_ptr = s->code_ptr; s->code_ptr += 1; @@ -1724,7 +1719,6 @@ static void tcg_out_qemu_st(TCGContext* s, TCGReg data_reg, TCGReg addr_reg, base_reg = tcg_out_tlb_read(s, addr_reg, opc, mem_index, 0); - /* We need to keep the offset unchanged for retranslation. */ tcg_out16(s, RI_BRC | (S390_CC_NE << 4)); label_ptr = s->code_ptr; s->code_ptr += 1; From patchwork Fri Nov 30 21:52:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 152594 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp4168896ljp; Fri, 30 Nov 2018 13:55:34 -0800 (PST) X-Google-Smtp-Source: AFSGD/UhrDw3ohrqo0Ixmz+EQIzjHNlMGBK3/HSDWt0pSWufLfZ9Gf7hZopl4JJ9/oV99Lp8Ealz X-Received: by 2002:a25:bd0b:: with SMTP id f11-v6mr7209972ybk.48.1543614934184; Fri, 30 Nov 2018 13:55:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543614934; cv=none; d=google.com; s=arc-20160816; b=maApISIdJRCgsF0CDlFaEdmtdDx+mHdHIegPYLk4NPiEPeHw6FKHPwSybsVp8LYiji iA6aJSHezoMNE8dqavfFG6KsjCdrc5B09jqR7aHXXXMc4PfQgORXJnssEGM8A+WN8yup SUnhtFF9oRfoP24S0zLQ4+we8ENrMVbXvthEpqSnDbHf5ApLS8qteThe1djuHxSjOqHD lvmcUhvqUtWr7Yk3mqkOtVPSGr9HUnX9hC7xzSaP4OE6ylzr1ECGVP+XexmMdzUzrfmT V2lVIQp3mk0TVAoH42F6r+OHsNqwdrER1XgQqG342ocwuC3D7U6nM8ZnwYUL6SMCqHpV yG6A== 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=X3YLeFs2jpUp2Y5o6LtVDE7iCuweZxuSy32euV7GYJ4=; b=CmXIrYVRnNovm9mdZorm+mumVH97jRUAiJMTpjIADwzm5nDC2Esc4yn1yLISKBhjva j/+1WGyV9iX6hS1nGOTFckD10x50PEWdWsa2HUb1duH5UlsmHwtJO7E8v96Q1z3Y1OEf b7UQwwJW6kBCP8DuLXHOI9ZpqOACi+nbD3+aMfZatgnkuJu4PI2hhgwTaMBUqigaxN9d 6bNDPcWvg8qYufAArcRHhLzqNPtGWAhka62CTflQmkMRitqeHc6EVvz+6GoPwVBh1Ll0 EwG+18w57M1UctjIFmSQSglfNrxpdIKPzTog0Tw6oTQrfhz4QGHXl8l8ZBGzh9RqRI7e KA7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=gb6JyEWU; 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 a132si4045576ywc.360.2018.11.30.13.55.33 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 30 Nov 2018 13:55:34 -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=gb6JyEWU; 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]:34749 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSql3-0003Mk-KK for patch@linaro.org; Fri, 30 Nov 2018 16:55:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52587) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqiD-00080O-5L for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSqiC-00073H-7z for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:37 -0500 Received: from mail-pg1-x542.google.com ([2607:f8b0:4864:20::542]:44116) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSqiC-0006zg-07 for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:36 -0500 Received: by mail-pg1-x542.google.com with SMTP id t13so3036117pgr.11 for ; Fri, 30 Nov 2018 13:52:35 -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=X3YLeFs2jpUp2Y5o6LtVDE7iCuweZxuSy32euV7GYJ4=; b=gb6JyEWUTFLnTOBLXftOkvOebHpzjvyRAKU5wX1sDYz/OKcMAzWi9DQcdukdUoYXVH Bpq9eMUw+ha4JVE/Wv/eK4WPTVD2bwCAjzOd6kyi2SU8ue7zoAbcA0rlBu/Bdnxjo9Im pgLGSQe9WMqZNrnBRhAG/1ZBQa6ryrzVxei14= 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=X3YLeFs2jpUp2Y5o6LtVDE7iCuweZxuSy32euV7GYJ4=; b=hcOa5Bg/q9Yi1nuDBmWu7ujmO0/VaieWVMfEfnv7kx+eUXcbX9u9XcYqwsEs2JIBrf 73T6v7adHhAqBjDeDCSIk/+pCN8YIa4siiZa9jYUVyQkvEJRZoqBl5PXMgud4WKzBXIP 8jXew8deUwuKG8LbnSv0bZ80yr7rTPnMarqFg7WTaLbV7sMs9dn7mfVuIiARCaU+E1vz DRZWViP07o9Yplqd+JW9nApZUY90oEzQulTfYmnIm6mFcPdaHJ7g3YxT+uC6ohopFaaT Dc6MUtsvfOWGzYhRDHW4Co7Mr+WMDyDDh45sWlDsq/NgfRb96+zST4/3jLaZvpxX8GcI OQmQ== X-Gm-Message-State: AA+aEWYt4/y2HW1jiTzExuKJJTIs5lumzg1+iS2ZiGFKeTQZYYOQ5aUr rNL9GEW94S6nfjpMf5q2o9bI/i2vEo4= X-Received: by 2002:a63:f241:: with SMTP id d1mr6230166pgk.2.1543614754603; Fri, 30 Nov 2018 13:52:34 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-170-180.tukw.qwest.net. [97.113.170.180]) by smtp.gmail.com with ESMTPSA id a18sm6973967pgj.30.2018.11.30.13.52.33 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 13:52:33 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 13:52:14 -0800 Message-Id: <20181130215221.20554-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181130215221.20554-1-richard.henderson@linaro.org> References: <20181130215221.20554-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::542 Subject: [Qemu-devel] [PATCH v3 09/16] tcg/sparc: Remove retranslation code 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: alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" There is no longer a need for preserving branch offset operands, as we no longer re-translate. Signed-off-by: Richard Henderson --- tcg/sparc/tcg-target.inc.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) -- 2.17.2 Reviewed-by: Alex Bennée diff --git a/tcg/sparc/tcg-target.inc.c b/tcg/sparc/tcg-target.inc.c index 04bdc3df5e..671a04c54b 100644 --- a/tcg/sparc/tcg-target.inc.c +++ b/tcg/sparc/tcg-target.inc.c @@ -639,13 +639,11 @@ static void tcg_out_bpcc0(TCGContext *s, int scond, int flags, int off19) static void tcg_out_bpcc(TCGContext *s, int scond, int flags, TCGLabel *l) { - int off19; + int off19 = 0; if (l->has_value) { off19 = INSN_OFF19(tcg_pcrel_diff(s, l->u.value_ptr)); } else { - /* Make sure to preserve destinations during retranslation. */ - off19 = *s->code_ptr & INSN_OFF19(-1); tcg_out_reloc(s, s->code_ptr, R_SPARC_WDISP19, l, 0); } tcg_out_bpcc0(s, scond, flags, off19); @@ -685,13 +683,11 @@ static void tcg_out_brcond_i64(TCGContext *s, TCGCond cond, TCGReg arg1, { /* For 64-bit signed comparisons vs zero, we can avoid the compare. */ if (arg2 == 0 && !is_unsigned_cond(cond)) { - int off16; + int off16 = 0; if (l->has_value) { off16 = INSN_OFF16(tcg_pcrel_diff(s, l->u.value_ptr)); } else { - /* Make sure to preserve destinations during retranslation. */ - off16 = *s->code_ptr & INSN_OFF16(-1); tcg_out_reloc(s, s->code_ptr, R_SPARC_WDISP16, l, 0); } tcg_out32(s, INSN_OP(0) | INSN_OP2(3) | BPR_PT | INSN_RS1(arg1) From patchwork Fri Nov 30 21:52:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 152606 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp4178728ljp; Fri, 30 Nov 2018 14:06:14 -0800 (PST) X-Google-Smtp-Source: AFSGD/WCLcMR5O26BlC9cm/4UeJvUaYmf8+e5FZ7/ufYOT6izhDqQV/Af4f70gWGLP6zWRent6R1 X-Received: by 2002:a25:7e04:: with SMTP id z4-v6mr3654225ybc.118.1543615574301; Fri, 30 Nov 2018 14:06:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543615574; cv=none; d=google.com; s=arc-20160816; b=BjnFPIXqtTU4QaeHNKZZa66qI79iQe06qYPjZGijMtC+6SXsYgNpBWyxedvru1BYPK lP4qvGyRoCDT7pI++OkzPlY+a/1OCTC1bsB3WOSAJmoNOe7pz89ZiZHXKuMkRnOThbyE vUeAFAhp04K6pYlIyVQ3GwvIpIR9ebOp9o60OU3mvMVopTzDg2WxKhrLjSdy+eB5T63h 60nWcypDb+HpinoLTHGEbIP/fbhCaQrul71nXS8CN/v3UJKEvEQVMCobGc5r1wRt4DmS UGXfS8t5zGRATzIqAbVz57ot4Hl0sqVMt86O4/VWXoaBOSshNx4uGZFdL8h6WuMbVpFq mXWA== 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=ic9yGA2IXubLUWfhTU5XIR+gEPgnKoDxdXyZYSEXZTY=; b=ARjMSfNFl0TXXF1JiSZFIY/lBW3ZBHV9Z/nFyZJ/0epDRuDhLyYi6fSxIDd6q3GCjr 5CxWRM8DLHB7bLsKu1/0kjUXXcLHIoMLumlKA6Ah3+FlBtWHWm+n23tWH2e034pGp0Ep mg3Pi5BaQpkLKs71qgicz2ZbCphH1VhxxGkZ3pH7NY953w7m0jA7HIbPBQv1QEbubXZt 316Z6Noe8qWDJ38rqkNbZuTsOvAkdY7U9NJ+vdJSAmskj3vduUs1yNpQLx6lwl5LQsNh yJ6dQ3YdnHF9vowQmRaxvFhd+p66n2WzZgtWLidLdfvQQ+fBAxNOyYd1PkCKOh8W8qTY pixA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=Qx2z6GhK; 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 84si3843988ywo.466.2018.11.30.14.06.14 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 30 Nov 2018 14:06: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=Qx2z6GhK; 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]:34816 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqvN-00065y-Kh for patch@linaro.org; Fri, 30 Nov 2018 17:06:13 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52603) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqiE-00081Z-7z for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSqiD-00078G-FH for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:38 -0500 Received: from mail-pl1-x643.google.com ([2607:f8b0:4864:20::643]:45290) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSqiD-00074K-9c for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:37 -0500 Received: by mail-pl1-x643.google.com with SMTP id a14so3408303plm.12 for ; Fri, 30 Nov 2018 13:52:37 -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=ic9yGA2IXubLUWfhTU5XIR+gEPgnKoDxdXyZYSEXZTY=; b=Qx2z6GhKoY/vdSNyKgeQw8eF38a6Uv46Bm47oIrTrtnPMLUJ/pT7lTo2YFIES43jvL lk5CZ4x+9x6xWysXJb7/tSKTomO/o6j20wdb61inoI4pa9jt4Z21Cuuj5JYJrycG7Z6x 7OEOzF2o71anqi6aAIAA3J4A/gs3Nk38p8sxs= 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=ic9yGA2IXubLUWfhTU5XIR+gEPgnKoDxdXyZYSEXZTY=; b=C+fMR3Bwn5igy3YBZW2TqHRT9W22Pd3OoH1h1Y3ISoQmkjRQgPMHniVYj8/mekYiR+ +uEx9d90gNpGfHCor80Xrk1OwasQilBTps7Juz4toq3XHMy71syX5AOsjV/gs7FvgX5i 9hdF5goYUQkIhJOM45OiWvHAPYkXi3Z4xySMG+Oprz+ymmF95h8VhjnfqRbdsP6OBIj+ nyMUDFGPrfDIBjwxwnJcCV5An36RRuKN6qHHNt0N7eMQ4WzAJHargxUNpI/w1rq7rTSC Cl2dHPm4cGeHv4mhYeqrFX8qv0DlDPVeHPzD/Dq+/k6/065AzQlujOItz0qA7agsutON FRZw== X-Gm-Message-State: AA+aEWYz2ZATEwwBxhou9Kb9EavnKcUvFdfasjFpNl4g71ulCRXnZ8As 8wiYmxNKXUp8tnWpWV101+S/EaRZAtQ= X-Received: by 2002:a17:902:8d8e:: with SMTP id v14mr7203167plo.133.1543614755937; Fri, 30 Nov 2018 13:52:35 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-170-180.tukw.qwest.net. [97.113.170.180]) by smtp.gmail.com with ESMTPSA id a18sm6973967pgj.30.2018.11.30.13.52.34 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 13:52:35 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 13:52:15 -0800 Message-Id: <20181130215221.20554-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181130215221.20554-1-richard.henderson@linaro.org> References: <20181130215221.20554-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::643 Subject: [Qemu-devel] [PATCH v3 10/16] tcg/mips: Remove retranslation code 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: alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" There is no longer a need for preserving branch offset operands, as we no longer re-translate. Signed-off-by: Richard Henderson --- tcg/mips/tcg-target.inc.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) -- 2.17.2 Reviewed-by: Alex Bennée diff --git a/tcg/mips/tcg-target.inc.c b/tcg/mips/tcg-target.inc.c index cff525373b..e21cb1ae28 100644 --- a/tcg/mips/tcg-target.inc.c +++ b/tcg/mips/tcg-target.inc.c @@ -483,12 +483,7 @@ static inline void tcg_out_opc_bf64(TCGContext *s, MIPSInsn opc, MIPSInsn opm, static inline void tcg_out_opc_br(TCGContext *s, MIPSInsn opc, TCGReg rt, TCGReg rs) { - /* We pay attention here to not modify the branch target by reading - the existing value and using it again. This ensure that caches and - memory are kept coherent during retranslation. */ - uint16_t offset = (uint16_t)*s->code_ptr; - - tcg_out_opc_imm(s, opc, rt, rs, offset); + tcg_out_opc_imm(s, opc, rt, rs, 0); } /* From patchwork Fri Nov 30 21:52:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 152605 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp4176056ljp; Fri, 30 Nov 2018 14:03:43 -0800 (PST) X-Google-Smtp-Source: AFSGD/Vh167GB13nQhI7YZzNMi4art2GhnrIy5qN2zCYjdSfnZPM6hJbei9/1toOAn7hZJ/NEKeR X-Received: by 2002:a81:33c4:: with SMTP id z187mr7617262ywz.294.1543615423654; Fri, 30 Nov 2018 14:03:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543615423; cv=none; d=google.com; s=arc-20160816; b=N/XmEGHXuZdI5TdInQkBBKlo1FvFUyER6itcB256gpU03biAqFFtWFd0p8LaR5Wu5V d5RfLyf05ADILkJJU6VQtOJR23wOxmPy55H8I0asNbQ8VUGNAo+S+xi3wX7DMBRLWGng 1FQIef5fgpi+KZq2p6Q9HjTZwg8ZZv7K3QR5x7jGNXBy58fTQ40uCt8Rwoda2nhTax9T MNapdPV2q6o5SlKuIdZJvJktZt9JcT08Cyd0oluIerko+wgHdQISIHcJzEFKuO9H0vRJ pTZMNiypispIvPhc1+kzCV6NmH73xp74nzhR4P8FbnIgr0iVWWSHK6hshJUG+d9CI5c6 ZJqA== 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=bIJsO02EdAHYmyrYupqznrCBCKJ/dVp4YRl5j0gjjEg=; b=ednX/YAVtvR9GP85N0rIMe7SGsjVCtb6HGG87Mx/xHwZgTP7q9pJ/3yylTxxnr2MpZ McDBUbF3xcIwzcLi7gHDrwsKHRiGU2NTD/fy+/6DElKhqHVUn4LoUuvtTh47e7GXNSsk RXb8w74IFFJHnqhpercppQDjiCD5ocUh4UG4kYq6M+/EyUnfbO6+yKQySQePbau6K+D3 8YqUZfp16IPs7xSFjfX5idFqGLXykytJl40MuZfMtSaucXWjGGUAVughK8b8LHT3d05M 9kj4w61PWve/NXIsrZ+GHuDb8Zeg7Su4zUYb0Hvf/vwAOm8NorNgdb8/5mhOHfIuCCz2 Wy1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=gNx+yLzA; 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 138si3845092ywq.76.2018.11.30.14.03.43 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 30 Nov 2018 14:03:43 -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=gNx+yLzA; 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]:34795 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqsx-0003yV-2H for patch@linaro.org; Fri, 30 Nov 2018 17:03:43 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52631) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqiG-00083i-9W for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSqiE-0007Di-Vk for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:40 -0500 Received: from mail-pf1-x441.google.com ([2607:f8b0:4864:20::441]:33624) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSqiE-0007AU-Ko for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:38 -0500 Received: by mail-pf1-x441.google.com with SMTP id c123so3445730pfb.0 for ; Fri, 30 Nov 2018 13:52:38 -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=bIJsO02EdAHYmyrYupqznrCBCKJ/dVp4YRl5j0gjjEg=; b=gNx+yLzA7M6mDDDUPfXCtDO62Zk3CoklfHOItl/Q2dTcRGEAJ4QQ10LzoavjUiAuGE eflsPneU5XyhQwB87FosfkckzBZX3s5klnc0UkWmrrHYLIVWhy0p8aOTHy13eRedgw68 sI5yyiq1OwGQQwhFtpfqpzfiV7BDWiAnW26EA= 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=bIJsO02EdAHYmyrYupqznrCBCKJ/dVp4YRl5j0gjjEg=; b=r8tunDCr3XXQCMlF9D4k0Mtdr6LhGTLGtgi9grh0XRrLQLaVLMoEBrT8db9N98VXbH EceU/JffDx+qi2HlWFe0lPd+IOM3+0vZiiIgBEHyFKcdHLjX9+05HokcJkpKKf24FPFI jm3I9pkLtHPmSjWvRvzt1fFFNgcQsZXEbL0AwdO/RFie9oialiGW8aT1/z8Ot9US11P8 C1+W3kauyrbguh/FyjpEeBnrsK2SLdufbm/auT5+XELs7dwMdJqKh+aF2KUqCMHQnJNl LJwjgS1sFD4IbjuxtwS8g7M++ZlauZWIVy/jiM247Ie6/dWJL5SF3TWW1IcOyQGXn77E KxfA== X-Gm-Message-State: AA+aEWbM5uz3gEK/t3BxKNARVQbfGaPOf6faKE8iD1+8a3KyNGJaXewO 7nbTL7w/rTLsWScUgLc8K4qs5fr+eWM= X-Received: by 2002:a63:1c09:: with SMTP id c9mr6124301pgc.200.1543614757112; Fri, 30 Nov 2018 13:52:37 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-170-180.tukw.qwest.net. [97.113.170.180]) by smtp.gmail.com with ESMTPSA id a18sm6973967pgj.30.2018.11.30.13.52.35 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 13:52:36 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 13:52:16 -0800 Message-Id: <20181130215221.20554-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181130215221.20554-1-richard.henderson@linaro.org> References: <20181130215221.20554-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::441 Subject: [Qemu-devel] [PATCH v3 11/16] tcg: Return success from patch_reloc 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: alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This will move the assert for success from within (subroutines of) patch_reloc into the callers. It will also let new code do something different when a relocation is out of range. For the moment, all backends are trivially converted to return true. Signed-off-by: Richard Henderson --- tcg/aarch64/tcg-target.inc.c | 3 ++- tcg/arm/tcg-target.inc.c | 3 ++- tcg/i386/tcg-target.inc.c | 3 ++- tcg/mips/tcg-target.inc.c | 3 ++- tcg/ppc/tcg-target.inc.c | 3 ++- tcg/s390/tcg-target.inc.c | 3 ++- tcg/sparc/tcg-target.inc.c | 5 +++-- tcg/tcg.c | 8 +++++--- tcg/tci/tcg-target.inc.c | 3 ++- 9 files changed, 22 insertions(+), 12 deletions(-) -- 2.17.2 Reviewed-by: Alex Bennée diff --git a/tcg/aarch64/tcg-target.inc.c b/tcg/aarch64/tcg-target.inc.c index 28de0226fb..16f08c59c4 100644 --- a/tcg/aarch64/tcg-target.inc.c +++ b/tcg/aarch64/tcg-target.inc.c @@ -94,7 +94,7 @@ static inline void reloc_pc19(tcg_insn_unit *code_ptr, tcg_insn_unit *target) *code_ptr = deposit32(*code_ptr, 5, 19, offset); } -static inline void patch_reloc(tcg_insn_unit *code_ptr, int type, +static inline bool patch_reloc(tcg_insn_unit *code_ptr, int type, intptr_t value, intptr_t addend) { tcg_debug_assert(addend == 0); @@ -109,6 +109,7 @@ static inline void patch_reloc(tcg_insn_unit *code_ptr, int type, default: tcg_abort(); } + return true; } #define TCG_CT_CONST_AIMM 0x100 diff --git a/tcg/arm/tcg-target.inc.c b/tcg/arm/tcg-target.inc.c index 1651f00281..deefa20fbf 100644 --- a/tcg/arm/tcg-target.inc.c +++ b/tcg/arm/tcg-target.inc.c @@ -193,7 +193,7 @@ static inline void reloc_pc24(tcg_insn_unit *code_ptr, tcg_insn_unit *target) *code_ptr = (*code_ptr & ~0xffffff) | (offset & 0xffffff); } -static void patch_reloc(tcg_insn_unit *code_ptr, int type, +static bool patch_reloc(tcg_insn_unit *code_ptr, int type, intptr_t value, intptr_t addend) { tcg_debug_assert(addend == 0); @@ -229,6 +229,7 @@ static void patch_reloc(tcg_insn_unit *code_ptr, int type, } else { g_assert_not_reached(); } + return true; } #define TCG_CT_CONST_ARM 0x100 diff --git a/tcg/i386/tcg-target.inc.c b/tcg/i386/tcg-target.inc.c index 436195894b..5c88f1f36b 100644 --- a/tcg/i386/tcg-target.inc.c +++ b/tcg/i386/tcg-target.inc.c @@ -167,7 +167,7 @@ static bool have_lzcnt; static tcg_insn_unit *tb_ret_addr; -static void patch_reloc(tcg_insn_unit *code_ptr, int type, +static bool patch_reloc(tcg_insn_unit *code_ptr, int type, intptr_t value, intptr_t addend) { value += addend; @@ -191,6 +191,7 @@ static void patch_reloc(tcg_insn_unit *code_ptr, int type, default: tcg_abort(); } + return true; } #if TCG_TARGET_REG_BITS == 64 diff --git a/tcg/mips/tcg-target.inc.c b/tcg/mips/tcg-target.inc.c index e21cb1ae28..a06ff257fa 100644 --- a/tcg/mips/tcg-target.inc.c +++ b/tcg/mips/tcg-target.inc.c @@ -168,12 +168,13 @@ static inline void reloc_26(tcg_insn_unit *pc, tcg_insn_unit *target) *pc = deposit32(*pc, 0, 26, reloc_26_val(pc, target)); } -static void patch_reloc(tcg_insn_unit *code_ptr, int type, +static bool patch_reloc(tcg_insn_unit *code_ptr, int type, intptr_t value, intptr_t addend) { tcg_debug_assert(type == R_MIPS_PC16); tcg_debug_assert(addend == 0); reloc_pc16(code_ptr, (tcg_insn_unit *)value); + return true; } #define TCG_CT_CONST_ZERO 0x100 diff --git a/tcg/ppc/tcg-target.inc.c b/tcg/ppc/tcg-target.inc.c index 2e2a22f579..860b0d36e1 100644 --- a/tcg/ppc/tcg-target.inc.c +++ b/tcg/ppc/tcg-target.inc.c @@ -513,7 +513,7 @@ static const uint32_t tcg_to_isel[] = { [TCG_COND_GTU] = ISEL | BC_(7, CR_GT), }; -static void patch_reloc(tcg_insn_unit *code_ptr, int type, +static bool patch_reloc(tcg_insn_unit *code_ptr, int type, intptr_t value, intptr_t addend) { tcg_insn_unit *target; @@ -548,6 +548,7 @@ static void patch_reloc(tcg_insn_unit *code_ptr, int type, default: g_assert_not_reached(); } + return true; } static void tcg_out_mem_long(TCGContext *s, int opi, int opx, TCGReg rt, diff --git a/tcg/s390/tcg-target.inc.c b/tcg/s390/tcg-target.inc.c index 96c344142e..68a4c60394 100644 --- a/tcg/s390/tcg-target.inc.c +++ b/tcg/s390/tcg-target.inc.c @@ -366,7 +366,7 @@ static void * const qemu_st_helpers[16] = { static tcg_insn_unit *tb_ret_addr; uint64_t s390_facilities; -static void patch_reloc(tcg_insn_unit *code_ptr, int type, +static bool patch_reloc(tcg_insn_unit *code_ptr, int type, intptr_t value, intptr_t addend) { intptr_t pcrel2; @@ -393,6 +393,7 @@ static void patch_reloc(tcg_insn_unit *code_ptr, int type, default: g_assert_not_reached(); } + return true; } /* parse target specific constraints */ diff --git a/tcg/sparc/tcg-target.inc.c b/tcg/sparc/tcg-target.inc.c index 671a04c54b..cadda770c4 100644 --- a/tcg/sparc/tcg-target.inc.c +++ b/tcg/sparc/tcg-target.inc.c @@ -291,7 +291,7 @@ static inline int check_fit_i32(int32_t val, unsigned int bits) # define check_fit_ptr check_fit_i32 #endif -static void patch_reloc(tcg_insn_unit *code_ptr, int type, +static bool patch_reloc(tcg_insn_unit *code_ptr, int type, intptr_t value, intptr_t addend) { uint32_t insn = *code_ptr; @@ -328,12 +328,13 @@ static void patch_reloc(tcg_insn_unit *code_ptr, int type, /* Note that we're abusing this reloc type for our own needs. */ code_ptr[0] = deposit32(code_ptr[0], 0, 22, value >> 10); code_ptr[1] = deposit32(code_ptr[1], 0, 10, value); - return; + return true; default: g_assert_not_reached(); } *code_ptr = insn; + return true; } /* parse target specific constraints */ diff --git a/tcg/tcg.c b/tcg/tcg.c index e85133ef05..54f1272187 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -66,7 +66,7 @@ static void tcg_target_init(TCGContext *s); static const TCGTargetOpDef *tcg_target_op_def(TCGOpcode); static void tcg_target_qemu_prologue(TCGContext *s); -static void patch_reloc(tcg_insn_unit *code_ptr, int type, +static bool patch_reloc(tcg_insn_unit *code_ptr, int type, intptr_t value, intptr_t addend); /* The CIE and FDE header definitions will be common to all hosts. */ @@ -268,7 +268,8 @@ static void tcg_out_reloc(TCGContext *s, tcg_insn_unit *code_ptr, int type, /* FIXME: This may break relocations on RISC targets that modify instruction fields in place. The caller may not have written the initial value. */ - patch_reloc(code_ptr, type, l->u.value, addend); + bool ok = patch_reloc(code_ptr, type, l->u.value, addend); + tcg_debug_assert(ok); } else { /* add a new relocation entry */ r = tcg_malloc(sizeof(TCGRelocation)); @@ -288,7 +289,8 @@ static void tcg_out_label(TCGContext *s, TCGLabel *l, tcg_insn_unit *ptr) tcg_debug_assert(!l->has_value); for (r = l->u.first_reloc; r != NULL; r = r->next) { - patch_reloc(r->ptr, r->type, value, r->addend); + bool ok = patch_reloc(r->ptr, r->type, value, r->addend); + tcg_debug_assert(ok); } l->has_value = 1; diff --git a/tcg/tci/tcg-target.inc.c b/tcg/tci/tcg-target.inc.c index 62ed097254..0015a98485 100644 --- a/tcg/tci/tcg-target.inc.c +++ b/tcg/tci/tcg-target.inc.c @@ -369,7 +369,7 @@ static const char *const tcg_target_reg_names[TCG_TARGET_NB_REGS] = { }; #endif -static void patch_reloc(tcg_insn_unit *code_ptr, int type, +static bool patch_reloc(tcg_insn_unit *code_ptr, int type, intptr_t value, intptr_t addend) { /* tcg_out_reloc always uses the same type, addend. */ @@ -381,6 +381,7 @@ static void patch_reloc(tcg_insn_unit *code_ptr, int type, } else { tcg_patch64(code_ptr, value); } + return true; } /* Parse target specific constraints. */ From patchwork Fri Nov 30 21:52:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 152599 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp4171937ljp; Fri, 30 Nov 2018 13:59:58 -0800 (PST) X-Google-Smtp-Source: AFSGD/X4g18anPgHk1+LTBuxTAG+rzbO4589odrQ0d/fj2YsqNv8WtSfF4y7HNVcAn1ph51ecgPg X-Received: by 2002:a25:6cc1:: with SMTP id h184-v6mr7097820ybc.33.1543615198102; Fri, 30 Nov 2018 13:59:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543615198; cv=none; d=google.com; s=arc-20160816; b=cGaFaUEl9OcNCauyaWIfYJWF8AH7etbjsBSSlgqV4MtYL7ThZJC28Mpdtq8+QTZjLc y1hwDwfk/3nvKEm9Aq6j6N+rQAOu2YJZ9DJl1sJpKOsQKOhDI9FeXYQ5vJKue8dv8Zz2 CGFFhtYVJJ729vsw3IO8VDU/Lpks+wxviWek/kmZdIZ7j3QRMoZkdoYDm7F8THU/w7xE 9J/bwQ+4vMLh8C4eg5BTuC2BrMCExtEkqqEjuKMQfJF9gf5mEgLzij0tCkQ9OSs4/ka3 Uu6wHs3Y7aQVIZ+zyR6MLpElo07GW0SocG3dOvv8Legf5rw8v7RgGTnBQ9xInb1quCLo txZQ== 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=GOgCwhgioTfHog8ldoFAvX8MpaX1vaR4nHbQUwijngY=; b=ftmaZXopyv028m0+AZwR5nItt1jRZv0ShDLZW8VlVpZwXuELXoHSJNVD/hj6xBM8QB SqxidkVjBlghgrdz/oHsktNcbbuA9YULcessEX1gbkapV20F5/Cchhp4onHMMTYdjE0/ wT189OE6x6UrzG+czCFZihcRnGAb7UWzmirGm2QOhcWahBA8moVpBNW/2NSIfQkzEhev 36qax3M9tl4GHFIrkY1XUst/7dOY+40gjaq9+aGt8YjBleqoIRdBOnIN8MVeRX5N27SA NJjRE0uCvgGJuFOY/nbeva7/m95Q88qN4GR4owy8CekcVcnli/Dmm7nLUShLor0hbKgf kHaA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=MrRugxC9; 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 n141-v6si3798425yba.72.2018.11.30.13.59.57 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 30 Nov 2018 13:59:58 -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=MrRugxC9; 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]:34769 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqpJ-0008RW-Gl for patch@linaro.org; Fri, 30 Nov 2018 16:59:57 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52639) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqiG-00084J-TV for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSqiG-0007JR-19 for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:40 -0500 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]:32815) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSqiF-0007FD-S4 for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:39 -0500 Received: by mail-pf1-x432.google.com with SMTP id c123so3445760pfb.0 for ; Fri, 30 Nov 2018 13:52:39 -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=GOgCwhgioTfHog8ldoFAvX8MpaX1vaR4nHbQUwijngY=; b=MrRugxC9vNXjs4tZMLfEqwLGi4bN/YaVCoO1l8fBe5EX3wA8xf6qLpeGOSJyS5eivK /MASbkwqwRmpXUnoSA41mR8AA2KlTuQ+JE1/LhxBUpk2Zm+bNsMEq//7p6IVMyyMgv0n mP3gfJEGj6Caf1smRqvt1cKx3D6XopF4+EBgw= 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=GOgCwhgioTfHog8ldoFAvX8MpaX1vaR4nHbQUwijngY=; b=kElnswYJIMKimkQ0Xh4RFQbmLnIJBwMAbju613c9DieukSpaOFNVKHUcjsR9tDyFFY qdw7eACvYHdH+wp5cY5tqtkA/d3lFqZLoDW0r43ys0rj3QuMfQRGRta9Tc40A2O12a9o ZrLi+H/OURr4V/QLsg4TtlbbEyJcPUBBFRB4nQ31SQc5MP035vCQ7yc/xDNuBD6S2Rkb zLg+4l/HWu8BhFc1Wmj2dBakmHs93RUliUWfpZYGgqrWFjCcBPPAtOQKiuDAKJmA6RUs KUv5XVQFCQ4W2jhH9aJ29CZRuq9xgb26SnAKhb6vPr6PcX6qy8VV0AH8wvT+t5g0V1Po 2l/w== X-Gm-Message-State: AA+aEWZ34equ2oq7zFP5X3aqqpSH4imV5ELbOBkMBABamuiTxzH/5S2v AyfuRrgXvohyRuncAjYcLLlaMJ/rMSo= X-Received: by 2002:a63:9402:: with SMTP id m2mr5940328pge.93.1543614758349; Fri, 30 Nov 2018 13:52:38 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-170-180.tukw.qwest.net. [97.113.170.180]) by smtp.gmail.com with ESMTPSA id a18sm6973967pgj.30.2018.11.30.13.52.37 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 13:52:37 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 13:52:17 -0800 Message-Id: <20181130215221.20554-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181130215221.20554-1-richard.henderson@linaro.org> References: <20181130215221.20554-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::432 Subject: [Qemu-devel] [PATCH v3 12/16] tcg/i386: Return false on failure from patch_reloc 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: alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Richard Henderson --- tcg/i386/tcg-target.inc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.17.2 Reviewed-by: Alex Bennée diff --git a/tcg/i386/tcg-target.inc.c b/tcg/i386/tcg-target.inc.c index 5c88f1f36b..28192f4608 100644 --- a/tcg/i386/tcg-target.inc.c +++ b/tcg/i386/tcg-target.inc.c @@ -175,7 +175,7 @@ static bool patch_reloc(tcg_insn_unit *code_ptr, int type, case R_386_PC32: value -= (uintptr_t)code_ptr; if (value != (int32_t)value) { - tcg_abort(); + return false; } /* FALLTHRU */ case R_386_32: @@ -184,7 +184,7 @@ static bool patch_reloc(tcg_insn_unit *code_ptr, int type, case R_386_PC8: value -= (uintptr_t)code_ptr; if (value != (int8_t)value) { - tcg_abort(); + return false; } tcg_patch8(code_ptr, value); break; From patchwork Fri Nov 30 21:52:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 152607 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp4181707ljp; Fri, 30 Nov 2018 14:09:08 -0800 (PST) X-Google-Smtp-Source: AFSGD/WGeGkk8Rz3qDVxviUk4tizb8jUW7pX+6Yw2wIm2rIxvQ0aYroNLMi2QdGooin4QcWW172l X-Received: by 2002:a25:910f:: with SMTP id v15-v6mr7256593ybl.121.1543615748618; Fri, 30 Nov 2018 14:09:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543615748; cv=none; d=google.com; s=arc-20160816; b=lJs9b41hMUw0lgZtaWD33z7gKIeW2OMF7JW4g6QFleU8lZoozf6A/HrOGAh99BBtMB YK16mUQyBpF+D7B+kuFS69S/XEhgfMmvT9Py9zsfJKzuGk6Jm8Ip2eC15bkPxQfWiOIy IY6mvJ3mfPvuOr/Qz+i0N3mEHoVrYmS2AbyLj6EH389HZyNpNuoyojhSIqJmJshyUXIv KS6ueJUbIZ4yht4fFyWgO8deUv0jpa/f13JLna/l/NFelQ0Lh7SaAlS6bU3iPP70YhVh ThxdUIHYJZ/FWmBFlQwrhamG9Psj8p/d5RWZmq3NxZLM17nppYEYZD4Zl0P+uoxfblXj Dj8A== 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=eJKadJ6i9Y63+G17ntxH+k/+gALzfm5eMAE//c6fykE=; b=TgBhB0vOQL8ce3Oelaxw+GutOQvjmjnOdJye9Q2hR63ITNaia6w/GxmmZmo2APKK/a 93uHc0ZkYmJoPQRDEhPsKNmKCL4WecZ2SSAFDAwo3iZrfgjK5Ov1EY+AZXxLyYFH9Jeq DUnEWxqss1shVVQX7qutl7ANWx25dDuogzPJAT9zNbcLxGFMvgBfkaHLwgtP+MzV7Lsf glev9qmPdlyZpUJj6wvg6flzM0hSSgDEyG9cbyaAJ45DdLC2/YK4XSUOpsiQoHLIJbRH HRP/0VPR98QA+ORq+RXzlsNi1pWHOWQ1Z5kSm+DbYqd2MQRoZ5TZNed5twtT/rgrTc77 TIBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=P+drhfdJ; 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 v198-v6si3863798ybe.455.2018.11.30.14.09.08 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 30 Nov 2018 14:09:08 -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=P+drhfdJ; 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]:34837 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqyB-0001QS-Tm for patch@linaro.org; Fri, 30 Nov 2018 17:09:07 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52671) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqiI-00085d-3T for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSqiH-0007OY-2F for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:41 -0500 Received: from mail-pf1-x441.google.com ([2607:f8b0:4864:20::441]:36942) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSqiG-0007LI-Rj for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:40 -0500 Received: by mail-pf1-x441.google.com with SMTP id y126so3440292pfb.4 for ; Fri, 30 Nov 2018 13:52:40 -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=eJKadJ6i9Y63+G17ntxH+k/+gALzfm5eMAE//c6fykE=; b=P+drhfdJUDErF2VWFZANoaBB6hVLcri0xlu3dCswKOs+mQZ8XPTV90YM/+CsRIlzDD N6Nx1pJUmUHTQy2HXndViIpgsj8nSeKKvkdFuLzg8M9Kn+39LqvJY+mWeh1lq6azTqA8 d87wuyBtsGYnkg4zuiC+tm5mTIErvrfLXP3Yc= 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=eJKadJ6i9Y63+G17ntxH+k/+gALzfm5eMAE//c6fykE=; b=CzHy2tM5oEt0IGz0RAHWcwoG548uQEc5ATp+eFsOIrLyoDO5WBO5kdclH8KyuAY6e0 2+LkupxTXOYAlEotXBCialkkQSFK20miYR3/Uk5Cuvqsu5QR6YybcZDtQKZPVKofbVEr XA974E5WhvYD6xuP8NT4LmacOgnTkGpwEil939Fnls3b+ttyND41C+qow31Ks9ClSQWu 8b9Tkm//GB7IZJkfG8F+9R60v9QEaG46PloRedG4P/ot/bxbIQtUUoRJeuRxhaYSxNT9 eN0SJ2fkM2kIRf5OznUikdLLbjfrydEI0EzhckR5zwkzmvva952yCEjhrl07nSGnXkN3 RgVw== X-Gm-Message-State: AA+aEWb2WDUjWGEbw7seXJWZKWIGmzfKBYeUkVRLZDnunVjT8TAd3nSV oGbeKkgpOJdy4L4Clwuh+kvl4BiqBP4= X-Received: by 2002:a63:fd0a:: with SMTP id d10mr6289709pgh.164.1543614759450; Fri, 30 Nov 2018 13:52:39 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-170-180.tukw.qwest.net. [97.113.170.180]) by smtp.gmail.com with ESMTPSA id a18sm6973967pgj.30.2018.11.30.13.52.38 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 13:52:38 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 13:52:18 -0800 Message-Id: <20181130215221.20554-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181130215221.20554-1-richard.henderson@linaro.org> References: <20181130215221.20554-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::441 Subject: [Qemu-devel] [PATCH v3 13/16] tcg/aarch64: Return false on failure from patch_reloc 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: alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This does require an extra two checks within the slow paths to replace the assert that we're moving. Signed-off-by: Richard Henderson --- tcg/aarch64/tcg-target.inc.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) -- 2.17.2 Reviewed-by: Alex Bennée diff --git a/tcg/aarch64/tcg-target.inc.c b/tcg/aarch64/tcg-target.inc.c index 16f08c59c4..77f0ca4d5e 100644 --- a/tcg/aarch64/tcg-target.inc.c +++ b/tcg/aarch64/tcg-target.inc.c @@ -78,20 +78,26 @@ static const int tcg_target_call_oarg_regs[1] = { #define TCG_REG_GUEST_BASE TCG_REG_X28 #endif -static inline void reloc_pc26(tcg_insn_unit *code_ptr, tcg_insn_unit *target) +static inline bool reloc_pc26(tcg_insn_unit *code_ptr, tcg_insn_unit *target) { ptrdiff_t offset = target - code_ptr; - tcg_debug_assert(offset == sextract64(offset, 0, 26)); - /* read instruction, mask away previous PC_REL26 parameter contents, - set the proper offset, then write back the instruction. */ - *code_ptr = deposit32(*code_ptr, 0, 26, offset); + if (offset == sextract64(offset, 0, 26)) { + /* read instruction, mask away previous PC_REL26 parameter contents, + set the proper offset, then write back the instruction. */ + *code_ptr = deposit32(*code_ptr, 0, 26, offset); + return true; + } + return false; } -static inline void reloc_pc19(tcg_insn_unit *code_ptr, tcg_insn_unit *target) +static inline bool reloc_pc19(tcg_insn_unit *code_ptr, tcg_insn_unit *target) { ptrdiff_t offset = target - code_ptr; - tcg_debug_assert(offset == sextract64(offset, 0, 19)); - *code_ptr = deposit32(*code_ptr, 5, 19, offset); + if (offset == sextract64(offset, 0, 19)) { + *code_ptr = deposit32(*code_ptr, 5, 19, offset); + return true; + } + return false; } static inline bool patch_reloc(tcg_insn_unit *code_ptr, int type, @@ -101,15 +107,12 @@ static inline bool patch_reloc(tcg_insn_unit *code_ptr, int type, switch (type) { case R_AARCH64_JUMP26: case R_AARCH64_CALL26: - reloc_pc26(code_ptr, (tcg_insn_unit *)value); - break; + return reloc_pc26(code_ptr, (tcg_insn_unit *)value); case R_AARCH64_CONDBR19: - reloc_pc19(code_ptr, (tcg_insn_unit *)value); - break; + return reloc_pc19(code_ptr, (tcg_insn_unit *)value); default: tcg_abort(); } - return true; } #define TCG_CT_CONST_AIMM 0x100 @@ -1387,7 +1390,8 @@ static void tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *lb) TCGMemOp opc = get_memop(oi); TCGMemOp size = opc & MO_SIZE; - reloc_pc19(lb->label_ptr[0], s->code_ptr); + bool ok = reloc_pc19(lb->label_ptr[0], s->code_ptr); + tcg_debug_assert(ok); tcg_out_mov(s, TCG_TYPE_PTR, TCG_REG_X0, TCG_AREG0); tcg_out_mov(s, TARGET_LONG_BITS == 64, TCG_REG_X1, lb->addrlo_reg); @@ -1409,7 +1413,8 @@ static void tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *lb) TCGMemOp opc = get_memop(oi); TCGMemOp size = opc & MO_SIZE; - reloc_pc19(lb->label_ptr[0], s->code_ptr); + bool ok = reloc_pc19(lb->label_ptr[0], s->code_ptr); + tcg_debug_assert(ok); tcg_out_mov(s, TCG_TYPE_PTR, TCG_REG_X0, TCG_AREG0); tcg_out_mov(s, TARGET_LONG_BITS == 64, TCG_REG_X1, lb->addrlo_reg); From patchwork Fri Nov 30 21:52:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 152596 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp4169258ljp; Fri, 30 Nov 2018 13:56:05 -0800 (PST) X-Google-Smtp-Source: AFSGD/VsrZfQVse5LCwRR7OUxv22IokSkQlalKEpHoPRMJyFTHiCNDtLI2nJkV3KKRqnOAB6yefU X-Received: by 2002:a81:b3c3:: with SMTP id r186mr7675872ywh.66.1543614965718; Fri, 30 Nov 2018 13:56:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543614965; cv=none; d=google.com; s=arc-20160816; b=DvkzVz4lnWKdOH0JNPRHYT0GkQoOYq0b42F9rjHiW9OX9pQ8Z+5RKsad6j4s7wiHZs pDKi4GU1QpXtQZFwQitw2aIPPylgqcSY21fWGLw50UzNnz/muVmnJb+JaJC+m25YP1x0 upTHqSdBfWrdCEjPSfwa2NTnzTN+8Cvne27RP6KOvirmP2rLghgB26OxUOGvEte59cSo RHuiAocNs4gV56A3jI72RVxwV4BAMgbJpyrPVcoCwJn27/lbjg0Z8BakAV3njn+RieNV AIvbNRG1Lf2kfnXaK3oRjfYEFdKGkW/d4k66a5ZQPDy7ay7CdeYSkUlhMBEVj1SKHIxB sIYw== 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=8d6/+vDMAvBZgsrjYW7C4rNaADj256qJL0tBGY8IUpM=; b=soM4iToxTH5pJDzC4mx5Yt5d0Xb9o9+e7ZptnctGoALge8uLDPO8b9+PAj5ZqlcShC +sLBP6uJgORrFYHqQ38tBeADBcp2ybz7FjMuFQtlNaCD0zDY+lfHdbCZumIhR6rtWLUv 0OjTH17er+uCmdxOam10Q/c1tIOfrYwfHS7xROI9qWrfoxwaLQsrk1b/5N6fa1SzL+2b PB9ISnomiIoeV9U/0wx9E5HqtTxLmTunD9899HJ7dD4YorW+REfolh+EO9EPrOyOsxm+ DkmSlhgjeXTtIoLx1cJYRj3SwixNKH5gaJXeyoUr7qyMTyXPZ1raWQwlW6Zzcj6UJS4e o6Yw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=EpGO1L28; 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 o186si3959411ywe.9.2018.11.30.13.56.05 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 30 Nov 2018 13:56:05 -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=EpGO1L28; 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]:34751 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqlZ-0003UO-2c for patch@linaro.org; Fri, 30 Nov 2018 16:56:05 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52700) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqiL-0008BT-Tu for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSqiI-0007Uw-Cg for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:45 -0500 Received: from mail-pf1-x442.google.com ([2607:f8b0:4864:20::442]:33625) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSqiI-0007Rn-7P for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:42 -0500 Received: by mail-pf1-x442.google.com with SMTP id c123so3445805pfb.0 for ; Fri, 30 Nov 2018 13:52:42 -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=8d6/+vDMAvBZgsrjYW7C4rNaADj256qJL0tBGY8IUpM=; b=EpGO1L28KpxiPJuzMayFrp+B5mRHRhs/jMBtgTcNox7cBMT4aQIs4Ua4ZttoVSE2JM h7bkL9MKdznGWwUtcJo5p9T3GB2bXVmFuzFm6ir3I+zNf0amZ4hD/PLmH8u4v00g1Kgw VxLCpi2FtXs0gJD6CtLw55KXYF82oBwAIk8aM= 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=8d6/+vDMAvBZgsrjYW7C4rNaADj256qJL0tBGY8IUpM=; b=axAyY6/m6Rf87Z0gcZqnWNoqVWwKLMVVO2VmRG3UbUTX+hCSsl5KwLNBLe+QF8lKAS BCDVr9S5nye+z0AZAIRmyGhgHRbLQmOJrBKABkabcTFVRSbGcYK+zVyLcx0CTX4C+bT/ 2GRyUNEUNyvl9AaIMg6xqTDvH/fZu7ztJtIP0pHl2NU9vSc8QEDVhHG8NjbkvjpLzIit gDkoD7fujYqkhmEwKVJ5spBtTwNihPtfkOoQA+DijKAkzFwdZaOM03w0yelPeHaUmHCq negvNLv39hthkl2nyhWkxe8COklTBFjUR/tXkafv/DoHv7gwX+5J51fO6osFUjISM/fa 8F8w== X-Gm-Message-State: AA+aEWZBoJ6NOQ68QdYwaJD4flPbn9b92oN+1HfL1mPafSziat0Mjjig /pExzms0ojPUUrGfyqyz4cW14EKMi3I= X-Received: by 2002:a63:2d82:: with SMTP id t124mr6168883pgt.260.1543614760759; Fri, 30 Nov 2018 13:52:40 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-170-180.tukw.qwest.net. [97.113.170.180]) by smtp.gmail.com with ESMTPSA id a18sm6973967pgj.30.2018.11.30.13.52.39 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 13:52:40 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 13:52:19 -0800 Message-Id: <20181130215221.20554-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181130215221.20554-1-richard.henderson@linaro.org> References: <20181130215221.20554-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::442 Subject: [Qemu-devel] [PATCH v3 14/16] tcg/arm: Return false on failure from patch_reloc 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: alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This does require an extra two checks within the slow paths to replace the assert that we're moving. Signed-off-by: Richard Henderson --- tcg/arm/tcg-target.inc.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) -- 2.17.2 Reviewed-by: Alex Bennée diff --git a/tcg/arm/tcg-target.inc.c b/tcg/arm/tcg-target.inc.c index deefa20fbf..49f57d655e 100644 --- a/tcg/arm/tcg-target.inc.c +++ b/tcg/arm/tcg-target.inc.c @@ -187,10 +187,14 @@ static const uint8_t tcg_cond_to_arm_cond[] = { [TCG_COND_GTU] = COND_HI, }; -static inline void reloc_pc24(tcg_insn_unit *code_ptr, tcg_insn_unit *target) +static inline bool reloc_pc24(tcg_insn_unit *code_ptr, tcg_insn_unit *target) { ptrdiff_t offset = (tcg_ptr_byte_diff(target, code_ptr) - 8) >> 2; - *code_ptr = (*code_ptr & ~0xffffff) | (offset & 0xffffff); + if (offset == sextract32(offset, 0, 24)) { + *code_ptr = (*code_ptr & ~0xffffff) | (offset & 0xffffff); + return true; + } + return false; } static bool patch_reloc(tcg_insn_unit *code_ptr, int type, @@ -199,7 +203,7 @@ static bool patch_reloc(tcg_insn_unit *code_ptr, int type, tcg_debug_assert(addend == 0); if (type == R_ARM_PC24) { - reloc_pc24(code_ptr, (tcg_insn_unit *)value); + return reloc_pc24(code_ptr, (tcg_insn_unit *)value); } else if (type == R_ARM_PC13) { intptr_t diff = value - (uintptr_t)(code_ptr + 2); tcg_insn_unit insn = *code_ptr; @@ -213,7 +217,11 @@ static bool patch_reloc(tcg_insn_unit *code_ptr, int type, } else { int rd = extract32(insn, 12, 4); int rt = rd == TCG_REG_PC ? TCG_REG_TMP : rd; - assert(diff >= 0x1000 && diff < 0x100000); + + if (diff < 0x1000 || diff >= 0x100000) { + return false; + } + /* add rt, pc, #high */ *code_ptr++ = ((insn & 0xf0000000) | (1 << 25) | ARITH_ADD | (TCG_REG_PC << 16) | (rt << 12) @@ -1372,7 +1380,8 @@ static void tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *lb) TCGMemOp opc = get_memop(oi); void *func; - reloc_pc24(lb->label_ptr[0], s->code_ptr); + bool ok = reloc_pc24(lb->label_ptr[0], s->code_ptr); + tcg_debug_assert(ok); argreg = tcg_out_arg_reg32(s, TCG_REG_R0, TCG_AREG0); if (TARGET_LONG_BITS == 64) { @@ -1432,7 +1441,8 @@ static void tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *lb) TCGMemOpIdx oi = lb->oi; TCGMemOp opc = get_memop(oi); - reloc_pc24(lb->label_ptr[0], s->code_ptr); + bool ok = reloc_pc24(lb->label_ptr[0], s->code_ptr); + tcg_debug_assert(ok); argreg = TCG_REG_R0; argreg = tcg_out_arg_reg32(s, argreg, TCG_AREG0); From patchwork Fri Nov 30 21:52:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 152602 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp4175011ljp; Fri, 30 Nov 2018 14:02:43 -0800 (PST) X-Google-Smtp-Source: AFSGD/Vp73rfJ8WrzulWId6+NFHffbMtFJAjnvAs/EarxgMshbX2bAjfSy1qfLYDSJWkI35iiJgQ X-Received: by 2002:a25:dc93:: with SMTP id y141mr931151ybe.40.1543615362999; Fri, 30 Nov 2018 14:02:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543615362; cv=none; d=google.com; s=arc-20160816; b=OJ9kUw8InjcKOMKmo1SKsPykrRofYL0JlWAIVBIWW2dWuH+KTezeSlBwhYpN3ZO/XG AEw7xcR1VckJPgM61twAEDWiY+kZckh52KtZq3igTjaOC/S38CnyH0phkimprC0AX4Yd yf5V2c7Dfl+T+HbbZCk1m3AgW5DtJNKBxWGJ5sY/l5NhxxJ7E0CiexIQLlPrgg3WC0IT eZpqdtw9nZ2PMJhSbeYzogcDx1FQYyazHEaKFaBTQtk9NWEDnSq8vEmhOMmAhMaycYm6 KZy5rkFt2dupBiNpyn9RyMcEDJvBSA7enqmm0CA5PN2PEjC8yZPJOmuRVgGqz42p4yCp vnUw== 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=bmUmb8zTaahVnT4oIhk8zyyRNcm/80ZCLJTuwVNXCf8=; b=zzd9zqjB63t7Bfc7Xu36kfiwUXA5uisFT358MAz05IUTH0wEmaSYJiUB1WwT9l0pp/ mxi9jPhHVr31mEbYLdvGwiUj3oRrguCLdc1aSN9Ee+/vbUTrI1hW2bp6vn7hV4hxiHBV LtepYBBw3+TmaWcOo7yNSOv9FCPutRIW3O+w4xahrA4w+PCkDp7OJKNdQCsE5NcXAoJJ NbLA/yznD49Ml9xxmhbns66EFfS6TuY/+EOR8MaEuZ8+r49aQP5uPz1Vhx6xRIZwo/TD etrwzALS5P8cwAywCsyq+24+PK/w6yqua0wKj3ZWJ7+Zr0yNDqkYeqhGtOfTYzLo/ohs +uiQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=KEtaNMs2; 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 z185si4026695ywe.241.2018.11.30.14.02.42 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 30 Nov 2018 14:02:42 -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=KEtaNMs2; 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]:34791 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqry-00028H-Ai for patch@linaro.org; Fri, 30 Nov 2018 17:02:42 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52701) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqiL-0008BX-UA for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSqiJ-0007cP-Jf for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:45 -0500 Received: from mail-pg1-x542.google.com ([2607:f8b0:4864:20::542]:35352) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSqiJ-0007XU-Dn for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:43 -0500 Received: by mail-pg1-x542.google.com with SMTP id s198so3064345pgs.2 for ; Fri, 30 Nov 2018 13:52:43 -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=bmUmb8zTaahVnT4oIhk8zyyRNcm/80ZCLJTuwVNXCf8=; b=KEtaNMs2TsPv8UqimAS6HAQc6Qi5a/W2i45sjrFZtuHnr1lnzDKNEOHm2ocWbjkbD1 mkfWpwaX+R/SBK0eYB+XtbMUxvxxU72GUC6GfJMjcZg+mjwVFZbnBeoqitDY4M5/sUnC rr6O08+RYSl4Q1Nxh1HzETSNf8fECRsPBg0qk= 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=bmUmb8zTaahVnT4oIhk8zyyRNcm/80ZCLJTuwVNXCf8=; b=Ei3efNrDYAvSwWCYG8cTqzVYmPyV6XV69PWjBe/TovuiKrrflCWw+b+yr6M68gVG7s mfdD7uSNNjYSixGf8TnJHiAITIFuPtZsaAXx1rFNLrePXu5CO1ZJbyk1AH9CtCENULeM XDtNSTfunXJi7tRWoxp4LhJN26vt3VL7y+Qt9rFyd3qdjC0dwANOsxx+or5Bc9kW06L9 NNanyl/WT67m8oWF7TQJImtm4w3F0TCbb37krm5q+jEmaJYMhcNRAT3F6KO+5llRRXxY euH7bAMpRsv1dmTdXJPDaTeIRPzeuSMIozJN8BDsA9sJTbwce1RSJ0eZSI535PISBQ/D eZfQ== X-Gm-Message-State: AA+aEWb0CfbysIMJAmOArGTJ96ZlcxQiWfcyBCzFVIxv6plVz+3IyyRK m1asA20U6zS+bE4d6OoispoyrsKQsg4= X-Received: by 2002:a63:5f95:: with SMTP id t143mr6237306pgb.395.1543614761989; Fri, 30 Nov 2018 13:52:41 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-170-180.tukw.qwest.net. [97.113.170.180]) by smtp.gmail.com with ESMTPSA id a18sm6973967pgj.30.2018.11.30.13.52.40 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 13:52:41 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 13:52:20 -0800 Message-Id: <20181130215221.20554-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181130215221.20554-1-richard.henderson@linaro.org> References: <20181130215221.20554-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::542 Subject: [Qemu-devel] [PATCH v3 15/16] tcg/ppc: Return false on failure from patch_reloc 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: alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" The reloc_pc{14,24}_val routines retain their asserts. Use these directly within the slow paths. Signed-off-by: Richard Henderson --- tcg/ppc/tcg-target.inc.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) -- 2.17.2 Reviewed-by: Alex Bennée diff --git a/tcg/ppc/tcg-target.inc.c b/tcg/ppc/tcg-target.inc.c index 860b0d36e1..8c1cfdd7ac 100644 --- a/tcg/ppc/tcg-target.inc.c +++ b/tcg/ppc/tcg-target.inc.c @@ -193,9 +193,14 @@ static uint32_t reloc_pc24_val(tcg_insn_unit *pc, tcg_insn_unit *target) return disp & 0x3fffffc; } -static void reloc_pc24(tcg_insn_unit *pc, tcg_insn_unit *target) +static bool reloc_pc24(tcg_insn_unit *pc, tcg_insn_unit *target) { - *pc = (*pc & ~0x3fffffc) | reloc_pc24_val(pc, target); + ptrdiff_t disp = tcg_ptr_byte_diff(target, pc); + if (in_range_b(disp)) { + *pc = (*pc & ~0x3fffffc) | (disp & 0x3fffffc); + return true; + } + return false; } static uint16_t reloc_pc14_val(tcg_insn_unit *pc, tcg_insn_unit *target) @@ -205,9 +210,14 @@ static uint16_t reloc_pc14_val(tcg_insn_unit *pc, tcg_insn_unit *target) return disp & 0xfffc; } -static void reloc_pc14(tcg_insn_unit *pc, tcg_insn_unit *target) +static bool reloc_pc14(tcg_insn_unit *pc, tcg_insn_unit *target) { - *pc = (*pc & ~0xfffc) | reloc_pc14_val(pc, target); + ptrdiff_t disp = tcg_ptr_byte_diff(target, pc); + if (disp == (int16_t) disp) { + *pc = (*pc & ~0xfffc) | (disp & 0xfffc); + return true; + } + return false; } /* parse target specific constraints */ @@ -524,11 +534,9 @@ static bool patch_reloc(tcg_insn_unit *code_ptr, int type, switch (type) { case R_PPC_REL14: - reloc_pc14(code_ptr, target); - break; + return reloc_pc14(code_ptr, target); case R_PPC_REL24: - reloc_pc24(code_ptr, target); - break; + return reloc_pc24(code_ptr, target); case R_PPC_ADDR16: /* We are abusing this relocation type. This points to a pair of insns, addis + load. If the displacement is small, we @@ -540,7 +548,9 @@ static bool patch_reloc(tcg_insn_unit *code_ptr, int type, } else { int16_t lo = value; int hi = value - lo; - assert(hi + lo == value); + if (hi + lo != value) { + return false; + } code_ptr[0] = deposit32(code_ptr[0], 0, 16, hi >> 16); code_ptr[1] = deposit32(code_ptr[1], 0, 16, lo); } @@ -1638,7 +1648,7 @@ static void tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *lb) TCGMemOp opc = get_memop(oi); TCGReg hi, lo, arg = TCG_REG_R3; - reloc_pc14(lb->label_ptr[0], s->code_ptr); + **lb->label_ptr |= reloc_pc14_val(*lb->label_ptr, s->code_ptr); tcg_out_mov(s, TCG_TYPE_PTR, arg++, TCG_AREG0); @@ -1683,7 +1693,7 @@ static void tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *lb) TCGMemOp s_bits = opc & MO_SIZE; TCGReg hi, lo, arg = TCG_REG_R3; - reloc_pc14(lb->label_ptr[0], s->code_ptr); + **lb->label_ptr |= reloc_pc14_val(*lb->label_ptr, s->code_ptr); tcg_out_mov(s, TCG_TYPE_PTR, arg++, TCG_AREG0); From patchwork Fri Nov 30 21:52:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 152601 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp4173184ljp; Fri, 30 Nov 2018 14:01:09 -0800 (PST) X-Google-Smtp-Source: AFSGD/VNnXcgrcizAyRCbWQjCaG4WtmAHq4QN5U6i5Qoo79Ao3MIsYwJfzGmNEVWn3yH/8PAk2c9 X-Received: by 2002:a25:c5c2:: with SMTP id v185-v6mr7147459ybe.110.1543615269005; Fri, 30 Nov 2018 14:01:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543615269; cv=none; d=google.com; s=arc-20160816; b=okBgx3+W2ec5VcLfVfEVEwgCx8hmg40OCVOIMg2APhsZBAKv9E5bMneoRdqOf6dUU+ B7KkENq9YZh654Ugc4q341tt87o10oZSt909e3iQwCUVXL0I0YKKsjQvLEkHPjr56b3u Ya+hNvqe1+8j6SdKb26QtHpfsxd1fjwOk6B+RHJT15XjqxA9bI71jXL4MnSlqWpJ65Th nBMu2ksEjCYxLUG7AAgx3W1LHujwR2hSn9/xFwSjveEjpm4Ybe8z09ttzhrYdUYce3ES CT7nlU7SFbStfrViJahnzU9sAplgKYGfYv74UebZ4frohTkJYVGEKjUoxpNc/wGkj70X M7gA== 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=bdn6ft2Vb9uaum1Y6rFdWVXmAAedWixPu3DebQxWV5c=; b=naKN7O8fpW4jioHx6Ru1E7VaKNHnuiWbwHQ8JQC/76tSAuSWx0gIFMNgf5scL+bL+4 oErY1gpU3eS2IUnljgH7Kvlj38sRfvbp60g7NmtCXoyD/E1UxP2HoqQd1Im9QJWw9vfU wZOanYy4XXKA1Cz3M2FM4rv1hlTVcVWMi2tIZMPka1V7ZI9mwrCe32Cxx/QxYlW6gyVc PBsHijXFTE2rjHZ/GrIvyUs54WU5cvTriseo/urJGvzXUXzH4hHgxgUBdc4bM+KLqS6l TA18DW2kijBPAT5s2F73RGmW6QhZ6kBK09868nidLWJfEEVBqdJIMsyClmCaiGf4o7Uv M32Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=RN0E9CxH; 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 x13-v6si3621903ybq.294.2018.11.30.14.01.08 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 30 Nov 2018 14:01:08 -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=RN0E9CxH; 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]:34783 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqqS-00012K-EI for patch@linaro.org; Fri, 30 Nov 2018 17:01:08 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52703) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSqiL-0008Ba-US for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSqiK-0007ib-Kb for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:45 -0500 Received: from mail-pf1-x442.google.com ([2607:f8b0:4864:20::442]:34160) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSqiK-0007eq-Ex for qemu-devel@nongnu.org; Fri, 30 Nov 2018 16:52:44 -0500 Received: by mail-pf1-x442.google.com with SMTP id h3so3443759pfg.1 for ; Fri, 30 Nov 2018 13:52:44 -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=bdn6ft2Vb9uaum1Y6rFdWVXmAAedWixPu3DebQxWV5c=; b=RN0E9CxHim+2Gvl+OSSRIz426QSNxo/wTFIwBcIw7JJAbkb90m1s2tlUNOW2Dvn/Bi tWKniyA/rZS7FND6W17scFYmrwcIL6QAiApwdrf1SqG23nSGjqW4t3JEICB3bkexf1BW foVHcqgdMvO98/FE71hgZPBC0xglQz78vWecE= 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=bdn6ft2Vb9uaum1Y6rFdWVXmAAedWixPu3DebQxWV5c=; b=DzFDmQQGFJu+A18z8cRQss77MxUgzXeiXrgiaRCQ3wqXsnMr3IK/3VnFUdJP5Wr0Y2 VhwzL4jd5x+VfPxhqmSJe+EsFZ49gxxnXNczWpEMD0+ZDQP03A/8PzG9RtS0oIJrKVE7 uoS1ecsOj/2A+N3l+x/QPPjvVl0MlG/oze5GVOaFjEPo5VMQyBUdmBCbxpJq3cvsFtjb TnnbCUc+NXG6i3T9DaKFGrL1lnkg8P5HHvWCrEmqjaRMSN05i5uJrqCjIyP+kiPX4oQZ VxYuYSuViMHbC9IQmznrJCVr1oDhC2n3ey9TG+SexjS8Vb9m6NLygoc9hDKz2vsonhzb sUyg== X-Gm-Message-State: AA+aEWYdyDS+6ePVdY3scinsJdyaRKrBUFwbvZA0AXvqQZ3OBdPwa9hL +Zr9wqn+xmoRM2eq9wS+HKShGv/P1FQ= X-Received: by 2002:a62:7796:: with SMTP id s144mr7199375pfc.26.1543614763258; Fri, 30 Nov 2018 13:52:43 -0800 (PST) Received: from cloudburst.twiddle.net (97-113-170-180.tukw.qwest.net. [97.113.170.180]) by smtp.gmail.com with ESMTPSA id a18sm6973967pgj.30.2018.11.30.13.52.42 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 13:52:42 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 13:52:21 -0800 Message-Id: <20181130215221.20554-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181130215221.20554-1-richard.henderson@linaro.org> References: <20181130215221.20554-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::442 Subject: [Qemu-devel] [PATCH v3 16/16] tcg/s390x: Return false on failure from patch_reloc 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: alex.bennee@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This does require an extra two checks within the slow paths to replace the assert that we're moving. Also add two checks within existing functions that lacked any kind of assert for out of range branch. Signed-off-by: Richard Henderson --- tcg/s390/tcg-target.inc.c | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) -- 2.17.2 Reviewed-by: Alex Bennée diff --git a/tcg/s390/tcg-target.inc.c b/tcg/s390/tcg-target.inc.c index 68a4c60394..39ecf609a1 100644 --- a/tcg/s390/tcg-target.inc.c +++ b/tcg/s390/tcg-target.inc.c @@ -377,23 +377,29 @@ static bool patch_reloc(tcg_insn_unit *code_ptr, int type, switch (type) { case R_390_PC16DBL: - assert(pcrel2 == (int16_t)pcrel2); - tcg_patch16(code_ptr, pcrel2); + if (pcrel2 == (int16_t)pcrel2) { + tcg_patch16(code_ptr, pcrel2); + return true; + } break; case R_390_PC32DBL: - assert(pcrel2 == (int32_t)pcrel2); - tcg_patch32(code_ptr, pcrel2); + if (pcrel2 == (int32_t)pcrel2) { + tcg_patch32(code_ptr, pcrel2); + return true; + } break; case R_390_20: - assert(value == sextract64(value, 0, 20)); - old = *(uint32_t *)code_ptr & 0xf00000ff; - old |= ((value & 0xfff) << 16) | ((value & 0xff000) >> 4); - tcg_patch32(code_ptr, old); + if (value == sextract64(value, 0, 20)) { + old = *(uint32_t *)code_ptr & 0xf00000ff; + old |= ((value & 0xfff) << 16) | ((value & 0xff000) >> 4); + tcg_patch32(code_ptr, old); + return true; + } break; default: g_assert_not_reached(); } - return true; + return false; } /* parse target specific constraints */ @@ -1334,6 +1340,7 @@ static void tgen_compare_branch(TCGContext *s, S390Opcode opc, int cc, if (l->has_value) { off = l->u.value_ptr - s->code_ptr; + tcg_debug_assert(off == (int16_t)off); } else { tcg_out_reloc(s, s->code_ptr + 1, R_390_PC16DBL, l, 2); } @@ -1350,6 +1357,7 @@ static void tgen_compare_imm_branch(TCGContext *s, S390Opcode opc, int cc, if (l->has_value) { off = l->u.value_ptr - s->code_ptr; + tcg_debug_assert(off == (int16_t)off); } else { tcg_out_reloc(s, s->code_ptr + 1, R_390_PC16DBL, l, 2); } @@ -1615,7 +1623,9 @@ static void tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *lb) TCGMemOpIdx oi = lb->oi; TCGMemOp opc = get_memop(oi); - patch_reloc(lb->label_ptr[0], R_390_PC16DBL, (intptr_t)s->code_ptr, 2); + bool ok = patch_reloc(lb->label_ptr[0], R_390_PC16DBL, + (intptr_t)s->code_ptr, 2); + tcg_debug_assert(ok); tcg_out_mov(s, TCG_TYPE_PTR, TCG_REG_R2, TCG_AREG0); if (TARGET_LONG_BITS == 64) { @@ -1636,7 +1646,9 @@ static void tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *lb) TCGMemOpIdx oi = lb->oi; TCGMemOp opc = get_memop(oi); - patch_reloc(lb->label_ptr[0], R_390_PC16DBL, (intptr_t)s->code_ptr, 2); + bool ok = patch_reloc(lb->label_ptr[0], R_390_PC16DBL, + (intptr_t)s->code_ptr, 2); + tcg_debug_assert(ok); tcg_out_mov(s, TCG_TYPE_PTR, TCG_REG_R2, TCG_AREG0); if (TARGET_LONG_BITS == 64) {