From patchwork Sun Jun 4 17:34:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 9765101 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id BA0F8601D7 for ; Sun, 4 Jun 2017 17:46:59 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AC0DC280DE for ; Sun, 4 Jun 2017 17:46:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9F45B28111; Sun, 4 Jun 2017 17:46:59 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 1ADE4280DE for ; Sun, 4 Jun 2017 17:46:58 +0000 (UTC) Received: from localhost ([::1]:57875 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dHZc9-0000W6-Kb for patchwork-qemu-devel@patchwork.kernel.org; Sun, 04 Jun 2017 13:46:57 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50212) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dHZRM-0007aI-N2 for qemu-devel@nongnu.org; Sun, 04 Jun 2017 13:35:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dHZRL-0003Cw-Rh for qemu-devel@nongnu.org; Sun, 04 Jun 2017 13:35:48 -0400 Received: from mail-pf0-x241.google.com ([2607:f8b0:400e:c00::241]:33376) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dHZRL-0003Bm-Lf for qemu-devel@nongnu.org; Sun, 04 Jun 2017 13:35:47 -0400 Received: by mail-pf0-x241.google.com with SMTP id f27so18146129pfe.0 for ; Sun, 04 Jun 2017 10:35:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=l565x4qTFgq+ykA1/rHZfQVr64u+DPXBHDXbMuzIOC4=; b=BrMpB34vK0/biqQhsjsiTyzoHw/zYtNgp+X+Tj+gJk/EHNOBVKqQwlmQVitIj1/pYC rppRUxpEi4zefgmGO+q9hnt1Iy86KyGT7lGny6H8iaDshICUhxfIbOATEPaM+OuIcYyK 7rJLn6zR4uQE20qGeEWNV745KtXShZUCZyDSn9OwORGXUZjhUU5tQx8IRT//oPpjIlVm 4Ojn4LCNaSvnNuN2j4tcjIqX9VgMmpSj9BQCDyMkzTV8n0Az5yMVbc1ZBJZ4vnkoDVWa nGLfwamKR2QV9VQFE9j2oCGzFkiLoWPnrmhvqtBSgqBbnm6rmN96L3GR6/B+M6BCogdC ip/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=l565x4qTFgq+ykA1/rHZfQVr64u+DPXBHDXbMuzIOC4=; b=mNPRbbPOYTyP6ivi6T08qf8J4P5SMUPWbFZZmO7NhWx5OaMjYJ5MWVI8rIP0JRI/lN wiY1DaPu7jTo5VGvBbWnGMge6beP5qkXZ6Cq73FMIeQYyhKnXaF5dNRqegp98E0MEZgr K+2WBKEE135xLEpSEk1VowRW8VZPlZCeI/G42EUM8YSkm2DfJaAAzqE7yO9393ZiWYyE 47D6y0ezoPbyR7jijMRR2XI59OZt9Y85Zt77IyeASWsb+slGyPEWz/zVXAv5AyjPB9nd zqhuKoe2+YGlCHYgHjf+K4JNN5JxBAlafCrhbbS/BcjNf3rvotDSFVuJ7p+feysYhg3h +hoQ== X-Gm-Message-State: AODbwcDw5vtPYjrJROqFAxcPp+1U8FiatMb7rhyXGl2qVlRtFsCcNiqR RPVCWTTx35LGGz+iRB0= X-Received: by 10.84.178.131 with SMTP id z3mr10820531plb.175.1496597746651; Sun, 04 Jun 2017 10:35:46 -0700 (PDT) Received: from bigtime.ASUS (cpe-98-155-27-246.hawaii.res.rr.com. [98.155.27.246]) by smtp.gmail.com with ESMTPSA id j191sm52854419pgc.53.2017.06.04.10.35.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 04 Jun 2017 10:35:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Sun, 4 Jun 2017 10:34:25 -0700 Message-Id: <20170604173509.29684-26-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170604173509.29684-1-rth@twiddle.net> References: <20170604173509.29684-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400e:c00::241 Subject: [Qemu-devel] [PULL 25/69] target/s390x: Use unwind data for helper_lctl 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, aurelien@aurel32.net Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 9 +++++---- target/s390x/translate.c | 1 - 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 68e3817..614cdb2 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -878,18 +878,19 @@ void HELPER(lctlg)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3) void HELPER(lctl)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3) { + uintptr_t ra = GETPC(); S390CPU *cpu = s390_env_get_cpu(env); bool PERchanged = false; - int i; uint64_t src = a2; - uint32_t val; + uint32_t i; for (i = r1;; i = (i + 1) % 16) { - val = cpu_ldl_data(env, src); + uint32_t val = cpu_ldl_data_ra(env, src, ra); if ((uint32_t)env->cregs[i] != val && i >= 9 && i <= 11) { PERchanged = true; } - env->cregs[i] = (env->cregs[i] & 0xFFFFFFFF00000000ULL) | val; + env->cregs[i] = deposit64(env->cregs[i], 0, 32, val); + HELPER_LOG("load ctl %d from 0x%" PRIx64 " == 0x%x\n", i, src, val); src += sizeof(uint32_t); if (i == r3) { diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 65ae573..26f6b37 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -2540,7 +2540,6 @@ static ExitStatus op_lctl(DisasContext *s, DisasOps *o) TCGv_i32 r1 = tcg_const_i32(get_field(s->fields, r1)); TCGv_i32 r3 = tcg_const_i32(get_field(s->fields, r3)); check_privileged(s); - potential_page_fault(s); gen_helper_lctl(cpu_env, r1, o->in2, r3); tcg_temp_free_i32(r1); tcg_temp_free_i32(r3);