From patchwork Wed Aug 28 19:03:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 172410 Delivered-To: patch@linaro.org Received: by 2002:a92:d204:0:0:0:0:0 with SMTP id y4csp1169807ily; Wed, 28 Aug 2019 12:06:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqy2a5X4O4+hN+0wOfuAmnkx3JjRLz0ztuin6xrAEhG6vlzX4JIkClaO5cu71VlN1PQ0y94y X-Received: by 2002:a05:620a:693:: with SMTP id f19mr5705751qkh.189.1567019190707; Wed, 28 Aug 2019 12:06:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567019190; cv=none; d=google.com; s=arc-20160816; b=LqL+rN1G844yYjx43bhNFj0kIX9Y8ZLFT1QIlBNaTRNmrLoT1lcj02a4/xxNX1YiTD B60OeyzWERnYjq6BYga2+9+x4NNtwE5QqGAy8u13aJoYOjXcgMRWVNLQvzhXlx262h52 UOGjMLzOxZUKytGk946YQ2of4PsvP7wHXs5BA9R1zJ4UhwPQWpRyIclYp+pPJZdr2cVn J7MeOAvZLrnvmpjNhqk+ikfl640BCRXhYMKFwuBVcPnemFi0/DqGyx/BkJx3uSF4eYkY w5WgttLOogVvYEFVhL1vtJegdf5KNzG+oVihvuEwHlwKKuaPDxCWg8BVdug0vqd+vQBl BY0w== 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=jAqvd/2BIuSZJ/quAHqjRlBcC779AH2rhSu4pCUKbkY=; b=PYDnTHxMG84T8ppc+4yOBIkQTK7HxBw/ectCoQ0bHVGuP0rTT7wIXkaXJhc+csBhir W7wvnfmGgQ+k6UC0Rh0yJc93zNfTIOPKh3MTa3A6IIAbDhe4AAi2mJi2iA9XNzJNx3Zg o2y25WYzTJLkkfTKmUsH4WHUyMi6P8tc/2cJsyDDXKKlDgPHlVUwLKYT57S82rfRVnqe 4tCTpQ0wf/BAlzIJWEtcO29TqJhYizPiOuek/I/4POd0Q4wpriyrhs09tlwpchpxr44q xnNb120dC5u7jtAxyPzLblNf9NmWteUFk1too+gsaTm3HG9N89MZPq7TTSpSMDwnNvtf F5Sw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=cwqrKVKk; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id c197si116591qke.308.2019.08.28.12.06.30 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 28 Aug 2019 12:06:30 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=cwqrKVKk; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:40056 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i33H2-0002zc-8F for patch@linaro.org; Wed, 28 Aug 2019 15:06:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37326) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i33Fe-0002vo-FV for qemu-devel@nongnu.org; Wed, 28 Aug 2019 15:05:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i33Fd-00084Q-Dp for qemu-devel@nongnu.org; Wed, 28 Aug 2019 15:05:02 -0400 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]:42121) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1i33Fd-00083l-7E for qemu-devel@nongnu.org; Wed, 28 Aug 2019 15:05:01 -0400 Received: by mail-pg1-x541.google.com with SMTP id p3so210099pgb.9 for ; Wed, 28 Aug 2019 12:05:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=jAqvd/2BIuSZJ/quAHqjRlBcC779AH2rhSu4pCUKbkY=; b=cwqrKVKkM5ZDHJULoLzd1MCeKIvJCsqMAGtjwM1WNM7n+rhC4YXa/ccKWJkv8YEMmv JjWU2O2Bq3SUEmz01uGx2lSLb7aa9rdCDAQ2kIW1/M4VeXP4EYwSpzagpH8tz8sqM4Sh d7p7jC+crnZ1u4+rIfNMhw7u181jPTsCIhLo5nhE00FXC7B+oTl8tqR9VQEeqIQ9XS2Y 1HeQggQK+WwyhcTUeswIOq8q7EONBd+EHc/3uIZuw53/DQMK5WOyMk+zErSrXcxA/s2S WBODvBSQZKLE397QAmOKFPtUFwzrmk1C4pjmsH3+PJji+XpTsrRGXqBlMwtQ2GsmuzwY AqQA== 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=jAqvd/2BIuSZJ/quAHqjRlBcC779AH2rhSu4pCUKbkY=; b=WUb4YnYwtxQpQakR1j0Lx2HTKkU7j8Oyk+08bMHK0Fn6tjpnNKI/2CjElDMHJSsbfi UfsBnHsJjHCOPrpCzmPMmGgK6noPXTKXcdr9a+vX2jPqI3M3iaFsxtoyuhlSzEGrXzFd fG2KrYIxV9Ityd56YrY4bbsVLnFZYjmJ+CJSSHv1JAJHrTSazXT3QIqFLj4kYJbWVzgc RspENH/fsaTrVvuX47a7lamEpZokU/GOvT86nqUuYfWYX6xNg3uMJfD7Ve5IXg87u+O6 /8Vo6vzReZqSbB9JS/n38hqkUd4GSMWE22wmVe9F5is9A6IgFkC7UB5c8uGQ8pyKPtjR 2/8w== X-Gm-Message-State: APjAAAUd4Zq2uV7cNjVxMzlxMK19wSxyHUlZKD7300iqoxhbvl8OB6g8 7fTKlqnD809EGBz5Hu81aO+JhtiBCb8= X-Received: by 2002:a62:e516:: with SMTP id n22mr6559250pff.105.1567019099849; Wed, 28 Aug 2019 12:04:59 -0700 (PDT) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id f27sm2967944pgm.60.2019.08.28.12.04.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Aug 2019 12:04:59 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 28 Aug 2019 12:03:48 -0700 Message-Id: <20190828190456.30315-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190828190456.30315-1-richard.henderson@linaro.org> References: <20190828190456.30315-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::541 Subject: [Qemu-devel] [PATCH v3 01/69] target/arm: Use store_reg_from_load in thumb2 code X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This function already includes the test for an interworking write to PC from a load. Change the T32 LDM implementation to match the A32 LDM implementation. For LDM, the reordering of the tests does not change valid behaviour because the only case that differs is has rn == 15, which is UNPREDICTABLE. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/translate.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) -- 2.17.1 diff --git a/target/arm/translate.c b/target/arm/translate.c index cbe19b7a62..35e59a8a16 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -9707,13 +9707,11 @@ static void disas_thumb2_insn(DisasContext *s, uint32_t insn) /* Load. */ tmp = tcg_temp_new_i32(); gen_aa32_ld32u(s, tmp, addr, get_mem_index(s)); - if (i == 15) { - gen_bx_excret(s, tmp); - } else if (i == rn) { + if (i == rn) { loaded_var = tmp; loaded_base = 1; } else { - store_reg(s, i, tmp); + store_reg_from_load(s, i, tmp); } } else { /* Store. */ @@ -10847,11 +10845,7 @@ static void disas_thumb2_insn(DisasContext *s, uint32_t insn) tcg_temp_free_i32(addr); goto illegal_op; } - if (rs == 15) { - gen_bx_excret(s, tmp); - } else { - store_reg(s, rs, tmp); - } + store_reg_from_load(s, rs, tmp); } else { /* Store. */ tmp = load_reg(s, rs);