From patchwork Tue Dec 25 20:55:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 154507 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp5224469ljp; Tue, 25 Dec 2018 13:24:01 -0800 (PST) X-Google-Smtp-Source: ALg8bN7MXaPsPpSjgOVMYiq7X6OSvuhJGBlBfZn9JInmpguyVReUGIeyzgocwEGpbqh0ya+eodXI X-Received: by 2002:a37:9281:: with SMTP id u123mr16523317qkd.0.1545773041810; Tue, 25 Dec 2018 13:24:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1545773041; cv=none; d=google.com; s=arc-20160816; b=jUejTWXumxB2K3GUnePLUfExmLRk9x2ksV9RGTo2sT81njoi4PEbqMkH3bObU1m0cz e967m6PX2674jZnpJ3T+2InDHjP7008+AqDoDrwBz47kg42O6y2kTKNFau+O1ZBU2FHj +3Mbno/aAxJYze5qg+51X4IIlTxeJDEZFE97UMenHHAiwcF/LgmolThLkd2JWREOkP+I eJj8F4o5GhmVQ2UyMCt05uzJ44AwfnrfOgXxiYbx1Wj69DdJTdVXdaiOcqp+29hI5x1H N/Qw0zeO9q7ZBSoBwZZmatONx6yfN74wDEdWxfnOCOUb8LwU7ND18wYgf7qCXBaEzE4T 2WcQ== 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=2VlpoSTHDdSc3NpvOsuyPcdxjlPKZe4fpjTOk9GKiAY=; b=pGNTJjLE1L0nZIKqOEgGkBqUsoCCr9S3t+x/PG9cpYbsHP+knNCirZIsXCtrsYEnaH wDDTSamIJc28OPwAoasA8N3gGuNqYc8tP4XFmTFAuVpjubF1AU/+jZWgv7eB+Uui/rTN Fw7PvA7kLAElrb4xX6y4ScXzHxz3+6X9huXPWE8/3Kie8JP8zXM2j1RRjBm67OGQc9Zz nDrzAeFn44JWhQa7jHCh0BB2ESfn3jX5hROiKsz0z51xP0+mr1ClZZ8d+vJRGBiBOW3j oqsfAd3+8556kSCeYApt0EL+RmcFdCyD5BOF1YDEqNdRlzeyUeGJR0abaJn/Onc7hQ6b HaDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=XWkmdLAJ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [208.118.235.17]) by mx.google.com with ESMTPS id q11si18134qvb.83.2018.12.25.13.24.01 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 25 Dec 2018 13:24:01 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=XWkmdLAJ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([127.0.0.1]:43285 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gbuBF-000620-A7 for patch@linaro.org; Tue, 25 Dec 2018 16:24:01 -0500 Received: from eggs.gnu.org ([208.118.235.92]:51037) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gbtoN-0000bA-Kv for qemu-devel@nongnu.org; Tue, 25 Dec 2018 16:00:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gbtoL-0002Ky-Nf for qemu-devel@nongnu.org; Tue, 25 Dec 2018 16:00:23 -0500 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]:38018) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gbtoJ-0002IV-Ph for qemu-devel@nongnu.org; Tue, 25 Dec 2018 16:00:20 -0500 Received: by mail-pl1-x632.google.com with SMTP id e5so6811399plb.5 for ; Tue, 25 Dec 2018 13:00:19 -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=2VlpoSTHDdSc3NpvOsuyPcdxjlPKZe4fpjTOk9GKiAY=; b=XWkmdLAJs6HejBe6u3jV2BwY/BSPq5gp9wlPhq4aSj8ZrvMvjCBPo1W4VNhGWANEUw jYF3SxKz7k7E5tEU0h7x1+Szt3SU7JXQxJg8n2tHozl7f9C4CDhiDd/dGPcH3AntWAO3 vzNbyQPdjj8ym0hmQThGOLvBwObWlo+ogg6IA= 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=2VlpoSTHDdSc3NpvOsuyPcdxjlPKZe4fpjTOk9GKiAY=; b=tmLstdojP9Ixen4Pfc7cngH8kMIElL/j+v4QIOuaQ4ZFbqiWcyYKvJ9iGsJVRBW5K0 MHNbVupogZsExyEUJUzrFIoqcT/+5Tr88Ihaq5S9PVYaJsVxuOrCyOfB24UWx4e/RHsP b5laWV2x/rsIn0ZZIoMTC6GAMLUDVE3ADV6SDg3X9xQp1lhgYYU5kj4h4VdARCPPfOJW aJ0N9IWO2yNb6jMhrZZUW6AKAau9MeSHmQYfRLmpdXSo/vFwIpVF7KiO3A7sJIwLxNTp LLQ2JZHaMvoiyF3W1zoEB0VZqv+wMRXK3TY1PrzekoByvXwgiDOE3fDDA1J48M6VLizf wp+g== X-Gm-Message-State: AJcUukcnVMJ9vgMkL6iijFEDLaMVzCWnF7uIhig3z480GsbJ+QKnpnml iRUffYJOUcahRptHIuecqeLHRjYpPtw= X-Received: by 2002:a17:902:b943:: with SMTP id h3mr17686016pls.12.1545771618496; Tue, 25 Dec 2018 13:00:18 -0800 (PST) Received: from cloudburst.home (c211-28-135-144.sunsh3.vic.optusnet.com.au. [211.28.135.144]) by smtp.gmail.com with ESMTPSA id t21sm48501628pgg.24.2018.12.25.13.00.14 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 25 Dec 2018 13:00:17 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 26 Dec 2018 07:55:29 +1100 Message-Id: <20181225205529.10874-43-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20181225205529.10874-1-richard.henderson@linaro.org> References: <20181225205529.10874-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::632 Subject: [Qemu-devel] [PULL 42/42] tcg: Improve call argument loading X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Free the argument register only after we have verified that the temporary is not already in that register. This case is likely now that we are back propagating the preferred register. Signed-off-by: Richard Henderson --- tcg/tcg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- 2.17.2 diff --git a/tcg/tcg.c b/tcg/tcg.c index 5f8c09b0b4..c54b119020 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -3611,15 +3611,16 @@ static void tcg_reg_alloc_call(TCGContext *s, TCGOp *op) if (arg != TCG_CALL_DUMMY_ARG) { ts = arg_temp(arg); reg = tcg_target_call_iarg_regs[i]; - tcg_reg_free(s, reg, allocated_regs); if (ts->val_type == TEMP_VAL_REG) { if (ts->reg != reg) { + tcg_reg_free(s, reg, allocated_regs); tcg_out_mov(s, ts->type, reg, ts->reg); } } else { TCGRegSet arg_set = 0; + tcg_reg_free(s, reg, allocated_regs); tcg_regset_set_reg(arg_set, reg); temp_load(s, ts, arg_set, allocated_regs, 0); }