From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 149565404500942.55354627635677; Wed, 24 May 2017 12:27:25 -0700 (PDT) Received: from localhost ([::1]:56465 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbwI-0005Ei-Dj for importer@patchew.org; Wed, 24 May 2017 15:27:22 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45184) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbry-0001a6-Rk for qemu-devel@nongnu.org; Wed, 24 May 2017 15:22:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbrx-0000r0-Uh for qemu-devel@nongnu.org; Wed, 24 May 2017 15:22:54 -0400 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:35364) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbrx-0000qs-R4 for qemu-devel@nongnu.org; Wed, 24 May 2017 15:22:53 -0400 Received: by mail-qt0-x242.google.com with SMTP id r58so27540833qtb.2 for ; Wed, 24 May 2017 12:22:53 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.22.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:22:52 -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=+GfOcnKSDkkX/FFhxaDP4mO/IW/nyKPMH5vrdv1okg8=; b=UkvjMBzuaKdqI/5a5cSca7qru+uEMyP6wAMUH+534Mm/39+CDyN8eGDMyiQKpAuue1 CjfYUiivEUgQAOD83A26IHy6bM1921CXIghwkHqdwub8gEi3orE2GuLNvbSlWT2tIixR wKuyi0aRnZ5UaOIktNbo5rEYCstsiil5dEANQ79HTRHjm6oKRoI5d0fpf16KTdcdzWpa WpBFn+H3Chqhby7rPNGQDgsn/hBJy6o6O6acbyYDMTtvQNmphrQdTAuYsNwh3bNKZG8i DQDDD2VxW+7G9pzv9yp00ZZ/MUkqAy4qpXoUBTEOQ2X6UnW34f5rbli0kx5D9n6baGVa xFkQ== 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=+GfOcnKSDkkX/FFhxaDP4mO/IW/nyKPMH5vrdv1okg8=; b=lw5GyOmqj1YhkEKoBi2HMk9wZCt4w3mJH9Xz7UXje2uQwClUzrfjjNd4riO8rxyPGL KmXpUfZWQHDOS+Ofk3Ps5S96OaU35BEKYrYgY/X1G5rd53MJptqS17syH7mbJGchqUsm 1vvQd8W7t3OC4RVPKR4sJtVIOd0mYW4DQC79YjpbyQ1F9joIYM+Iw5oooX7FZ+c3e/06 ahVzms1rQ2DsQJpq6nGfeJ3OH6AnCTSgQajBej5ZKtrV+3RF29Kjj3gqGVoqKI6+v3GQ c9NqZPfUrUuRPQCviCuMV0r/ZpJMyhrD5EvoWsaezegU3S4Otk5SVuFhHb3s+toAjxMr Qv2w== X-Gm-Message-State: AODbwcBZj62rhhtYd2ucoqEe0U/Oi0xK2zD6dZQrU7/ferqOgIDDqgGS lfuaTxLRfn52KQ== X-Received: by 10.200.49.100 with SMTP id h33mr38672396qtb.52.1495653773327; Wed, 24 May 2017 12:22:53 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:14 -0700 Message-Id: <20170524192246.15905-2-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v2 01/33] target/s390x: Use cpu_loop_exit_restore for tlb_fill 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 0c6a0d9..e3325a4 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -41,15 +41,9 @@ void tlb_fill(CPUState *cs, target_ulong addr, MMUAccessType access_type, int mmu_idx, uintptr_t retaddr) { - int ret; - - ret =3D s390_cpu_handle_mmu_fault(cs, addr, access_type, mmu_idx); + int ret =3D s390_cpu_handle_mmu_fault(cs, addr, access_type, mmu_idx); if (unlikely(ret !=3D 0)) { - if (likely(retaddr)) { - /* now we have a real cpu fault */ - cpu_restore_state(cs, retaddr); - } - cpu_loop_exit(cs); + cpu_loop_exit_restore(cs, retaddr); } } =20 --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495653893371106.86464191014363; Wed, 24 May 2017 12:24:53 -0700 (PDT) Received: from localhost ([::1]:56452 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbtr-00034T-QJ for importer@patchew.org; Wed, 24 May 2017 15:24:51 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45196) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbs0-0001aY-Gd for qemu-devel@nongnu.org; Wed, 24 May 2017 15:22:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbrz-0000rg-Cj for qemu-devel@nongnu.org; Wed, 24 May 2017 15:22:56 -0400 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:33218) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbrz-0000ra-7l for qemu-devel@nongnu.org; Wed, 24 May 2017 15:22:55 -0400 Received: by mail-qt0-x241.google.com with SMTP id a46so27548148qte.0 for ; Wed, 24 May 2017 12:22:55 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.22.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:22:54 -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=bDLaV6+o6QIggy65iquFS5FWIoIEkBJMsJxcnR3LNlc=; b=c+lN/yx+KPJC2+mFeFsaTZv2wysrp02d8khHJVvMlfLnRSsXztJNLzcQz4DnzIFhRz EPPkK9xYwK5rmxAmX6HxzPc0CGS6GEntNw/UYq0qXHgbZnAmg6sAXQoVFbFP9IYK/uCv o5jy8UeC1yH4c6EP2bYRyRNkzSwLu8xVmvrUqRdttQVt8rWdAukYKbprQYJ7Xe7P95nc tEQtMWIxAdm1mknI0g2gJf9YWk0HLjXJWYAvEIZOiZWaguslHjBRhgwZ9C/U4OYHvKul YGFyKwWmPPNPthMBrS4mHbln5S6/LX4wpgUogeHa5PpyEMVEU3kNPTvKkgpOtSIYG4UZ yCrA== 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=bDLaV6+o6QIggy65iquFS5FWIoIEkBJMsJxcnR3LNlc=; b=QC1CJc4ph1+HamZBgR0lUTnCeSw906IDmKCZcqT0q+04cVrhbD++QVn0lBKe2X1rep F5VPUmpBF5SmScpXJtqRQm6nbXLeRh9ggkX1gyFrVaBRmYkrhFvRPBG0iUwwjItgSdKJ VMHPjI5wqm5YersYdSFmPGTmLMe86EUKUQubm5o6+zOKLCMYEUcMpPmCRw9jJghjJRm5 tQIDu9O1RfzWymMNj3atgShBGBCOT+VgzfTzXjTvH5ml4n6M0mpljZzV3O0zIbdhrsw7 NSut7yJGH6q0Qq4jRWxHGQm3UvanOu8kc9ft8KD3rAynVWa7JmQVubXhb7PH5U9wp7Cz 5jvg== X-Gm-Message-State: AODbwcB0fvcsP7U5IR9oeGrZnPSYF2J5PpaOClgFd34vm0FAe617khEX aPPCHJg8ynVxKQ== X-Received: by 10.200.44.36 with SMTP id d33mr38041427qta.19.1495653774670; Wed, 24 May 2017 12:22:54 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:15 -0700 Message-Id: <20170524192246.15905-3-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::241 Subject: [Qemu-devel] [PATCH v2 02/33] target/s390x: Move helper_ex to end of file 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This will avoid needing forward declarations in following patches. Signed-off-by: Richard Henderson Reviewed-by: Aurelien Jarno --- target/s390x/mem_helper.c | 161 +++++++++++++++++++++++-------------------= ---- 1 file changed, 81 insertions(+), 80 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index e3325a4..90b62fa 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -436,86 +436,6 @@ static uint32_t helper_icm(CPUS390XState *env, uint32_= t r1, uint64_t address, return cc; } =20 -/* execute instruction - this instruction executes an insn modified with the contents of r1 - it does not change the executed instruction in memory - it does not change the program counter - in other words: tricky... - currently implemented by interpreting the cases it is most commonly use= d in -*/ -uint32_t HELPER(ex)(CPUS390XState *env, uint32_t cc, uint64_t v1, - uint64_t addr, uint64_t ret) -{ - S390CPU *cpu =3D s390_env_get_cpu(env); - uint16_t insn =3D cpu_lduw_code(env, addr); - - HELPER_LOG("%s: v1 0x%lx addr 0x%lx insn 0x%x\n", __func__, v1, addr, - insn); - if ((insn & 0xf0ff) =3D=3D 0xd000) { - uint32_t l, insn2, b1, b2, d1, d2; - - l =3D v1 & 0xff; - insn2 =3D cpu_ldl_code(env, addr + 2); - b1 =3D (insn2 >> 28) & 0xf; - b2 =3D (insn2 >> 12) & 0xf; - d1 =3D (insn2 >> 16) & 0xfff; - d2 =3D insn2 & 0xfff; - switch (insn & 0xf00) { - case 0x200: - helper_mvc(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2)); - break; - case 0x400: - cc =3D helper_nc(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2)); - break; - case 0x500: - cc =3D helper_clc(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2)); - break; - case 0x600: - cc =3D helper_oc(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2)); - break; - case 0x700: - cc =3D helper_xc(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2)); - break; - case 0xc00: - helper_tr(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2)); - break; - case 0xd00: - cc =3D helper_trt(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2)); - break; - default: - goto abort; - } - } else if ((insn & 0xff00) =3D=3D 0x0a00) { - /* supervisor call */ - HELPER_LOG("%s: svc %ld via execute\n", __func__, (insn | v1) & 0x= ff); - env->psw.addr =3D ret - 4; - env->int_svc_code =3D (insn | v1) & 0xff; - env->int_svc_ilen =3D 4; - helper_exception(env, EXCP_SVC); - } else if ((insn & 0xff00) =3D=3D 0xbf00) { - uint32_t insn2, r1, r3, b2, d2; - - insn2 =3D cpu_ldl_code(env, addr + 2); - r1 =3D (insn2 >> 20) & 0xf; - r3 =3D (insn2 >> 16) & 0xf; - b2 =3D (insn2 >> 12) & 0xf; - d2 =3D insn2 & 0xfff; - cc =3D helper_icm(env, r1, get_address(env, 0, b2, d2), r3); - } else { - abort: - cpu_abort(CPU(cpu), "EXECUTE on instruction prefix 0x%x not implem= ented\n", - insn); - } - return cc; -} - /* load access registers r1 to r3 from memory at a2 */ void HELPER(lam)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3) { @@ -1262,3 +1182,84 @@ uint64_t HELPER(lra)(CPUS390XState *env, uint64_t ad= dr) return ret; } #endif + +/* execute instruction + this instruction executes an insn modified with the contents of r1 + it does not change the executed instruction in memory + it does not change the program counter + in other words: tricky... + currently implemented by interpreting the cases it is most commonly use= d. +*/ +uint32_t HELPER(ex)(CPUS390XState *env, uint32_t cc, uint64_t v1, + uint64_t addr, uint64_t ret) +{ + S390CPU *cpu =3D s390_env_get_cpu(env); + uint16_t insn =3D cpu_lduw_code(env, addr); + + HELPER_LOG("%s: v1 0x%lx addr 0x%lx insn 0x%x\n", __func__, v1, addr, + insn); + if ((insn & 0xf0ff) =3D=3D 0xd000) { + uint32_t l, insn2, b1, b2, d1, d2; + + l =3D v1 & 0xff; + insn2 =3D cpu_ldl_code(env, addr + 2); + b1 =3D (insn2 >> 28) & 0xf; + b2 =3D (insn2 >> 12) & 0xf; + d1 =3D (insn2 >> 16) & 0xfff; + d2 =3D insn2 & 0xfff; + switch (insn & 0xf00) { + case 0x200: + helper_mvc(env, l, get_address(env, 0, b1, d1), + get_address(env, 0, b2, d2)); + break; + case 0x400: + cc =3D helper_nc(env, l, get_address(env, 0, b1, d1), + get_address(env, 0, b2, d2)); + break; + case 0x500: + cc =3D helper_clc(env, l, get_address(env, 0, b1, d1), + get_address(env, 0, b2, d2)); + break; + case 0x600: + cc =3D helper_oc(env, l, get_address(env, 0, b1, d1), + get_address(env, 0, b2, d2)); + break; + case 0x700: + cc =3D helper_xc(env, l, get_address(env, 0, b1, d1), + get_address(env, 0, b2, d2)); + break; + case 0xc00: + helper_tr(env, l, get_address(env, 0, b1, d1), + get_address(env, 0, b2, d2)); + break; + case 0xd00: + cc =3D helper_trt(env, l, get_address(env, 0, b1, d1), + get_address(env, 0, b2, d2)); + break; + default: + goto abort; + } + } else if ((insn & 0xff00) =3D=3D 0x0a00) { + /* supervisor call */ + HELPER_LOG("%s: svc %ld via execute\n", __func__, (insn | v1) & 0x= ff); + env->psw.addr =3D ret - 4; + env->int_svc_code =3D (insn | v1) & 0xff; + env->int_svc_ilen =3D 4; + helper_exception(env, EXCP_SVC); + } else if ((insn & 0xff00) =3D=3D 0xbf00) { + uint32_t insn2, r1, r3, b2, d2; + + insn2 =3D cpu_ldl_code(env, addr + 2); + r1 =3D (insn2 >> 20) & 0xf; + r3 =3D (insn2 >> 16) & 0xf; + b2 =3D (insn2 >> 12) & 0xf; + d2 =3D insn2 & 0xfff; + cc =3D helper_icm(env, r1, get_address(env, 0, b2, d2), r3); + } else { + abort: + cpu_abort(CPU(cpu), + "EXECUTE on instruction prefix 0x%x not implemented\n", + insn); + } + return cc; +} --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654188154194.69183838249694; Wed, 24 May 2017 12:29:48 -0700 (PDT) Received: from localhost ([::1]:56475 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbyc-0007zc-Ay for importer@patchew.org; Wed, 24 May 2017 15:29:46 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45207) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbs1-0001bE-Gh for qemu-devel@nongnu.org; Wed, 24 May 2017 15:22:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbs0-0000s2-Na for qemu-devel@nongnu.org; Wed, 24 May 2017 15:22:57 -0400 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:32986) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbs0-0000rs-JR for qemu-devel@nongnu.org; Wed, 24 May 2017 15:22:56 -0400 Received: by mail-qk0-x242.google.com with SMTP id o85so27686811qkh.0 for ; Wed, 24 May 2017 12:22:56 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.22.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:22:55 -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=jzDS+nqhLhBtVDseP6foWmrqDQ5BH63Rgusq9cnAggs=; b=I4k1fm0Uxzm+P5oNmCfN5y07Wj58Xv7ZYdSzZPU4tvJA7Y/gxhxpCUWAmcQkOsAYpL Eqiq97t2ikoKrtuWvmhzxEzlNk2iR0skMFkFE/AVmMM0yMSdA953WHQ1aldfGss4xQrY F0WmD0rz3n+TNsXBj6aJiNiegSDpBoSkfn4D29ipUOzHRVDULrcnkDPoOlVXQ+SRUjQZ mV2Jx7shT8nNEGGatOBgpYr86OJjyxbqKWUQ/U+3Uj2EplzCpLiVAv2fCtVAvtxGkZdz ASH/rRLkh7J/F2n8YQkZwjPL9YPghP3Lj0NfTmafWFotgYzM+Kp6E4tbAdfHbU56DA2Y JQjw== 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=jzDS+nqhLhBtVDseP6foWmrqDQ5BH63Rgusq9cnAggs=; b=PdenDRXWMoxqUkXj1cR6SQoa6P3W1MO1bHHQvO+epAjwFvNYwAFSI5aPAlU82v4vCc 2q2Cs//QqTvH5JAUm3dRrFeL/ptORhddOYc3iZ5/XKS/1KJD2W30yyEWvGAfm1+5GW2A Cw5HofX3DMGAHwMjwEU+4Nq2eak7N2LdZku0OriXazNXe98gwHcLnnRLjFGsYVLZd0Kv nvUiCp/cvl046tCawW60hd25qP6Qk2UvCb+PmlZjNNK8Iiy2ZKKAFtTifCynKSDhPW4p weGy1BmkNwbUpl2uKdQowJ06d9TF03nTMZfGzUltVIO0xo/BVKq6seZ2XyXvNYqxSXQC fRVw== X-Gm-Message-State: AODbwcCrjinGdvy59ZOyCJKsWkoVR7nDoT+SkgxVSoaTJ/WX7Y7Neniw wCr8Hns1DbgodA== X-Received: by 10.55.77.215 with SMTP id a206mr27793496qkb.11.1495653776080; Wed, 24 May 2017 12:22:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:16 -0700 Message-Id: <20170524192246.15905-4-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::242 Subject: [Qemu-devel] [PATCH v2 03/33] target/s390x: Use unwind data for helper_nc 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Aurelien Jarno --- target/s390x/mem_helper.c | 31 ++++++++++++++++++------------- target/s390x/translate.c | 1 - 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 90b62fa..7d6133b 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -119,23 +119,28 @@ static void fast_memmove(CPUS390XState *env, uint64_t= dest, uint64_t src, } =20 /* and on array */ -uint32_t HELPER(nc)(CPUS390XState *env, uint32_t l, uint64_t dest, - uint64_t src) +static uint32_t do_helper_nc(CPUS390XState *env, uint32_t l, uint64_t dest, + uint64_t src, uintptr_t ra) { - int i; - unsigned char x; - uint32_t cc =3D 0; + uint32_t i; + uint8_t c =3D 0; =20 HELPER_LOG("%s l %d dest %" PRIx64 " src %" PRIx64 "\n", __func__, l, dest, src); + for (i =3D 0; i <=3D l; i++) { - x =3D cpu_ldub_data(env, dest + i) & cpu_ldub_data(env, src + i); - if (x) { - cc =3D 1; - } - cpu_stb_data(env, dest + i, x); + uint8_t x =3D cpu_ldub_data_ra(env, src + i, ra); + x &=3D cpu_ldub_data_ra(env, dest + i, ra); + c |=3D x; + cpu_stb_data_ra(env, dest + i, x, ra); } - return cc; + return c !=3D 0; +} + +uint32_t HELPER(nc)(CPUS390XState *env, uint32_t l, uint64_t dest, + uint64_t src) +{ + return do_helper_nc(env, l, dest, src, GETPC()); } =20 /* xor on array */ @@ -1213,8 +1218,8 @@ uint32_t HELPER(ex)(CPUS390XState *env, uint32_t cc, = uint64_t v1, get_address(env, 0, b2, d2)); break; case 0x400: - cc =3D helper_nc(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2)); + cc =3D do_helper_nc(env, l, get_address(env, 0, b1, d1), + get_address(env, 0, b2, d2), 0); break; case 0x500: cc =3D helper_clc(env, l, get_address(env, 0, b1, d1), diff --git a/target/s390x/translate.c b/target/s390x/translate.c index d6736e4..7e4cc6c 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -3043,7 +3043,6 @@ static ExitStatus op_nabsf128(DisasContext *s, DisasO= ps *o) static ExitStatus op_nc(DisasContext *s, DisasOps *o) { TCGv_i32 l =3D tcg_const_i32(get_field(s->fields, l1)); - potential_page_fault(s); gen_helper_nc(cc_op, cpu_env, l, o->addr1, o->in2); tcg_temp_free_i32(l); set_cc_static(s); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 149565403552955.01589432835942; Wed, 24 May 2017 12:27:15 -0700 (PDT) Received: from localhost ([::1]:56464 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbw9-000558-5c for importer@patchew.org; Wed, 24 May 2017 15:27:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45219) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbs3-0001dc-1e for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbs2-0000tR-4w for qemu-devel@nongnu.org; Wed, 24 May 2017 15:22:59 -0400 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:36855) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbs2-0000sh-0p for qemu-devel@nongnu.org; Wed, 24 May 2017 15:22:58 -0400 Received: by mail-qk0-x243.google.com with SMTP id y128so27716646qka.3 for ; Wed, 24 May 2017 12:22:57 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.22.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:22:56 -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=NwvODu1xD+TODE/9KLU2p6i5OsQt1Ke9+/yWgpQYoeA=; b=tHIm7i1p5iaKv0xv7D1aJevudiUFaLAY4FzIiPrcGJi8wZwZTTlZPzo9HUJB9RiMyx 9V/ODFhfbR3DfeO8R7/0FLA/fv2luE6TSIwp2+zTxOfIH0JqxhaWtF21bj52MG/CveSW XTBl/UP1adSvu7OsqVg5b17y85eNYZLNRmidLCnHTca881XNPT1kk7KPDwD/fnMsg0ew 6zubvmARwH5w4byD+TjKbu5EqrpHvTAFCc/nuxERZrtkWP9eStv7PiYJobwP5GA00S3n eI1UzVpGDkMVi4PjEoDrjBM1GKps8mshMPyauGBBsk1G64J4RoV3M6m4vTuPGBytk2W5 nThg== 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=NwvODu1xD+TODE/9KLU2p6i5OsQt1Ke9+/yWgpQYoeA=; b=quJIDFUGSBW1Hih1Dm0yt8368BefuK2XgjheHQdXo+Dq0Rkl1scRdnpJlvAZ8g5Xv8 8kM9UYzcV3nflhZJeqbaa2Oh7jiFgTXhtHrZHXMScd1xaGZDLu8uy5bgbgJY9YOKDh8z nMi7v2OlDzLWfsX2puvpFyJdvyrJnGhS2Pe3VQFYeuAE6iLO2RQzaE4his0fS3xFXRC9 2sYV4f1FJd7U9T/VYVKrjAb1ysPhBL0nwfMa6aT/ntXkBehiaP8wwiQ634TYh5Ft7xwp oLWi74qdOTYoJM9/FgKmbsYyZC0pVB8SvT6yqJU+3xJ/QM1zr0Enuvp3dmPH6xYuE7k2 +lrg== X-Gm-Message-State: AODbwcAPv9MK5cQ8g6/cjjgWEEH1UV1uTGucXTBJwiVKh1LANetHsol7 tlTk0kLytSkb2A== X-Received: by 10.55.201.68 with SMTP id q65mr35883258qki.198.1495653777492; Wed, 24 May 2017 12:22:57 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:17 -0700 Message-Id: <20170524192246.15905-5-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::243 Subject: [Qemu-devel] [PATCH v2 04/33] target/s390x: Use unwind data for helper_oc 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Aurelien Jarno --- target/s390x/mem_helper.c | 31 ++++++++++++++++++------------- target/s390x/translate.c | 1 - 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 7d6133b..b4b50d1 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -171,23 +171,28 @@ uint32_t HELPER(xc)(CPUS390XState *env, uint32_t l, u= int64_t dest, } =20 /* or on array */ -uint32_t HELPER(oc)(CPUS390XState *env, uint32_t l, uint64_t dest, - uint64_t src) +static uint32_t do_helper_oc(CPUS390XState *env, uint32_t l, uint64_t dest, + uint64_t src, uintptr_t ra) { - int i; - unsigned char x; - uint32_t cc =3D 0; + uint32_t i; + uint8_t c =3D 0; =20 HELPER_LOG("%s l %d dest %" PRIx64 " src %" PRIx64 "\n", __func__, l, dest, src); + for (i =3D 0; i <=3D l; i++) { - x =3D cpu_ldub_data(env, dest + i) | cpu_ldub_data(env, src + i); - if (x) { - cc =3D 1; - } - cpu_stb_data(env, dest + i, x); + uint8_t x =3D cpu_ldub_data_ra(env, src + i, ra); + x |=3D cpu_ldub_data_ra(env, dest + i, ra); + c |=3D x; + cpu_stb_data_ra(env, dest + i, x, ra); } - return cc; + return c !=3D 0; +} + +uint32_t HELPER(oc)(CPUS390XState *env, uint32_t l, uint64_t dest, + uint64_t src) +{ + return do_helper_oc(env, l, dest, src, GETPC()); } =20 /* memmove */ @@ -1226,8 +1231,8 @@ uint32_t HELPER(ex)(CPUS390XState *env, uint32_t cc, = uint64_t v1, get_address(env, 0, b2, d2)); break; case 0x600: - cc =3D helper_oc(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2)); + cc =3D do_helper_oc(env, l, get_address(env, 0, b1, d1), + get_address(env, 0, b2, d2), 0); break; case 0x700: cc =3D helper_xc(env, l, get_address(env, 0, b1, d1), diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 7e4cc6c..db86b70 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -3077,7 +3077,6 @@ static ExitStatus op_negf128(DisasContext *s, DisasOp= s *o) static ExitStatus op_oc(DisasContext *s, DisasOps *o) { TCGv_i32 l =3D tcg_const_i32(get_field(s->fields, l1)); - potential_page_fault(s); gen_helper_oc(cc_op, cpu_env, l, o->addr1, o->in2); tcg_temp_free_i32(l); set_cc_static(s); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654181257606.6845111475752; Wed, 24 May 2017 12:29:41 -0700 (PDT) Received: from localhost ([::1]:56474 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbyU-0007sJ-QD for importer@patchew.org; Wed, 24 May 2017 15:29:38 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45237) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbs5-0001fS-5T for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbs3-0000uQ-L1 for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:01 -0400 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:36856) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbs3-0000uL-G2 for qemu-devel@nongnu.org; Wed, 24 May 2017 15:22:59 -0400 Received: by mail-qk0-x244.google.com with SMTP id y128so27716720qka.3 for ; Wed, 24 May 2017 12:22:59 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.22.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:22:58 -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=QfQKzC8hZ3MZ0Q1s22I3xb0JRewn7ybBC4gQ+TELFOQ=; b=E8x0DzQCmPgzailtTq1rKZ7LqXgPHlgGo1bCKgci6Rvgtbi9lJmRwWZ8PI3VAD+tZc Cmr6TuDXnyW1vz+McDOIFAmWQh0RTHy8L8UVnfHPjnqmJBB+I6D0QHtD7SFfhzRABLsx /XDiOTb6c3f1J5U7OaoKmljW2jfxShwpDbwy47c1dzjCzazVtg+AXiAwry++hIYYy0na KMp6qafUcNQ6Q3S5U33TjgVaVQH1PzMD8sIGv+ZoOvlYL3Wx4S+8hH4s6Gk/rXMdPk/z mWK7uhzL2N2GqjGkJOcuUjsPDEfe24j9hu7LLMqNhPaZYIu882q3zYAtxjwlm11jzejh OeBA== 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=QfQKzC8hZ3MZ0Q1s22I3xb0JRewn7ybBC4gQ+TELFOQ=; b=M2w/wJmrJG9bodCX8ROYLBWJqN3fd+yky0T5qkCHcohxoMwa5qicOpR4zDlcGyEvLn LnNGI2UUWcvxh9Vj6XqVlHnBRWYq/bqjRTBuBDYnvxjB+9daoItr2+vhbbZ4kJZCDR0Q BILv+sdxCYOmV0dGjubnpi5BrosqpNhl1NerPuWDIADZUocgiPBNMr+XnZPJQfRo/+ws SHgVCsI4HPD7grAchRVPZpsxLh+yEOn+3aoRKqwe91rw98co78q//YAHIz40Ix4JCopy PeabtfJSII7Cy+YIrTcv8Hs/fVVBKQQl0Z/TsTDNbEDgB/cTfrMb6HccmGh1VpN7b0bv jJ6Q== X-Gm-Message-State: AODbwcDyIe42hgebfp4K6OKNQSeQrZMf2Qs7iGhW1tn0zPVqMqCQby8n YvKva3qB9nEJL/T2d9M= X-Received: by 10.55.9.141 with SMTP id 135mr33306289qkj.20.1495653778757; Wed, 24 May 2017 12:22:58 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:18 -0700 Message-Id: <20170524192246.15905-6-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PATCH v2 05/33] target/s390x: Use unwind data for helper_xc 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Aurelien Jarno --- target/s390x/mem_helper.c | 44 ++++++++++++++++++++++++-------------------- target/s390x/translate.c | 1 - 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index b4b50d1..b71437a 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -57,7 +57,7 @@ void tlb_fill(CPUState *cs, target_ulong addr, MMUAccessT= ype access_type, #endif =20 /* Reduce the length so that addr + len doesn't cross a page boundary. */ -static inline uint64_t adj_len_to_page(uint64_t len, uint64_t addr) +static inline uint32_t adj_len_to_page(uint32_t len, uint64_t addr) { #ifndef CONFIG_USER_ONLY if ((addr & ~TARGET_PAGE_MASK) + len - 1 >=3D TARGET_PAGE_SIZE) { @@ -68,7 +68,7 @@ static inline uint64_t adj_len_to_page(uint64_t len, uint= 64_t addr) } =20 static void fast_memset(CPUS390XState *env, uint64_t dest, uint8_t byte, - uint32_t l) + uint32_t l, uintptr_t ra) { int mmu_idx =3D cpu_mmu_index(env, false); =20 @@ -76,14 +76,14 @@ static void fast_memset(CPUS390XState *env, uint64_t de= st, uint8_t byte, void *p =3D tlb_vaddr_to_host(env, dest, MMU_DATA_STORE, mmu_idx); if (p) { /* Access to the whole page in write mode granted. */ - int l_adj =3D adj_len_to_page(l, dest); + uint32_t l_adj =3D adj_len_to_page(l, dest); memset(p, byte, l_adj); dest +=3D l_adj; l -=3D l_adj; } else { /* We failed to get access to the whole page. The next write access will likely fill the QEMU TLB for the next iteration= . */ - cpu_stb_data(env, dest, byte); + cpu_stb_data_ra(env, dest, byte, ra); dest++; l--; } @@ -100,7 +100,7 @@ static void fast_memmove(CPUS390XState *env, uint64_t d= est, uint64_t src, void *dest_p =3D tlb_vaddr_to_host(env, dest, MMU_DATA_STORE, mmu_= idx); if (src_p && dest_p) { /* Access to both whole pages granted. */ - int l_adj =3D adj_len_to_page(l, src); + uint32_t l_adj =3D adj_len_to_page(l, src); l_adj =3D adj_len_to_page(l_adj, dest); memmove(dest_p, src_p, l_adj); src +=3D l_adj; @@ -144,30 +144,34 @@ uint32_t HELPER(nc)(CPUS390XState *env, uint32_t l, u= int64_t dest, } =20 /* xor on array */ -uint32_t HELPER(xc)(CPUS390XState *env, uint32_t l, uint64_t dest, - uint64_t src) +static uint32_t do_helper_xc(CPUS390XState *env, uint32_t l, uint64_t dest, + uint64_t src, uintptr_t ra) { - int i; - unsigned char x; - uint32_t cc =3D 0; + uint32_t i; + uint8_t c =3D 0; =20 HELPER_LOG("%s l %d dest %" PRIx64 " src %" PRIx64 "\n", __func__, l, dest, src); =20 /* xor with itself is the same as memset(0) */ if (src =3D=3D dest) { - fast_memset(env, dest, 0, l + 1); + fast_memset(env, dest, 0, l + 1, ra); return 0; } =20 for (i =3D 0; i <=3D l; i++) { - x =3D cpu_ldub_data(env, dest + i) ^ cpu_ldub_data(env, src + i); - if (x) { - cc =3D 1; - } - cpu_stb_data(env, dest + i, x); + uint8_t x =3D cpu_ldub_data_ra(env, src + i, ra); + x ^=3D cpu_ldub_data_ra(env, dest + i, ra); + c |=3D x; + cpu_stb_data_ra(env, dest + i, x, ra); } - return cc; + return c !=3D 0; +} + +uint32_t HELPER(xc)(CPUS390XState *env, uint32_t l, uint64_t dest, + uint64_t src) +{ + return do_helper_xc(env, l, dest, src, GETPC()); } =20 /* or on array */ @@ -206,7 +210,7 @@ void HELPER(mvc)(CPUS390XState *env, uint32_t l, uint64= _t dest, uint64_t src) /* mvc with source pointing to the byte after the destination is the same as memset with the first source byte */ if (dest =3D=3D (src + 1)) { - fast_memset(env, dest, cpu_ldub_data(env, src), l + 1); + fast_memset(env, dest, cpu_ldub_data(env, src), l + 1, 0); return; } =20 @@ -1235,8 +1239,8 @@ uint32_t HELPER(ex)(CPUS390XState *env, uint32_t cc, = uint64_t v1, get_address(env, 0, b2, d2), 0); break; case 0x700: - cc =3D helper_xc(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2)); + cc =3D do_helper_xc(env, l, get_address(env, 0, b1, d1), + get_address(env, 0, b2, d2), 0); break; case 0xc00: helper_tr(env, l, get_address(env, 0, b1, d1), diff --git a/target/s390x/translate.c b/target/s390x/translate.c index db86b70..40a4099 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -4160,7 +4160,6 @@ static ExitStatus op_xc(DisasContext *s, DisasOps *o) /* But in general we'll defer to a helper. */ o->in2 =3D get_address(s, 0, b2, d2); t32 =3D tcg_const_i32(l); - potential_page_fault(s); gen_helper_xc(cc_op, cpu_env, t32, o->addr1, o->in2); tcg_temp_free_i32(t32); set_cc_static(s); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654331217142.92173753070824; Wed, 24 May 2017 12:32:11 -0700 (PDT) Received: from localhost ([::1]:56488 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDc0v-0001a3-OS for importer@patchew.org; Wed, 24 May 2017 15:32:09 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45250) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbs6-0001fx-4b for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbs4-0000uh-S9 for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:02 -0400 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:33817) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbs4-0000ud-Nd for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:00 -0400 Received: by mail-qk0-x243.google.com with SMTP id u75so27644832qka.1 for ; Wed, 24 May 2017 12:23:00 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.22.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:22:59 -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=ahfHbShvbRxkLrUNimGW877OGdC8iID2PC42gDnoROk=; b=ekYBmYT7R9gjzQ9CoMpUn4R+vwbck1PejU/BFwQhqt9swOYM+lwEI3iOgB6LFhCD1N iBhZsgurE1IyvHIeYqUsdYP1HQtjRSWHYa5ytSZunXI5/kGao1VkMaPmBsm2YO3ddITX YgSo1JAexedxgQoSM97VEzn93eD7CCdFUAdTm+5z6NKig2CfcaVaHRwXtNbY/Zr77ZG2 17dIAIoSIG52nhEBpSjD5+rib7vhczBWndc2s7Se/TuHI7FYItlTOBaHuCNFEOIBshVN ZZoUyw3XLu8GluI8+qTk1DrxFjsyV8N2doNVwRHBapHEpcJlukRW9falmH1K5uWJ/IgV D42g== 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=ahfHbShvbRxkLrUNimGW877OGdC8iID2PC42gDnoROk=; b=n/njXgqMWGOLpm5Lp+/4SHHJHyS48Usn9JLDjOTHaEH1fXGjCzb0yxlj5ZtR7fc422 DFbj4tpfln+GWmMRw1X7aN+boWZ7nMqlauAHRYitkiUZUW1mK6fnUeOO1B7YTCn61mY3 c0Doh0MHNKakxPfb42r9QGwEbGBK4B618B8QjP4+AiRYKuUKBMXcOTbFlGkcUJ5m8B0j cyEiPyJUgzC7j345ovONYwLTVPVnAW6sl/iFp7uAWzGkbZAUuViKyO+kxdLoU/mr+sYP ebC/HO2J90b1ZX5KY/YqfXFphDDmh8XLcY5BHEx8PhnRpFM2Y20ZtloEw9zZaarVrHSk 948Q== X-Gm-Message-State: AODbwcBKAeovRDSsOLZ/vje1zg6AxLwhnKgsaUZmJVyoKPlBj6cSEdU+ C5FeD7cQ/DJV6w== X-Received: by 10.55.18.141 with SMTP id 13mr36557967qks.135.1495653780233; Wed, 24 May 2017 12:23:00 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:19 -0700 Message-Id: <20170524192246.15905-7-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::243 Subject: [Qemu-devel] [PATCH v2 06/33] target/s390x: Use unwind data for helper_mvc 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Aurelien Jarno --- target/s390x/mem_helper.c | 30 ++++++++++++++++++------------ target/s390x/translate.c | 1 - 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index b71437a..78a9ac1 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -91,7 +91,7 @@ static void fast_memset(CPUS390XState *env, uint64_t dest= , uint8_t byte, } =20 static void fast_memmove(CPUS390XState *env, uint64_t dest, uint64_t src, - uint32_t l) + uint32_t l, uintptr_t ra) { int mmu_idx =3D cpu_mmu_index(env, false); =20 @@ -110,7 +110,7 @@ static void fast_memmove(CPUS390XState *env, uint64_t d= est, uint64_t src, /* We failed to get access to one or both whole pages. The next read or write access will likely fill the QEMU TLB for the next iteration. */ - cpu_stb_data(env, dest, cpu_ldub_data(env, src)); + cpu_stb_data_ra(env, dest, cpu_ldub_data_ra(env, src, ra), ra); src++; dest++; l--; @@ -200,32 +200,38 @@ uint32_t HELPER(oc)(CPUS390XState *env, uint32_t l, u= int64_t dest, } =20 /* memmove */ -void HELPER(mvc)(CPUS390XState *env, uint32_t l, uint64_t dest, uint64_t s= rc) +static void do_helper_mvc(CPUS390XState *env, uint32_t l, uint64_t dest, + uint64_t src, uintptr_t ra) { - int i =3D 0; + uint32_t i; =20 HELPER_LOG("%s l %d dest %" PRIx64 " src %" PRIx64 "\n", __func__, l, dest, src); =20 /* mvc with source pointing to the byte after the destination is the same as memset with the first source byte */ - if (dest =3D=3D (src + 1)) { - fast_memset(env, dest, cpu_ldub_data(env, src), l + 1, 0); + if (dest =3D=3D src + 1) { + fast_memset(env, dest, cpu_ldub_data_ra(env, src, ra), l + 1, ra); return; } =20 /* mvc and memmove do not behave the same when areas overlap! */ - if ((dest < src) || (src + l < dest)) { - fast_memmove(env, dest, src, l + 1); + if (dest < src || src + l < dest) { + fast_memmove(env, dest, src, l + 1, ra); return; } =20 /* slow version with byte accesses which always work */ for (i =3D 0; i <=3D l; i++) { - cpu_stb_data(env, dest + i, cpu_ldub_data(env, src + i)); + cpu_stb_data_ra(env, dest + i, cpu_ldub_data_ra(env, src + i, ra),= ra); } } =20 +void HELPER(mvc)(CPUS390XState *env, uint32_t l, uint64_t dest, uint64_t s= rc) +{ + do_helper_mvc(env, l, dest, src, GETPC()); +} + /* compare unsigned byte arrays */ uint32_t HELPER(clc)(CPUS390XState *env, uint32_t l, uint64_t s1, uint64_t= s2) { @@ -388,7 +394,7 @@ void HELPER(mvpg)(CPUS390XState *env, uint64_t r0, uint= 64_t r1, uint64_t r2) { /* XXX missing r0 handling */ env->cc_op =3D 0; - fast_memmove(env, r1, r2, TARGET_PAGE_SIZE); + fast_memmove(env, r1, r2, TARGET_PAGE_SIZE, 0); } =20 /* string copy (c is string terminator) */ @@ -1223,8 +1229,8 @@ uint32_t HELPER(ex)(CPUS390XState *env, uint32_t cc, = uint64_t v1, d2 =3D insn2 & 0xfff; switch (insn & 0xf00) { case 0x200: - helper_mvc(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2)); + do_helper_mvc(env, l, get_address(env, 0, b1, d1), + get_address(env, 0, b2, d2), 0); break; case 0x400: cc =3D do_helper_nc(env, l, get_address(env, 0, b1, d1), diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 40a4099..729924a 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -2866,7 +2866,6 @@ static ExitStatus op_movx(DisasContext *s, DisasOps *= o) static ExitStatus op_mvc(DisasContext *s, DisasOps *o) { TCGv_i32 l =3D tcg_const_i32(get_field(s->fields, l1)); - potential_page_fault(s); gen_helper_mvc(cpu_env, l, o->addr1, o->in2); tcg_temp_free_i32(l); return NO_EXIT; --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 14956539019371000.4329371500158; Wed, 24 May 2017 12:25:01 -0700 (PDT) Received: from localhost ([::1]:56453 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbty-00039l-8S for importer@patchew.org; Wed, 24 May 2017 15:24:58 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45265) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbs7-0001gh-9g for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbs6-0000w3-Fb for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:03 -0400 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:35564) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbs6-0000vp-Ao for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:02 -0400 Received: by mail-qk0-x241.google.com with SMTP id k74so27741355qke.2 for ; Wed, 24 May 2017 12:23:02 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:01 -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=vV5pIjJyXkeAIAGlrZp1onxiOEHR82zqKpNPUR/5bPo=; b=OMJRNAvTzfEr1UF6+HEpxyT7sKxCor1IH+2cEmFm0bkYuPWGOwDGuiJ7n6ODsOAE7i Gvpt1L9o4/Onx7c1f5lJTkceSFlz4XACgoPWiGg3G9CsXoSD4ndFun6T03OTnIxGJpKk FKw5zUcFvh0YXYxnKOPHJx2VQA+ghmxmDW7tsRJxO+b8wdTSNxz2B3nEBb5n5WHnFRTP dKldhNZBZa8mcL3QogL+HVEEHQNF1Ow9/7S5WymchtL+XBRRvBadhpYLsWs1daF0T4d2 T1SfleO4Mb1L0oj3FtuvbfoKW86m/vZuuhiEDzbzpTQ1mL7sHG8uKkF0Cpl/YLMxM9Jt dRCg== 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=vV5pIjJyXkeAIAGlrZp1onxiOEHR82zqKpNPUR/5bPo=; b=SKCY60ymEN/DfU29E7vFvZ1bpcX/C2vgyFyY2hPwvkCKA+tXet3E4bsvp8GBqCYdOq SwPCJvPUrydl+BoGDCDnvlGC8FdnQpuPNb5KB0uMfyeAN2VseKNi+LGkweV2yJDLpveH Mdxeqm5KaFeIWvZYZNG27Okd7vwmeYULbAyzMHAM4eZvV1JcsLTHA7JAXgemOelf3pqd b6fDfSPbBqw42DXXsGCjTsGC681TnMb9ODR5oN3itQNmyeea9YQP6AJpl/WG/2ic/nhA 14Rny8YgpgaqPxMFlVQZAqxeutXBGftIr4BI7e/IqztJ1Y6SkcvPcK619/cG+oCrxHHJ +t5Q== X-Gm-Message-State: AODbwcDtvLR8ACJkOs6YbwpEW9V4pwikhyFBy3GgI2oEdfXGtx1+/shT X9mXZMZ5RFmDfR2Wce4= X-Received: by 10.55.149.130 with SMTP id x124mr34693457qkd.156.1495653781579; Wed, 24 May 2017 12:23:01 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:20 -0700 Message-Id: <20170524192246.15905-8-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v2 07/33] target/s390x: Use unwind data for helper_clc 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Aurelien Jarno --- target/s390x/mem_helper.c | 29 +++++++++++++++++------------ target/s390x/translate.c | 1 - 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 78a9ac1..50689bb 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -233,32 +233,37 @@ void HELPER(mvc)(CPUS390XState *env, uint32_t l, uint= 64_t dest, uint64_t src) } =20 /* compare unsigned byte arrays */ -uint32_t HELPER(clc)(CPUS390XState *env, uint32_t l, uint64_t s1, uint64_t= s2) +static uint32_t do_helper_clc(CPUS390XState *env, uint32_t l, uint64_t s1, + uint64_t s2, uintptr_t ra) { - int i; - unsigned char x, y; - uint32_t cc; + uint32_t i; + uint32_t cc =3D 0; =20 HELPER_LOG("%s l %d s1 %" PRIx64 " s2 %" PRIx64 "\n", __func__, l, s1, s2); + for (i =3D 0; i <=3D l; i++) { - x =3D cpu_ldub_data(env, s1 + i); - y =3D cpu_ldub_data(env, s2 + i); + uint8_t x =3D cpu_ldub_data_ra(env, s1 + i, ra); + uint8_t y =3D cpu_ldub_data_ra(env, s2 + i, ra); HELPER_LOG("%02x (%c)/%02x (%c) ", x, x, y, y); if (x < y) { cc =3D 1; - goto done; + break; } else if (x > y) { cc =3D 2; - goto done; + break; } } - cc =3D 0; - done: + HELPER_LOG("\n"); return cc; } =20 +uint32_t HELPER(clc)(CPUS390XState *env, uint32_t l, uint64_t s1, uint64_t= s2) +{ + return do_helper_clc(env, l, s1, s2, GETPC()); +} + /* compare logical under mask */ uint32_t HELPER(clm)(CPUS390XState *env, uint32_t r1, uint32_t mask, uint64_t addr) @@ -1237,8 +1242,8 @@ uint32_t HELPER(ex)(CPUS390XState *env, uint32_t cc, = uint64_t v1, get_address(env, 0, b2, d2), 0); break; case 0x500: - cc =3D helper_clc(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2)); + cc =3D do_helper_clc(env, l, get_address(env, 0, b1, d1), + get_address(env, 0, b2, d2), 0); break; case 0x600: cc =3D do_helper_oc(env, l, get_address(env, 0, b1, d1), diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 729924a..0f9148a 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -1901,7 +1901,6 @@ static ExitStatus op_clc(DisasContext *s, DisasOps *o) tcg_gen_qemu_ld64(cc_dst, o->in2, get_mem_index(s)); break; default: - potential_page_fault(s); vl =3D tcg_const_i32(l); gen_helper_clc(cc_op, cpu_env, vl, o->addr1, o->in2); tcg_temp_free_i32(vl); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495653904129161.4036659544987; Wed, 24 May 2017 12:25:04 -0700 (PDT) Received: from localhost ([::1]:56454 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbu1-0003CJ-PG for importer@patchew.org; Wed, 24 May 2017 15:25:01 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45282) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbs8-0001hl-IR for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbs7-0000xi-He for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:04 -0400 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:35372) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbs7-0000wa-Dw for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:03 -0400 Received: by mail-qt0-x244.google.com with SMTP id r58so27541254qtb.2 for ; Wed, 24 May 2017 12:23:03 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:02 -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=lGDvUp5XrZvKX4F6cIJ/sXxo/+YbSSLgRWjN09z7M5Y=; b=OCNxOG0zZHBdlc9Xz77uy89gLhzvxV7BiNatZ1SClgTWfkjWB6PY4tLsBbvAAfyAu2 n9iKgjcCWI8tOvtkZkj1TIq3AW4Nph/K5ztPR8BxGbAvAlcDii5EEwS+M5nyPRsXuS2l veq/xnH2DAjNLPXxHe13b5VnBjPxlJGVcttdmKxoMlp5dNNUUcyrLVGrRVm+gOkc8kk/ W4ygzMxUtiOWuToinQ16ygHp/mMgWmdJ1eROx7esrOLu97HKNst2GUgOXrhpn/8u9j+X B1yhDHZRuPQYpinO9dpyEzqCq+HhSsk9+n5X6jJp4Ui/yEBnbqux3Se8LxEHiMn7NYBs tcYQ== 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=lGDvUp5XrZvKX4F6cIJ/sXxo/+YbSSLgRWjN09z7M5Y=; b=Yg6JIntV/LLPH1cCQ2bUl8yl8XcGG8z9kb4kF2Wjj008DwWggi1tFxnRYn+q3GXuHY zEhZ2iFjywofQy8Zc8Uql9iEBCaJOaAAW5prAsNw1yxkJPxpFtRSow44dcC/L0w/lxiy kll4R2Gw4MRRQX9jMKCgGFchy53dYy7bJk27dyYksvf0417UAQKydYGSKyKumutqS03p GLbF1lCwrX3ZTb+YSdXMh77SrMC4z3R1OAI8WOb1KEonEN0j0ZPvBb+liYqzrJsuczlH 4l7ddy1jJL27S5SZe8U1Yk1yt3ZvmTile50jcoKU5ZaITozGMjB5xDcLZxteIGO2Fg3z T1Kw== X-Gm-Message-State: AODbwcDehU2sfsWKsUXfwwXUFgXpT8dP6Q1GSQUorTiJGoWSyNBKHri9 jFv2LVKuckHw3Q== X-Received: by 10.200.45.157 with SMTP id p29mr34664845qta.139.1495653782793; Wed, 24 May 2017 12:23:02 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:21 -0700 Message-Id: <20170524192246.15905-9-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::244 Subject: [Qemu-devel] [PATCH v2 08/33] target/s390x: Use unwind data for helper_clm 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 11 ++++++----- target/s390x/translate.c | 1 - 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 50689bb..3e75cae 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -268,16 +268,16 @@ uint32_t HELPER(clc)(CPUS390XState *env, uint32_t l, = uint64_t s1, uint64_t s2) uint32_t HELPER(clm)(CPUS390XState *env, uint32_t r1, uint32_t mask, uint64_t addr) { - uint8_t r, d; - uint32_t cc; + uintptr_t ra =3D GETPC(); + uint32_t cc =3D 0; =20 HELPER_LOG("%s: r1 0x%x mask 0x%x addr 0x%" PRIx64 "\n", __func__, r1, mask, addr); - cc =3D 0; + while (mask) { if (mask & 8) { - d =3D cpu_ldub_data(env, addr); - r =3D (r1 & 0xff000000UL) >> 24; + uint8_t d =3D cpu_ldub_data_ra(env, addr, ra); + uint8_t r =3D extract32(r1, 24, 8); HELPER_LOG("mask 0x%x %02x/%02x (0x%" PRIx64 ") ", mask, r, d, addr); if (r < d) { @@ -292,6 +292,7 @@ uint32_t HELPER(clm)(CPUS390XState *env, uint32_t r1, u= int32_t mask, mask =3D (mask << 1) & 0xf; r1 <<=3D 8; } + HELPER_LOG("\n"); return cc; } diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 0f9148a..34ccc22 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -1928,7 +1928,6 @@ static ExitStatus op_clm(DisasContext *s, DisasOps *o) TCGv_i32 m3 =3D tcg_const_i32(get_field(s->fields, m3)); TCGv_i32 t1 =3D tcg_temp_new_i32(); tcg_gen_extrl_i64_i32(t1, o->in1); - potential_page_fault(s); gen_helper_clm(cc_op, cpu_env, t1, m3, o->in2); set_cc_static(s); tcg_temp_free_i32(t1); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654049672459.5825948542191; Wed, 24 May 2017 12:27:29 -0700 (PDT) Received: from localhost ([::1]:56466 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbwN-0005JJ-4e for importer@patchew.org; Wed, 24 May 2017 15:27:27 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45293) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbs9-0001im-M3 for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbs8-0000zJ-Ow for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:05 -0400 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:32997) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbs8-0000yr-Kt for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:04 -0400 Received: by mail-qk0-x241.google.com with SMTP id o85so27687283qkh.0 for ; Wed, 24 May 2017 12:23:04 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:03 -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=3JtzHY/kU5dl2FTSozLeYnTXzchr4UvfJWi+tQKChcM=; b=hcv36Mxs/Rp72FkY4sdl0W/IbxG8qJLqs2oZdKai91vlXqXkRMn1EPnBbQp6lJBcXT /nJyEQcZSu3kvktdRCDfso+1J151r7A47EoglOOw0zphL8hTbP0NSXhHx8zCLUn0QrEt BOLJvXSKSYIGjKHn/d/HhLfCnm7eopvaV8a2zpwbeWKhPP57x/8o24ucK/BhO5oE5tSn MFCEGdrYu+MCa7YMRzRDwNymjGx57Lw64Pocw1SADjyg9qtLh3fzq9r5/6QO1TjGooAg IA+0ePd52yt33xxZK0HDcskCV+E/F9+jfAok2tLUgWoCjwXuAnxBXIPyIrwipj1ruihc 5FEg== 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=3JtzHY/kU5dl2FTSozLeYnTXzchr4UvfJWi+tQKChcM=; b=dj1iZNP3YctmuChGy2lI2rOVHzz0s5YEuz1q/QAavEfZAJUNhpQNdwHieLZNRu/LkX zliYByh0J16vWnWhI5TO7KzpiS/dMJhcEiTFkGkO6aZDEm6qAqnIIjZeql/QTL/Rriw/ 7bigDYBtTkBYiGlDfKNKF0UTtKxIOLgj0P4bxBqJz7LiYQFQ7R4IqY/9XI4ODl/okVam yl1bXc1hZ/5NlcPEqnmtKoFs6s0eCTAsOO+BPgCYoSR6tPcDwSHhfV+GaIFG3SEoqFvn JrJwa0a4CUcKEl9VjWYzQ3pieP9lhCwJ1U87BJz8/NaT69Mzo0LPjScI7NBM+OJwBNC1 22Cw== X-Gm-Message-State: AODbwcBtX0921UPRBxtjr9AMLVaQZ0ivApdw3fPk5mDECnscDjP0YIck Q6V/MC+cL2FVijmuPl4= X-Received: by 10.55.131.198 with SMTP id f189mr31816967qkd.187.1495653783984; Wed, 24 May 2017 12:23:03 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:22 -0700 Message-Id: <20170524192246.15905-10-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v2 09/33] target/s390x: Use unwind data for helper_srst 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 3 ++- target/s390x/translate.c | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 3e75cae..33d83e5 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -327,6 +327,7 @@ static inline uint64_t get_address_31fix(CPUS390XState = *env, int reg) uint64_t HELPER(srst)(CPUS390XState *env, uint64_t r0, uint64_t end, uint64_t str) { + uintptr_t ra =3D GETPC(); uint32_t len; uint8_t v, c =3D r0; =20 @@ -344,7 +345,7 @@ uint64_t HELPER(srst)(CPUS390XState *env, uint64_t r0, = uint64_t end, env->cc_op =3D 2; return end; } - v =3D cpu_ldub_data(env, str + len); + v =3D cpu_ldub_data_ra(env, str + len, ra); if (v =3D=3D c) { /* Character found. Set R1 to the location; R2 is unmodified.= */ env->cc_op =3D 1; diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 34ccc22..cd33c51 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -3972,7 +3972,6 @@ static ExitStatus op_stmh(DisasContext *s, DisasOps *= o) =20 static ExitStatus op_srst(DisasContext *s, DisasOps *o) { - potential_page_fault(s); gen_helper_srst(o->in1, cpu_env, regs[0], o->in1, o->in2); set_cc_static(s); return_low128(o->in2); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654493480807.4085233998949; Wed, 24 May 2017 12:34:53 -0700 (PDT) Received: from localhost ([::1]:56496 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDc3V-0004Og-P1 for importer@patchew.org; Wed, 24 May 2017 15:34:49 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45304) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsA-0001k8-Uj for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbs9-00011b-R2 for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:06 -0400 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:32998) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbs9-00011N-MV for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:05 -0400 Received: by mail-qk0-x241.google.com with SMTP id o85so27687320qkh.0 for ; Wed, 24 May 2017 12:23:05 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:04 -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=mRUXPD70hhx/jfo8v202YD9k2Uurjm2Txos7CJZxafc=; b=sOxVX5VbF06upB9LHSYkpAL4VXGZnzdwpusCjBiY8mjALiBrTdYAIk8zYnH7O0V8Jb AaPtjOCd7rjMs+tRFN0N9EB31O8xkt5U9Dsg1djf0/ClJMHyPd9e5zDAZYMNlrK9VEPu ds5zgy2oKGzYyP1H+hSjV0TTuEUKz3Uf5kyWWS9gjFCfGpickGk1OlAyB6bHkVNH0dT2 1QTcp16WXz5zLx2Xg5pYVjfDtwmwkRmDXANFfBDLi6JWOX0ovxroSodhPse2xLa26Ujs PvSXS7eu4U1upHTzgPYTmAQn+cGnbz+caiqlOACapRxAARdp8+t1VxhEZ/v4DokzwFBv vyEw== 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=mRUXPD70hhx/jfo8v202YD9k2Uurjm2Txos7CJZxafc=; b=hRBtpW8RJOTYZdcNbXAipalCZlge7fCWmhMLZUQEQq0RrP4RjsbcK2LDZjky2zvyfY CNvRPwEBD9hh2/8nzR7V9ulr1Zy83LjKT1SAVSm2Odz++h3jWvJhnG4EtFxetdzkL4tV i6YDw3QVMbebbSdEZgiD20cRY0u5iNiBtbpc34M3UkBfDCVTDYi7meu+dBmO/IebiAM8 ZCjFFnJXb2vjDjYtJpvUZVJnOYZzHDKMj8x7Zs4qQxvvMqsYl0hMsasJ40U527GuniIB maTkcZumATYxLofJdSZWrrX+7ISL2Us16y6B4iN/s0TSkbe9tiIrl/WEOpKZmBVMPKeu s9Mw== X-Gm-Message-State: AODbwcBOlqVjdprg8bBcsaLYLSNedZrZhKFSVvZss2VUP02Lbt6SItzd 8cohL7Psg4peLQ== X-Received: by 10.55.209.83 with SMTP id s80mr36051612qki.138.1495653785227; Wed, 24 May 2017 12:23:05 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:23 -0700 Message-Id: <20170524192246.15905-11-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v2 10/33] target/s390x: Use unwind data for helper_clst 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 5 +++-- target/s390x/translate.c | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 33d83e5..af2801e 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -362,6 +362,7 @@ uint64_t HELPER(srst)(CPUS390XState *env, uint64_t r0, = uint64_t end, /* unsigned string compare (c is string terminator) */ uint64_t HELPER(clst)(CPUS390XState *env, uint64_t c, uint64_t s1, uint64_= t s2) { + uintptr_t ra =3D GETPC(); uint32_t len; =20 c =3D c & 0xff; @@ -371,8 +372,8 @@ uint64_t HELPER(clst)(CPUS390XState *env, uint64_t c, u= int64_t s1, uint64_t s2) /* Lest we fail to service interrupts in a timely manner, limit the amount of work we're willing to do. For now, let's cap at 8k. */ for (len =3D 0; len < 0x2000; ++len) { - uint8_t v1 =3D cpu_ldub_data(env, s1 + len); - uint8_t v2 =3D cpu_ldub_data(env, s2 + len); + uint8_t v1 =3D cpu_ldub_data_ra(env, s1 + len, ra); + uint8_t v2 =3D cpu_ldub_data_ra(env, s2 + len, ra); if (v1 =3D=3D v2) { if (v1 =3D=3D c) { /* Equal. CC=3D0, and don't advance the registers. */ diff --git a/target/s390x/translate.c b/target/s390x/translate.c index cd33c51..a24e288 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -1937,7 +1937,6 @@ static ExitStatus op_clm(DisasContext *s, DisasOps *o) =20 static ExitStatus op_clst(DisasContext *s, DisasOps *o) { - potential_page_fault(s); gen_helper_clst(o->in1, cpu_env, regs[0], o->in1, o->in2); set_cc_static(s); return_low128(o->in2); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 149565405128498.73099027409262; Wed, 24 May 2017 12:27:31 -0700 (PDT) Received: from localhost ([::1]:56467 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbwP-0005Ls-WD for importer@patchew.org; Wed, 24 May 2017 15:27:30 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45317) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsB-0001lD-Ty for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsB-00013R-1h for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:07 -0400 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:35568) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsA-000131-Tg for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:06 -0400 Received: by mail-qk0-x244.google.com with SMTP id k74so27741588qke.2 for ; Wed, 24 May 2017 12:23:06 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:05 -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=oBtayqCqrX5JFJ4PnTkD7y1N01uWlp7BdwDRXYhQU7Y=; b=QTTsPuXQ46ANdCiTQaf7gZ+s/eLV6RmaGPUQkxjRV3cC5mzVIzRMevg2ELZAW+DAYc sLI+fXD/DL/VOOheIctl6sRRWmYvyE7hbFEZtXBrZXTmyFl2TH5+ZtCBiH8QXDLCImc+ 7+JvhGlmQnR0ymA80EPmH/dEkbtwKw/Bg2JJ1adGkrK4Ie5p4Ir/qxaea0zjYycoyTEt wtRay7ilPjwJh84k0c79WhXJhfs0nJvp8AjROjITLX5U0tMZFbzgUZxKa37cEu+DegWH PnXcNV4uuXd6Lgal7N+zBgm2O9yg1XkTo1t1z4ltvVEyuRlQpYcCqkHnW00KePlA62OZ hkNg== 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=oBtayqCqrX5JFJ4PnTkD7y1N01uWlp7BdwDRXYhQU7Y=; b=cAUuKbXaWWmA7cp0Fx+cge8jSIWC6M9ZCfJAVo0U2C+7lY4E4+qgpgDzHP9e45N4MS eWjb73Hxr9YD+9/DVSrbCeqmQSPCM78OYH/66azh2rdbKjAtOskzAvPUc3JVRg81oiIh ESwy8/oV9GEMvhWAgiKykvwG3InXARHwvkxRGN1nlji5EBJkaUeSytfuvoBt8XM7MPFc cKSyFep2WBxmTGRy5OZ1hpN82PrR1Qjzybz/H7HEutv53OWFWMJldUA84h4LlBjOlPkv uEQSJrJZP8xpT88XL/e7VkN9iJR51VJmuSvc8EFBrBs5jWM92g+3QcCpv4LusdRS9ael Tj5g== X-Gm-Message-State: AODbwcDXAU9ZDIQjLdXd59l//1ujAmcfcopSQ4mhyVcCehATjZ69Ma/b ieB4Yhx7nNxPLg== X-Received: by 10.55.158.72 with SMTP id h69mr682563qke.183.1495653786490; Wed, 24 May 2017 12:23:06 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:24 -0700 Message-Id: <20170524192246.15905-12-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PATCH v2 11/33] target/s390x: Use unwind data for helper_mvpg 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/helper.h | 2 +- target/s390x/mem_helper.c | 9 +++++---- target/s390x/translate.c | 3 +-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/target/s390x/helper.h b/target/s390x/helper.h index 1fae191..ea35834 100644 --- a/target/s390x/helper.h +++ b/target/s390x/helper.h @@ -12,7 +12,7 @@ DEF_HELPER_FLAGS_3(divs64, TCG_CALL_NO_WG, s64, env, s64,= s64) DEF_HELPER_FLAGS_4(divu64, TCG_CALL_NO_WG, i64, env, i64, i64, i64) DEF_HELPER_4(srst, i64, env, i64, i64, i64) DEF_HELPER_4(clst, i64, env, i64, i64, i64) -DEF_HELPER_4(mvpg, void, env, i64, i64, i64) +DEF_HELPER_FLAGS_4(mvpg, TCG_CALL_NO_WG, i32, env, i64, i64, i64) DEF_HELPER_4(mvst, i64, env, i64, i64, i64) DEF_HELPER_5(ex, i32, env, i32, i64, i64, i64) DEF_HELPER_FLAGS_4(stam, TCG_CALL_NO_WG, void, env, i32, i64, i32) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index af2801e..1c36a47 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -398,11 +398,12 @@ uint64_t HELPER(clst)(CPUS390XState *env, uint64_t c,= uint64_t s1, uint64_t s2) } =20 /* move page */ -void HELPER(mvpg)(CPUS390XState *env, uint64_t r0, uint64_t r1, uint64_t r= 2) +uint32_t HELPER(mvpg)(CPUS390XState *env, uint64_t r0, uint64_t r1, uint64= _t r2) { - /* XXX missing r0 handling */ - env->cc_op =3D 0; - fast_memmove(env, r1, r2, TARGET_PAGE_SIZE, 0); + /* ??? missing r0 handling, which includes access keys, but more + importantly optional suppression of the exception! */ + fast_memmove(env, r1, r2, TARGET_PAGE_SIZE, GETPC()); + return 0; /* data moved */ } =20 /* string copy (c is string terminator) */ diff --git a/target/s390x/translate.c b/target/s390x/translate.c index a24e288..f55f10a 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -2916,8 +2916,7 @@ static ExitStatus op_mvcs(DisasContext *s, DisasOps *= o) =20 static ExitStatus op_mvpg(DisasContext *s, DisasOps *o) { - potential_page_fault(s); - gen_helper_mvpg(cpu_env, regs[0], o->in1, o->in2); + gen_helper_mvpg(cc_op, cpu_env, regs[0], o->in1, o->in2); set_cc_static(s); return NO_EXIT; } --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654193968750.1705660459409; Wed, 24 May 2017 12:29:53 -0700 (PDT) Received: from localhost ([::1]:56476 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbyh-000846-Eo for importer@patchew.org; Wed, 24 May 2017 15:29:51 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45329) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsD-0001mp-EX for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsC-00016l-Dx for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:09 -0400 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:36209) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsC-00014v-94 for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:08 -0400 Received: by mail-qt0-x243.google.com with SMTP id j13so27554014qta.3 for ; Wed, 24 May 2017 12:23:08 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:07 -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=WeybIss4tWOM2Qvr4CQTW7YhsQAO7qo3TjCjwtIirE8=; b=TMvix/+PbWL89fxdiU2TINaCZ9TBOKeprrkEIkRLkyoLXLhsTgc9Z1QFxre66k0Ekf bRL6iNPUZl9hNy6gPa3wP6riaOwrFXorLDq5PQBC9V/c7CauiTBiKFvq1lJVxgjDG/wW uvYAe2MfGfB0QdqvGbf2luMVF0pzWK4KUl6gMLckTajoG4Lda8JiOWcAsjqyVrzPYXRc JDbPiN/di5PbwtSviW6wohPnkRh7CPhIQ7zHx6KyOvHd3PbCsegEHtP/Bueg++hKIrRb LWkmEgu0pSoG4BW6jOKIECxFvYlDoMJp/uUsgNbpR3P9WQNRsoVgeMLnLG7jNpmm6QOk ASOA== 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=WeybIss4tWOM2Qvr4CQTW7YhsQAO7qo3TjCjwtIirE8=; b=YUZJBL8IMVKnoka4R4FYN6sZzC5kx1h8BeFLXdus11sV7Ml2fCMmdMLNa1BfwH6LiI ppA1yxKv5NnSLK/5Ww0qPzvOqcazG0xrm3wNoXKyCWIVfojGUSzPXCMuMhEsuBQmh5Py F7fyU+jWqkWCfz1te0WOfUeQJHjzuRbMPrCpgIiHxzHB3ifUKRBTXdHRm5sRHNH+tXCI jtnK3pf/nA6Qw6lBXeFk7kIhHIFMKElXbLdr4OmilRjG1vvFifXDONsUshaKnhXFGGGl aAnJtNitCgg898GH0dN3CdERcOFfktoLRp+zXMMCjtawIUOjtHcKvavruKfqu0khbzFF 8WPw== X-Gm-Message-State: AODbwcDkgkhxXPwrIfFZBDI4aP17CZ5TkqY5/ivKvGoE761ApT9Fug9I NVHKpXhppaylFQ== X-Received: by 10.200.57.57 with SMTP id s54mr38786547qtb.53.1495653787711; Wed, 24 May 2017 12:23:07 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:25 -0700 Message-Id: <20170524192246.15905-13-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v2 12/33] target/s390x: Use unwind data for helper_mvst 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 5 +++-- target/s390x/translate.c | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 1c36a47..e4bfc6e 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -409,6 +409,7 @@ uint32_t HELPER(mvpg)(CPUS390XState *env, uint64_t r0, = uint64_t r1, uint64_t r2) /* string copy (c is string terminator) */ uint64_t HELPER(mvst)(CPUS390XState *env, uint64_t c, uint64_t d, uint64_t= s) { + uintptr_t ra =3D GETPC(); uint32_t len; =20 c =3D c & 0xff; @@ -418,8 +419,8 @@ uint64_t HELPER(mvst)(CPUS390XState *env, uint64_t c, u= int64_t d, uint64_t s) /* Lest we fail to service interrupts in a timely manner, limit the amount of work we're willing to do. For now, let's cap at 8k. */ for (len =3D 0; len < 0x2000; ++len) { - uint8_t v =3D cpu_ldub_data(env, s + len); - cpu_stb_data(env, d + len, v); + uint8_t v =3D cpu_ldub_data_ra(env, s + len, ra); + cpu_stb_data_ra(env, d + len, v, ra); if (v =3D=3D c) { /* Complete. Set CC=3D1 and advance R1. */ env->cc_op =3D 1; diff --git a/target/s390x/translate.c b/target/s390x/translate.c index f55f10a..86e5567 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -2923,7 +2923,6 @@ static ExitStatus op_mvpg(DisasContext *s, DisasOps *= o) =20 static ExitStatus op_mvst(DisasContext *s, DisasOps *o) { - potential_page_fault(s); gen_helper_mvst(o->in1, cpu_env, regs[0], o->in1, o->in2); set_cc_static(s); return_low128(o->in2); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654343663978.3669532731018; Wed, 24 May 2017 12:32:23 -0700 (PDT) Received: from localhost ([::1]:56490 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDc17-0001l6-5c for importer@patchew.org; Wed, 24 May 2017 15:32:21 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45341) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsE-0001nq-Do for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsD-00019J-Gg for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:10 -0400 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:35381) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsD-00018m-Cm for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:09 -0400 Received: by mail-qt0-x242.google.com with SMTP id r58so27541525qtb.2 for ; Wed, 24 May 2017 12:23:09 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:08 -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=apgZypxk/LkGMda7nHPRcuNHBHZtwBctwR57de8riM0=; b=qv8vgDDOWpuWWkCk0xf0ajNp+tFim1I1A60RMYNtwjfK1Ni9oaMBXbqo7OEeu9iV+7 YDJMSHDQbFinu9lFxUZ3/iOblfLhm5akkn6maoY1MUaetka5UnOWSv/JNAfJh1Zy54vC k4SSqW+HpAaAOhOAK1CLqNTZRCGBY6Wqvl2xRsK8sk+qVSZe34vd6CuO4xfia3xGyi2m +sNl5yMkXPbLVy2BBUySdrUwDKTxCnuYbp2LyvvdEVTYXpRazIS3Q0+qHYkDfer7S0Qf gysHmlqd3WDXQU/2lujau+XFdIrfXhi0ikI1xwna3+oweVe/enS0QUFF0kQlulJIS0Ay YAVg== 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=apgZypxk/LkGMda7nHPRcuNHBHZtwBctwR57de8riM0=; b=UIrtrlQ4mKIOS+e3NgfCc6LYFzSzDs/j9zAjZVtBg/pkpmVL0AJB4S0Iuow+vwdpuU GhLxvEw76PvS/EzFGonk9TX00cu9pWprMG8p78HVuqQ5sgeVfUQB/a0qZ9/HbujBM/MV 4FlAsCGEfPujpdjRr2gIFbQhhnNDSDs9eyIirBVEmCtIkHR0lrWVFOT2vEyiHKUx+2u3 pgP5tpZJBDfif2fGSoQCPLAqy9I0KFOWESywlSYuuQB2AtaNYPX85JOEaBvbm6XXGXYx zxpkp0YHAy+lmbxhI3jGAyuol5m8H13G15OES1/1cYt58j2JOKdPCxr1mxSCxw+hLsfP cOoQ== X-Gm-Message-State: AODbwcCb9lDxpRG0ThoMGTD8MhSRrep3v4Zy3lcAbcjvnr6tN9yTyQpQ DERwkDAmOMbukA== X-Received: by 10.237.63.39 with SMTP id p36mr35407040qtf.81.1495653788989; Wed, 24 May 2017 12:23:08 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:26 -0700 Message-Id: <20170524192246.15905-14-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v2 13/33] target/s390x: Use unwind data for helper_lam 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 3 ++- target/s390x/translate.c | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index e4bfc6e..88e817a 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -469,10 +469,11 @@ static uint32_t helper_icm(CPUS390XState *env, uint32= _t r1, uint64_t address, /* load access registers r1 to r3 from memory at a2 */ void HELPER(lam)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3) { + uintptr_t ra =3D GETPC(); int i; =20 for (i =3D r1;; i =3D (i + 1) % 16) { - env->aregs[i] =3D cpu_ldl_data(env, a2); + env->aregs[i] =3D cpu_ldl_data_ra(env, a2, ra); a2 +=3D 4; =20 if (i =3D=3D r3) { diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 86e5567..dca2096 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -2621,7 +2621,6 @@ static ExitStatus op_lam(DisasContext *s, DisasOps *o) { TCGv_i32 r1 =3D tcg_const_i32(get_field(s->fields, r1)); TCGv_i32 r3 =3D tcg_const_i32(get_field(s->fields, r3)); - potential_page_fault(s); gen_helper_lam(cpu_env, r1, o->in2, r3); tcg_temp_free_i32(r1); tcg_temp_free_i32(r3); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654656032135.05143646118654; Wed, 24 May 2017 12:37:36 -0700 (PDT) Received: from localhost ([::1]:56511 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDc69-0006X7-LI for importer@patchew.org; Wed, 24 May 2017 15:37:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45357) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsF-0001pJ-PO for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsE-0001Bi-SJ for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:11 -0400 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:35575) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsE-0001BI-O0 for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:10 -0400 Received: by mail-qk0-x243.google.com with SMTP id k74so27741824qke.2 for ; Wed, 24 May 2017 12:23:10 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:09 -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=ImKm1vw8VyuJLRdFYuyhlec3S05xShEB38wD4rIAvX8=; b=qushyHHSC0h2O9QRAa6TXCMEydH4GC4/E4OHR9hxyDDnRvgpD2OB2U+X54eYbcScGb dP+nK7U/1gxI43FjybvQxqccMegz/4GIj04lFYQw+MxBq8TudmdhZPKnLVnT/Huv0X7c ReWT3gd4jJiMhub2qGsX7l6q7PVBNq9E6JYTKSycHu2QD2X5eXO+Kc6whXLIO9FZv45a L5fQMiUU+En/8tfiy4OfqVE+SNiRfJ0Mbjv2DJZqkcJp3+AIhdggE8dVSs8+MCgT4Xsy Sf279jOTtbkSvBzh0u+RBp/ZjctN5o/uXq9tLqG14QfmCbGOGt5tCUqYjhNoTjsjizyr ATSg== 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=ImKm1vw8VyuJLRdFYuyhlec3S05xShEB38wD4rIAvX8=; b=AfIRgrOQ8r0AU5X2VhySdNB8fOhslzhG8hCcnCu4WsFW3wYovSsP77WvxQUj+ot071 HHXJb/vJ/S9LYz2WfHbNaOs6CUQmTb1MTovpSxxR/Ipp+4ite1fwKoqMs2pp9gTdET53 B0vMyBwlW7bhDVs1Oc3oXQ6fddr84NAMpdTMCQDpUaZq2mJIx43XiPbilNp9WRUQ5v5t vH/o/PPIQXE5rO0MKnPU0KedUkfr/Vhh5I71yNXWmoWcCZCJcaxMwqYoFNeZiU4w3C9w gMenYXalH0ospX2SX8+Qzvz+L/FT65eXknUoHIh2gg1/g3M7/z80dwBOzGRhflxt8/xq xvkg== X-Gm-Message-State: AODbwcA5HT2qnk9L1xrUNLVL+yEoVbgKpxyQCNB4aawEOsxf8vMVPbz7 0Gyghhytl5d/cw== X-Received: by 10.233.223.197 with SMTP id t188mr34210278qkf.203.1495653790349; Wed, 24 May 2017 12:23:10 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:27 -0700 Message-Id: <20170524192246.15905-15-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::243 Subject: [Qemu-devel] [PATCH v2 14/33] target/s390x: Use unwind data for helper_stam 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 3 ++- target/s390x/translate.c | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 88e817a..2acc984 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -485,10 +485,11 @@ void HELPER(lam)(CPUS390XState *env, uint32_t r1, uin= t64_t a2, uint32_t r3) /* store access registers r1 to r3 in memory at a2 */ void HELPER(stam)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r= 3) { + uintptr_t ra =3D GETPC(); int i; =20 for (i =3D r1;; i =3D (i + 1) % 16) { - cpu_stl_data(env, a2, env->aregs[i]); + cpu_stl_data_ra(env, a2, env->aregs[i], ra); a2 +=3D 4; =20 if (i =3D=3D r3) { diff --git a/target/s390x/translate.c b/target/s390x/translate.c index dca2096..7af2a0b 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -3862,7 +3862,6 @@ static ExitStatus op_stam(DisasContext *s, DisasOps *= o) { TCGv_i32 r1 =3D tcg_const_i32(get_field(s->fields, r1)); TCGv_i32 r3 =3D tcg_const_i32(get_field(s->fields, r3)); - potential_page_fault(s); gen_helper_stam(cpu_env, r1, o->in2, r3); tcg_temp_free_i32(r1); tcg_temp_free_i32(r3); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654804786723.6621099778777; Wed, 24 May 2017 12:40:04 -0700 (PDT) Received: from localhost ([::1]:56519 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDc8Z-0000ra-6u for importer@patchew.org; Wed, 24 May 2017 15:40:03 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45368) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsG-0001qW-SU for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsG-0001EF-2z for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:12 -0400 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:35386) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsF-0001DW-V5 for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:12 -0400 Received: by mail-qt0-x243.google.com with SMTP id r58so27541654qtb.2 for ; Wed, 24 May 2017 12:23:11 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:11 -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=4SGCzzu1Df3GyIWSY/yg6cnmzF1QwVGw36kkzCAFHH4=; b=t3uqZAZkOLvfD87eMD3oqMe1mC2nOHPzo0jSULGGOVh4xo1v66UshL8M8ypWvqBSRB XvMG/gA1pCo8WTy4+y8exI75xrCScZ78ecdObnEONVviFf4KWTWUNxN0CHcjPQ6FoqBS nLBZ0tSe4bXayz5hVmS+WAzXcx9JDO5KrRr2umtRcJdiy3GhdYQDNKgGeSLC5AQ56jtB 8Uw8GswUlF3WCqsM6yZdywAd5GbO9m1GdFNdUPIz2Anp0ZSvEuR2QLatkbBvyuTMoKJn qNd2ytjUFnrB4LhArzf1JxZnPQu89SjzYXYHifO9i92qLxWLxKzoR456cLtH28rub8HC xnvQ== 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=4SGCzzu1Df3GyIWSY/yg6cnmzF1QwVGw36kkzCAFHH4=; b=bsIdFLv7hFIX+0D9eQ5XcLFJFI5BZpzon4sPp/5h57U11vD6dpECYgivmvv9LhfrGF 2jr0Xd6sH9/FqWQpub/24oLqL+zd9lVbNas5If5ld58TsHfeHdVOof6L9QVPUTgxCt6M 5cA6fvkxu6v5OcfU3aaZ/eXBe0Up5Ux+o7LwNZblyR4VeYYUh3VVsNQ6oxhK55eW2HJ6 jvlyQQBiCIqVmNuB+lMv8/6oYAiYO6nixdk0E5j7YmNkgN1S+/hxOamhdVEPYY6a8oWt 3N/aLsBgGixg2QRkZztoLmnlm/RxbjWw1kRdcFW0o20IpbqsrMAAXqjZ2zcLGW3PPB1m x6wQ== X-Gm-Message-State: AODbwcCOXTKA725Ks8x5IIs2JfpjkM5majmiAIqFNaTUU8istYMBd6RI 3zq18L1kdbx1hQ== X-Received: by 10.200.50.183 with SMTP id z52mr32960914qta.234.1495653791526; Wed, 24 May 2017 12:23:11 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:28 -0700 Message-Id: <20170524192246.15905-16-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v2 15/33] target/s390x: Use unwind data for helper_mvcl 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 7 ++++--- target/s390x/translate.c | 1 - 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 2acc984..49cfc9b 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -501,6 +501,7 @@ void HELPER(stam)(CPUS390XState *env, uint32_t r1, uint= 64_t a2, uint32_t r3) /* move long */ uint32_t HELPER(mvcl)(CPUS390XState *env, uint32_t r1, uint32_t r2) { + uintptr_t ra =3D GETPC(); uint64_t destlen =3D env->regs[r1 + 1] & 0xffffff; uint64_t dest =3D get_address_31fix(env, r1); uint64_t srclen =3D env->regs[r2 + 1] & 0xffffff; @@ -522,12 +523,12 @@ uint32_t HELPER(mvcl)(CPUS390XState *env, uint32_t r1= , uint32_t r2) } =20 for (; destlen && srclen; src++, dest++, destlen--, srclen--) { - v =3D cpu_ldub_data(env, src); - cpu_stb_data(env, dest, v); + v =3D cpu_ldub_data_ra(env, src, ra); + cpu_stb_data_ra(env, dest, v, ra); } =20 for (; destlen; dest++, destlen--) { - cpu_stb_data(env, dest, pad); + cpu_stb_data_ra(env, dest, pad, ra); } =20 env->regs[r1 + 1] =3D destlen; diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 7af2a0b..fb2d6ff 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -2871,7 +2871,6 @@ static ExitStatus op_mvcl(DisasContext *s, DisasOps *= o) { TCGv_i32 r1 =3D tcg_const_i32(get_field(s->fields, r1)); TCGv_i32 r2 =3D tcg_const_i32(get_field(s->fields, r2)); - potential_page_fault(s); gen_helper_mvcl(cc_op, cpu_env, r1, r2); tcg_temp_free_i32(r1); tcg_temp_free_i32(r2); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654504603673.1128414471042; Wed, 24 May 2017 12:35:04 -0700 (PDT) Received: from localhost ([::1]:56498 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDc3i-0004Yy-Qm for importer@patchew.org; Wed, 24 May 2017 15:35:03 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45380) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsI-0001rx-5S for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsH-0001G0-Ay for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:14 -0400 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:33836) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsH-0001FU-6T for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:13 -0400 Received: by mail-qk0-x242.google.com with SMTP id u75so27645497qka.1 for ; Wed, 24 May 2017 12:23:13 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:12 -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=2Sca08XKrrmAoJUuanPY9mDeNfWR7Su8F3Kw/Tq2/vY=; b=AuWA4T+x/CKHqcHfMd3/8JxMNidkohugQoBpkd6lVO8qstEM/GcQAFLWNfMB5614aB MNqb66v3DoVwNfDktpZl/ajJkWWimMDmK32y4dxbZJ6GUjwRsJnL06MpHpl6YXRK7199 l8c4Nj7tJhEN1XDeJj991GYROCVNEp0BqgHi4/0DOmQ09rgEF518j1r5PT2WNsC+zHAO 5QTjY+HXpisyP+W1WWza6smpU9tpQSSGJjbx3qRy86LC5DL1296l921t8KJHlWnakCkp qcPCrh6qN6YwbI5VO5MJSygRvvGIa1BS7Xg2INRM8IuHfGSBBo5yBWLWoaco6q3UwpT2 sdTA== 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=2Sca08XKrrmAoJUuanPY9mDeNfWR7Su8F3Kw/Tq2/vY=; b=nY3UA183ynCjnLmLOCh3Z7ZBDR960HIKsn+YvturYSwzCtblt9w+bV7vyVcqR7TXAO 7y/5/JbZGOqXJSQoPQk9xAu6GMnf9Zdc81ZNV0KJ4BbaAlIpyhMXnhaImB4cd1fdFCIq Jj6146SGzzmKB+lZAc76z3/04buWmzXSiUbcr2zvrcGep298wKYa0E4uey9ZiVdVoZYN CMKXbCPkUlsiRQl+09+gdfktpnXBpmtWnuJg91mDZw6W7CxMIuws2xLmkVU5bsimVlOM bpodkGvsIX3wDULNONzvHYiCeGSBDpOP94ymXNgGPeqtycjFnt1MfCgoxv1fGwP+Mpxh 3+tg== X-Gm-Message-State: AODbwcAzRWe1pCYnoqdgRHzqaChPWsTXqGeLS7BvIKRYy5e4NRei5k2c xi5kemBpB+pdqg== X-Received: by 10.55.149.130 with SMTP id x124mr34694262qkd.156.1495653792787; Wed, 24 May 2017 12:23:12 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:29 -0700 Message-Id: <20170524192246.15905-17-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::242 Subject: [Qemu-devel] [PATCH v2 16/33] target/s390x: Use unwind data for helper_mvcle 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 7 ++++--- target/s390x/translate.c | 1 - 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 49cfc9b..8a095ad 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -544,6 +544,7 @@ uint32_t HELPER(mvcl)(CPUS390XState *env, uint32_t r1, = uint32_t r2) uint32_t HELPER(mvcle)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3) { + uintptr_t ra =3D GETPC(); uint64_t destlen =3D env->regs[r1 + 1]; uint64_t dest =3D env->regs[r1]; uint64_t srclen =3D env->regs[r3 + 1]; @@ -572,12 +573,12 @@ uint32_t HELPER(mvcle)(CPUS390XState *env, uint32_t r= 1, uint64_t a2, } =20 for (; destlen && srclen; src++, dest++, destlen--, srclen--) { - v =3D cpu_ldub_data(env, src); - cpu_stb_data(env, dest, v); + v =3D cpu_ldub_data_ra(env, src, ra); + cpu_stb_data_ra(env, dest, v, ra); } =20 for (; destlen; dest++, destlen--) { - cpu_stb_data(env, dest, pad); + cpu_stb_data_ra(env, dest, pad, ra); } =20 env->regs[r1 + 1] =3D destlen; diff --git a/target/s390x/translate.c b/target/s390x/translate.c index fb2d6ff..b42acae 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -2882,7 +2882,6 @@ static ExitStatus op_mvcle(DisasContext *s, DisasOps = *o) { TCGv_i32 r1 =3D tcg_const_i32(get_field(s->fields, r1)); TCGv_i32 r3 =3D tcg_const_i32(get_field(s->fields, r3)); - potential_page_fault(s); gen_helper_mvcle(cc_op, cpu_env, r1, o->in2, r3); tcg_temp_free_i32(r1); tcg_temp_free_i32(r3); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654667086240.83630778253587; Wed, 24 May 2017 12:37:47 -0700 (PDT) Received: from localhost ([::1]:56514 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDc6K-0006yr-C7 for importer@patchew.org; Wed, 24 May 2017 15:37:44 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45394) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsJ-0001vw-Fu for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsI-0001GS-Lq for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:15 -0400 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:36217) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsI-0001GN-Hd for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:14 -0400 Received: by mail-qt0-x243.google.com with SMTP id j13so27554267qta.3 for ; Wed, 24 May 2017 12:23:14 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:13 -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=+rU6X27Q2EHgtfHxY5ShUD6tFrZv9JFBvXuVE+6VAKE=; b=ZB+F+a4PoViScHEJAd2L2Kx/yFCZg9RqbaGBR7phr9n2ZtTCAduuFxzaLyBZ5GXbB0 mzawcu3Z6BG1pg2s8ap20Yy2VMIVRmMQjaA8/9fMTEUXk2X6sbM8pkMYLDx7IML8z5QY h10WJjRMq6K9kdI/SbyjEHTfl1BK4V8jNTqIWhKh3OstaGSr4zjxtcYrBBH7Ldt5B+lW LaSqm005JY/T9cUGyjIOZBjdou78chJRB5HKO8o0TL7joan4VFHRaqWtT+hiGZIqYH/Y wwW6WUS6624N3UMNvHB3seh6UVxUBTjokbenrE8xNtCNLh3xC5cRjnECv2yqvBljJZIK 0HZQ== 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=+rU6X27Q2EHgtfHxY5ShUD6tFrZv9JFBvXuVE+6VAKE=; b=Qe44R1yzsIMA6PC2iPYPx5EwXyuhCubgz+QZaSL1YwK8/JCNqdxz4+63g3A1MTqwBn CYC90Zc8ozWP7J0YDIDmSnC2oNyjFt6S9VBXg6zUe2wmvGieG1J86+cuns6D9ABSoZaK jo4PCpck0fHQSklQC3VVC17DtNA2SlH2da98NjE34cMAGLq25GAcdYeCTTPqmyT5AjI/ 6u2W19EQMOMYVBwa/OZLboVLRoo0z2EzlKRxB1qf5cXD9P9SZBFteWByhxw3Ox6M8bfF FibyuhZgxpbWczhQT4IDae3kbNvx60mw6mn+E4ywi008IgdnmxwnmCvlJueM7CTN7olA +uVA== X-Gm-Message-State: AODbwcDwVMlOwoMA4blY23oGfv86gtc3j2oNGUOZzWxSGK6OY1hQ5L3o M2K1bKAQAbi5+Q== X-Received: by 10.200.1.26 with SMTP id e26mr35889325qtg.75.1495653794107; Wed, 24 May 2017 12:23:14 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:30 -0700 Message-Id: <20170524192246.15905-18-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v2 17/33] target/s390x: Use unwind data for helper_clcle 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 6 +++--- target/s390x/translate.c | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 8a095ad..f5a3044 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -595,12 +595,12 @@ uint32_t HELPER(mvcle)(CPUS390XState *env, uint32_t r= 1, uint64_t a2, uint32_t HELPER(clcle)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r3) { + uintptr_t ra =3D GETPC(); uint64_t destlen =3D env->regs[r1 + 1]; uint64_t dest =3D get_address_31fix(env, r1); uint64_t srclen =3D env->regs[r3 + 1]; uint64_t src =3D get_address_31fix(env, r3); uint8_t pad =3D a2 & 0xff; - uint8_t v1 =3D 0, v2 =3D 0; uint32_t cc =3D 0; =20 if (!(destlen || srclen)) { @@ -612,8 +612,8 @@ uint32_t HELPER(clcle)(CPUS390XState *env, uint32_t r1,= uint64_t a2, } =20 for (; destlen || srclen; src++, dest++, destlen--, srclen--) { - v1 =3D srclen ? cpu_ldub_data(env, src) : pad; - v2 =3D destlen ? cpu_ldub_data(env, dest) : pad; + uint8_t v1 =3D srclen ? cpu_ldub_data_ra(env, src, ra) : pad; + uint8_t v2 =3D destlen ? cpu_ldub_data_ra(env, dest, ra) : pad; if (v1 !=3D v2) { cc =3D (v1 < v2) ? 1 : 2; break; diff --git a/target/s390x/translate.c b/target/s390x/translate.c index b42acae..9270067 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -1915,7 +1915,6 @@ static ExitStatus op_clcle(DisasContext *s, DisasOps = *o) { TCGv_i32 r1 =3D tcg_const_i32(get_field(s->fields, r1)); TCGv_i32 r3 =3D tcg_const_i32(get_field(s->fields, r3)); - potential_page_fault(s); gen_helper_clcle(cc_op, cpu_env, r1, o->in2, r3); tcg_temp_free_i32(r1); tcg_temp_free_i32(r3); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654819241380.24584923897737; Wed, 24 May 2017 12:40:19 -0700 (PDT) Received: from localhost ([::1]:56521 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDc8l-00011a-Lm for importer@patchew.org; Wed, 24 May 2017 15:40:15 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45411) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsK-0001xL-U6 for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsK-0001Iz-0q for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:16 -0400 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:35854) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsJ-0001IL-TG for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:15 -0400 Received: by mail-qk0-x242.google.com with SMTP id y128so27717678qka.3 for ; Wed, 24 May 2017 12:23:15 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:14 -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=hdHv4PJE0J4xlVzE8JTWtM80SCA7hLTNh0xkN/8ghuo=; b=oVM8sP2eFt6KBoUV9Ylx/svjiicEY7ZIDym7zq8kEN5jSu4V/QgvfMiyZ79dpX75Cv /GE4KGYlgi1zYf3njIcu6SfB0ZsX/XNzM52nJGqJINIuGWpUGLuRSaCxOZCcrULA9mzg i1F9HRAVxJxUHCE7YPDexu3mmBZdjvVy0haJcOOcAi1bJzOQujE8yMLv+mOMxmTYGDb/ Rc7zP+Ue6TMg1pPOTxGib9Og78AwbQRdhYiMctD5ODdjeJSDAtB1mMTxqW+t1GypSRhu qUCos1a4aAXxRpVvvQqvallm58pcXidzkJZqoYDAakzo10EyEb4gTyNJ8y5PGDlTKpMI 7pew== 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=hdHv4PJE0J4xlVzE8JTWtM80SCA7hLTNh0xkN/8ghuo=; b=HzsCNf95fpMMkEazI9D8CNkCthvbZ+JNpGTs3wcvlFdYAhQXsZjeR8UMXe6CTNi9Aq sxddB0D9pDs+9YUXkzcBchG4WFLABgH0SqST3fLjeYumb07uTehKMJJzdsClcngVJUnB vGamn8FAkBLiYZUMhrf9/DNVkf5NqMV6wpGsJ9kRnuRlqoa5SFLnQUOxMjfQDAp36VjS kvF0PZLsxMYCDuX3F3CLbK039HYRw6JYToTC0nM6uu9Ub44MArR2MWRikjQcupUfmXIp o+RfvjJQhQuxiG11tozAnSq6rNGHERfbmD3tEM+uT3c9Cm1wvr+eP1I+H5N0/edAWhx0 Ppjg== X-Gm-Message-State: AODbwcC26loo+rk7XVZEeeQNUgMPReQgyDJhX/2JKXPLj6BUWQuRPkv2 WjXMf0Zbs+vNjg== X-Received: by 10.55.131.198 with SMTP id f189mr31817875qkd.187.1495653795488; Wed, 24 May 2017 12:23:15 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:31 -0700 Message-Id: <20170524192246.15905-19-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::242 Subject: [Qemu-devel] [PATCH v2 18/33] target/s390x: Use unwind data for helper_cksm 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 11 ++++++----- target/s390x/translate.c | 1 - 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index f5a3044..d4ee364 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -633,6 +633,7 @@ uint32_t HELPER(clcle)(CPUS390XState *env, uint32_t r1,= uint64_t a2, uint64_t HELPER(cksm)(CPUS390XState *env, uint64_t r1, uint64_t src, uint64_t src_len) { + uintptr_t ra =3D GETPC(); uint64_t max_len, len; uint64_t cksm =3D (uint32_t)r1; =20 @@ -642,21 +643,21 @@ uint64_t HELPER(cksm)(CPUS390XState *env, uint64_t r1, =20 /* Process full words as available. */ for (len =3D 0; len + 4 <=3D max_len; len +=3D 4, src +=3D 4) { - cksm +=3D (uint32_t)cpu_ldl_data(env, src); + cksm +=3D (uint32_t)cpu_ldl_data_ra(env, src, ra); } =20 switch (max_len - len) { case 1: - cksm +=3D cpu_ldub_data(env, src) << 24; + cksm +=3D cpu_ldub_data_ra(env, src, ra) << 24; len +=3D 1; break; case 2: - cksm +=3D cpu_lduw_data(env, src) << 16; + cksm +=3D cpu_lduw_data_ra(env, src, ra) << 16; len +=3D 2; break; case 3: - cksm +=3D cpu_lduw_data(env, src) << 16; - cksm +=3D cpu_ldub_data(env, src + 2) << 8; + cksm +=3D cpu_lduw_data_ra(env, src, ra) << 16; + cksm +=3D cpu_ldub_data_ra(env, src + 2, ra) << 8; len +=3D 3; break; } diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 9270067..76910bc 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -1866,7 +1866,6 @@ static ExitStatus op_cksm(DisasContext *s, DisasOps *= o) int r2 =3D get_field(s->fields, r2); TCGv_i64 len =3D tcg_temp_new_i64(); =20 - potential_page_fault(s); gen_helper_cksm(len, cpu_env, o->in1, o->in2, regs[r2 + 1]); set_cc_static(s); return_low128(o->out); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654253054710.6066156746642; Wed, 24 May 2017 12:30:53 -0700 (PDT) Received: from localhost ([::1]:56483 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbzf-0000ZH-It for importer@patchew.org; Wed, 24 May 2017 15:30:51 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45427) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsM-0001xM-Ah for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsL-0001LS-AA for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:18 -0400 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:33839) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsL-0001Kk-6d for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:17 -0400 Received: by mail-qk0-x244.google.com with SMTP id u75so27645734qka.1 for ; Wed, 24 May 2017 12:23:17 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:16 -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=eTzekCYHqAkrjY8gv7bsRN3sPl4ig5ZZ5RSPrbUBMmg=; b=SPTknUB+TEwfXAlgdSKXhXLky3ztoQfOm1bNQwZgn3+rzGrB3u7En5SpqJL7DlWlb6 MjjEUQJgVTMsrybQ0xA3SG9ny1FCjS3maQUdv+vNVl2u7FC+XHX8m8wzLK2eZLWivIF9 ULzbeZq7DtO+6wcWuvvkUxaLXnFl0Rypa4H4g2hDcU/zrYDma9SYPXnqHYBkXvqiAQzz UPVBRPVhdc44MrQfMf7XIuPMyZupiol8NMr4VJCaUvNl1Df4IM7NQ11SBei/uHcS18Kt HdVaUDhJyxliINeMPn3zq7sO4XVxX23GX+rH9etjTRuSLckySkkNTD030bynoMmjiWs9 F6dg== 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=eTzekCYHqAkrjY8gv7bsRN3sPl4ig5ZZ5RSPrbUBMmg=; b=CFh0FOKUwaofsTTb9UKrGK6uPekSZyJlJFUrnQcFjkQxEscCKZx3+veWpnWS2XTePF 67NB6nklGZ0Wl77CmlOoEDi57425UWB9MxcbY3Yuqj2+pklucnKheiUOBuR1hmp/ZhFy mmRClduTkB8UksL5qH2VWN3zrXGhIk21pX0TcyytZ4v/VB1d1IR7Zan3CdjJCP1avbWr mCqPYtWpotmHl/T2UgYibx2AEizB78PjmjTX4gWazVlNf+ReH5za9xCprg9fVd7yGCy4 KdRgto6Jn/W+Tt4CxbHyjI/sbbloctP3oS+xo5Np28HyVrMP3NFvGw8jkaBf9nyy40Xu 0hwA== X-Gm-Message-State: AODbwcAZ7A/IBSPAZ1nsSrOE8z85+FVL0VgBJceSE+SRYeSNOxSrc8Tp h1eCqmnsLbyedA== X-Received: by 10.55.80.70 with SMTP id e67mr27670201qkb.125.1495653796745; Wed, 24 May 2017 12:23:16 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:32 -0700 Message-Id: <20170524192246.15905-20-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PATCH v2 19/33] target/s390x: Use unwind data for helper_unpk 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 d4ee364..0701e10 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -679,6 +679,7 @@ uint64_t HELPER(cksm)(CPUS390XState *env, uint64_t r1, void HELPER(unpk)(CPUS390XState *env, uint32_t len, uint64_t dest, uint64_t src) { + uintptr_t ra =3D GETPC(); int len_dest =3D len >> 4; int len_src =3D len & 0xf; uint8_t b; @@ -688,8 +689,8 @@ void HELPER(unpk)(CPUS390XState *env, uint32_t len, uin= t64_t dest, src +=3D len_src; =20 /* last byte is special, it only flips the nibbles */ - b =3D cpu_ldub_data(env, src); - cpu_stb_data(env, dest, (b << 4) | (b >> 4)); + b =3D cpu_ldub_data_ra(env, src, ra); + cpu_stb_data_ra(env, dest, (b << 4) | (b >> 4), ra); src--; len_src--; =20 @@ -699,7 +700,7 @@ void HELPER(unpk)(CPUS390XState *env, uint32_t len, uin= t64_t dest, uint8_t cur_byte =3D 0; =20 if (len_src > 0) { - cur_byte =3D cpu_ldub_data(env, src); + cur_byte =3D cpu_ldub_data_ra(env, src, ra); } =20 len_dest--; @@ -718,7 +719,7 @@ void HELPER(unpk)(CPUS390XState *env, uint32_t len, uin= t64_t dest, /* zone bits */ cur_byte |=3D 0xf0; =20 - cpu_stb_data(env, dest, cur_byte); + cpu_stb_data_ra(env, dest, cur_byte, ra); } } =20 diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 76910bc..4978f19 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -4094,7 +4094,6 @@ static ExitStatus op_trt(DisasContext *s, DisasOps *o) static ExitStatus op_unpk(DisasContext *s, DisasOps *o) { TCGv_i32 l =3D tcg_const_i32(get_field(s->fields, l1)); - potential_page_fault(s); gen_helper_unpk(cpu_env, l, o->addr1, o->in2); tcg_temp_free_i32(l); return NO_EXIT; --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654341791420.622257053417; Wed, 24 May 2017 12:32:21 -0700 (PDT) Received: from localhost ([::1]:56489 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDc15-0001id-8Q for importer@patchew.org; Wed, 24 May 2017 15:32:19 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45438) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsN-0001yl-Nk for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsM-0001Po-PF for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:19 -0400 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:34226) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsM-0001Oh-L5 for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:18 -0400 Received: by mail-qt0-x242.google.com with SMTP id l39so27574924qtb.1 for ; Wed, 24 May 2017 12:23:18 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:17 -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=z0TeWWa00LENRMxWjwuItRpQ6+E2Aw3L9ce9t3n2SpQ=; b=LsHhSRX1HUT5LVsZNhZMw9askZcbG+rFweVsD2DDmVjN0Gcz8UmVmjnOZMswB8GgWM Ans7ngk5Qe8/K6Xvjb0Okf1gOmC9CRaOyNKDOlNt89l3PXZMYugaZEPbmUOJUF8bwmmC FTbEvG5gLbRzrZ0vJxQD/nuqWSEnjz7S02/4/BnwrSFSRvnvAWW0KVrxWLuRqiKFynAm 6DSukFRAQwvPzOd0kiuHBrmH7tf0JjDLnmviN/KghENe50OrFz89A4cdXMrsitg3JC6/ YUsGyxJvGXs0O8ScLEbceMzbZD5C2NUSaL03CpB/NoPNdM5OTmMJBURx/y35LuOHmjQZ Udsw== 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=z0TeWWa00LENRMxWjwuItRpQ6+E2Aw3L9ce9t3n2SpQ=; b=Xro6Yw2zNB4qQ3D0qwtQj7VqtJUilMEZOfbY0v7WI+ONceYCh78nztCkE39ME27xTv gIAO73B8X8eWGnVIexkO1olV21QcM8x5fbmSGl09u1y/aGYnvQVvOZbXR2zsMNO9Ff2C l7uBrdGUqkjY4zcodi1B6r3RDPv1R1rhh3HqLYIYTLn5nCIx5/E+wKIU5dk2sYardlxz qvO+DSCCYC3L6FJdFZ26iCPEEUU86iGQADvYzkpjQAm89u2YNN9FDFTDcTvzkChBMBtX jBsQQgCSGBwE1qiaUY1UqmaquIk/vh+Hd4APGaO5JIC37bnBkb3Njq7/0m8k6HxVMwrD K87w== X-Gm-Message-State: AODbwcD+t7NTFKxUO6jH6XIeuOj/jj90TQEKqFWSiaVRhzOYtmhq+yQk ji6eBcqjo2FPqP0xjm8= X-Received: by 10.237.37.154 with SMTP id x26mr38749172qtc.133.1495653797977; Wed, 24 May 2017 12:23:17 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:33 -0700 Message-Id: <20170524192246.15905-21-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v2 20/33] target/s390x: Use unwind data for helper_tr 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Aurelien Jarno --- target/s390x/mem_helper.c | 25 +++++++++++++++---------- target/s390x/translate.c | 1 - 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 0701e10..b37a963 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -723,19 +723,24 @@ void HELPER(unpk)(CPUS390XState *env, uint32_t len, u= int64_t dest, } } =20 -void HELPER(tr)(CPUS390XState *env, uint32_t len, uint64_t array, - uint64_t trans) +static void do_helper_tr(CPUS390XState *env, uint32_t len, uint64_t array, + uint64_t trans, uintptr_t ra) { - int i; + uint32_t i; =20 for (i =3D 0; i <=3D len; i++) { - uint8_t byte =3D cpu_ldub_data(env, array + i); - uint8_t new_byte =3D cpu_ldub_data(env, trans + byte); - - cpu_stb_data(env, array + i, new_byte); + uint8_t byte =3D cpu_ldub_data_ra(env, array + i, ra); + uint8_t new_byte =3D cpu_ldub_data_ra(env, trans + byte, ra); + cpu_stb_data_ra(env, array + i, new_byte, ra); } } =20 +void HELPER(tr)(CPUS390XState *env, uint32_t len, uint64_t array, + uint64_t trans) +{ + return do_helper_tr(env, len, array, trans, GETPC()); +} + uint64_t HELPER(tre)(CPUS390XState *env, uint64_t array, uint64_t len, uint64_t trans) { @@ -1265,9 +1270,9 @@ uint32_t HELPER(ex)(CPUS390XState *env, uint32_t cc, = uint64_t v1, get_address(env, 0, b2, d2), 0); break; case 0xc00: - helper_tr(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2)); - break; + do_helper_tr(env, l, get_address(env, 0, b1, d1), + get_address(env, 0, b2, d2), 0); + return cc; case 0xd00: cc =3D helper_trt(env, l, get_address(env, 0, b1, d1), get_address(env, 0, b2, d2)); diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 4978f19..1842cc3 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -4065,7 +4065,6 @@ static ExitStatus op_tprot(DisasContext *s, DisasOps = *o) static ExitStatus op_tr(DisasContext *s, DisasOps *o) { TCGv_i32 l =3D tcg_const_i32(get_field(s->fields, l1)); - potential_page_fault(s); gen_helper_tr(cpu_env, l, o->addr1, o->in2); tcg_temp_free_i32(l); set_cc_static(s); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654505120559.3632253185227; Wed, 24 May 2017 12:35:05 -0700 (PDT) Received: from localhost ([::1]:56497 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDc3i-0004Y0-KY for importer@patchew.org; Wed, 24 May 2017 15:35:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45450) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsP-00020K-6i for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsO-0001Tw-0S for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:21 -0400 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:35404) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsN-0001Sl-Rm for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:19 -0400 Received: by mail-qt0-x242.google.com with SMTP id r58so27542035qtb.2 for ; Wed, 24 May 2017 12:23:19 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:18 -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=64GOZe+eFOruX7RFeVVgr304QyscnvojmE2aQVLY80o=; b=jW3A/id9W7YNS5Z9owqQznoIP+F1yqu5pJloj4LXOFs6AcFDIBSuphv5Ie/d1B/NmY N00o5ABFhF56GkZSwX+eScr18fHPqufCftVx5CxwlmqSn9qoe+ldI0vC0ARKcXeqaU5C fix8kD+h+lw3CqtNirTPFZ3nEwX6GQTHkwuk+QD26LPoWZ9ymb+DFiIC/B2uNuMSUPZA 0yvxauZAabQzjGbviRLDargXZmJ9rxSYbJxDL3y7Hveu+l9tS8vPaXFaNnmXPwcIK36x jBz80tgqOvPPGClbXzedIF+jFVqmelQ3L2qdz8+gA22PrS7vcRC9A3vM2scqWMNmUtvK rKsw== 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=64GOZe+eFOruX7RFeVVgr304QyscnvojmE2aQVLY80o=; b=cnE6rTHWEeazpPl4F4x0R0XT2sts8u3W+tZK6WkJqQOCVIunKwYivCEUqH0iUAksSs Owg44VZO8iesQRcKXGefUJ/o2ZzH9CXjwtanRY1Jtcnl/CeUoZGZbh7Jyp2HHgszAewP QYs5kiZaYPGq/Td2m+rHJ7ar7ExGFuLl3+qqChAMFWeMCYtQPiLhOPm81T6+M25UpDIk 8Ac9bWq1FoW1/pULUSFlWdTGqVoY7xg9byAjZl535NICbS/aM6ibGXP/EffUa0Pw1Nro kizoiPPhWmnCa+FNrEdxQOTcxwsgH7oRf0kReQgKDUNaNXXDR0IVITkFHLyLa45tMrnl O/HQ== X-Gm-Message-State: AODbwcDYssWwwaGE8WnPB0V06QSBd+/zS1Pj8vL89zUsAOtGMu23UUre F7hIm5vh9xCr11qOT1o= X-Received: by 10.200.51.2 with SMTP id t2mr38200475qta.130.1495653799209; Wed, 24 May 2017 12:23:19 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:34 -0700 Message-Id: <20170524192246.15905-22-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v2 21/33] target/s390x: Use unwind data for helper_tre 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 15 ++++++++------- target/s390x/translate.c | 1 - 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index b37a963..fd6dbf7 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -744,9 +744,11 @@ void HELPER(tr)(CPUS390XState *env, uint32_t len, uint= 64_t array, uint64_t HELPER(tre)(CPUS390XState *env, uint64_t array, uint64_t len, uint64_t trans) { + uintptr_t ra =3D GETPC(); uint8_t end =3D env->regs[0] & 0xff; uint64_t l =3D len; uint64_t i; + uint32_t cc =3D 0; =20 if (!(env->psw.mask & PSW_MASK_64)) { array &=3D 0x7fffffff; @@ -757,25 +759,24 @@ uint64_t HELPER(tre)(CPUS390XState *env, uint64_t arr= ay, amount of work we're willing to do. For now, let's cap at 8k. */ if (l > 0x2000) { l =3D 0x2000; - env->cc_op =3D 3; - } else { - env->cc_op =3D 0; + cc =3D 3; } =20 for (i =3D 0; i < l; i++) { uint8_t byte, new_byte; =20 - byte =3D cpu_ldub_data(env, array + i); + byte =3D cpu_ldub_data_ra(env, array + i, ra); =20 if (byte =3D=3D end) { - env->cc_op =3D 1; + cc =3D 1; break; } =20 - new_byte =3D cpu_ldub_data(env, trans + byte); - cpu_stb_data(env, array + i, new_byte); + new_byte =3D cpu_ldub_data_ra(env, trans + byte, ra); + cpu_stb_data_ra(env, array + i, new_byte, ra); } =20 + env->cc_op =3D cc; env->retxl =3D len - i; return array + i; } diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 1842cc3..447ba07 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -4073,7 +4073,6 @@ static ExitStatus op_tr(DisasContext *s, DisasOps *o) =20 static ExitStatus op_tre(DisasContext *s, DisasOps *o) { - potential_page_fault(s); gen_helper_tre(o->out, cpu_env, o->out, o->out2, o->in2); return_low128(o->out2); set_cc_static(s); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654413322239.41412381977364; Wed, 24 May 2017 12:33:33 -0700 (PDT) Received: from localhost ([::1]:56492 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDc2F-0003Mu-Tn for importer@patchew.org; Wed, 24 May 2017 15:33:31 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45461) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsQ-00021P-7E for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsP-0001XY-7Z for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:22 -0400 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:34237) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsP-0001We-1N for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:21 -0400 Received: by mail-qt0-x244.google.com with SMTP id l39so27575051qtb.1 for ; Wed, 24 May 2017 12:23:20 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:20 -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=7I79L6I6TpavOVs+f5oRZ4z5nqdnvEqXk7Ftgu/D57o=; b=kRuMj6zbSr/1GhM+MvOtCLdzqYBcDbB13Mk9fjoAPnFJPiJHMcaa7fFjHUgoqY+/Mu 7TXtQWPyYOY3fW/RrGWIXslAU6pZPZR4IhgSt2ZHJxewG+BUh/w9IC6Z3XmKTw8MMu/m YG3em2Vm+fLFy7biLXsec6+BilIPJK8GUb+deQyKCjnU/fjiOkmOqbhZ3usK6TLWAahb 6BuGcSnlI0Yc/dgqAFb+6X+j/3EMotTDujqKg+0OsElVJjBI2t7yWQh6tOk94AZiLmOc ArmZD3XzSzzRvs3NiMd17bGsz7FLpg0pYDWSvjPNJMOcNtLAvedg8ISqPBOiLEAWGtHc 9teA== 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=7I79L6I6TpavOVs+f5oRZ4z5nqdnvEqXk7Ftgu/D57o=; b=JnUSfw68zrr9rII4bn8z4Jg5p1oeb/+S+nxNi7Oregn5677u6p4cqE+1LevE8luP/u IpuZVB/5hOAc23wNOVBQHm3bFu2AdBPyunqN2UrGgsNBD1swIWlqjnd4umNUaRZ1vjwN qc9ymYlPObdzmw1RANDfWH84PnVBC8QW7L9v046EGJq/AHrhhjTbXA9cgaLzL4f4BZxp 4MA7CzVcaYwfomHxDGF+JGpvL44FBge6N8nEVdM+qfTRzPZWLQzv1oMVnWSGKO5ue9l3 JnXbXxs3OjRFMCEPj51QWi7wr7r/hwlthxrgKnNb0Hp1eKYX0DDHebNpP/mXAZuoSa6x BWcQ== X-Gm-Message-State: AODbwcBVWJBfsb+BdSEeDFOIOcHaWQgSxLFoWLVN50+N7n8kS7KUqxbs BiDJWhk7WM+4yQ== X-Received: by 10.200.52.221 with SMTP id x29mr36579364qtb.70.1495653800627; Wed, 24 May 2017 12:23:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:35 -0700 Message-Id: <20170524192246.15905-23-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::244 Subject: [Qemu-devel] [PATCH v2 22/33] target/s390x: Use unwind data for helper_trt 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 28 ++++++++++++++++------------ target/s390x/translate.c | 1 - 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index fd6dbf7..ff12777 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -781,25 +781,29 @@ uint64_t HELPER(tre)(CPUS390XState *env, uint64_t arr= ay, return array + i; } =20 -uint32_t HELPER(trt)(CPUS390XState *env, uint32_t len, uint64_t array, - uint64_t trans) +static uint32_t do_helper_trt(CPUS390XState *env, uint32_t len, uint64_t a= rray, + uint64_t trans, uintptr_t ra) { - uint32_t cc =3D 0; - int i; + uint32_t i; =20 for (i =3D 0; i <=3D len; i++) { - uint8_t byte =3D cpu_ldub_data(env, array + i); - uint8_t sbyte =3D cpu_ldub_data(env, trans + byte); + uint8_t byte =3D cpu_ldub_data_ra(env, array + i, ra); + uint8_t sbyte =3D cpu_ldub_data_ra(env, trans + byte, ra); =20 if (sbyte !=3D 0) { env->regs[1] =3D array + i; - env->regs[2] =3D (env->regs[2] & ~0xff) | sbyte; - cc =3D (i =3D=3D len) ? 2 : 1; - break; + env->regs[2] =3D deposit64(env->regs[2], 0, 8, sbyte); + return (i =3D=3D len) ? 2 : 1; } } =20 - return cc; + return 0; +} + +uint32_t HELPER(trt)(CPUS390XState *env, uint32_t len, uint64_t array, + uint64_t trans) +{ + return do_helper_trt(env, len, array, trans, GETPC()); } =20 void HELPER(cdsg)(CPUS390XState *env, uint64_t addr, @@ -1275,8 +1279,8 @@ uint32_t HELPER(ex)(CPUS390XState *env, uint32_t cc, = uint64_t v1, get_address(env, 0, b2, d2), 0); return cc; case 0xd00: - cc =3D helper_trt(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2)); + cc =3D do_helper_trt(env, l, get_address(env, 0, b1, d1), + get_address(env, 0, b2, d2), 0); break; default: goto abort; diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 447ba07..fed9f17 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -4082,7 +4082,6 @@ static ExitStatus op_tre(DisasContext *s, DisasOps *o) static ExitStatus op_trt(DisasContext *s, DisasOps *o) { TCGv_i32 l =3D tcg_const_i32(get_field(s->fields, l1)); - potential_page_fault(s); gen_helper_trt(cc_op, cpu_env, l, o->addr1, o->in2); tcg_temp_free_i32(l); set_cc_static(s); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654954563466.0622025544336; Wed, 24 May 2017 12:42:34 -0700 (PDT) Received: from localhost ([::1]:56535 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDcAy-0002yi-5X for importer@patchew.org; Wed, 24 May 2017 15:42:32 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45472) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsR-00022i-DD for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsQ-0001b0-I0 for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:23 -0400 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:35411) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsQ-0001aR-DW for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:22 -0400 Received: by mail-qt0-x244.google.com with SMTP id r58so27542180qtb.2 for ; Wed, 24 May 2017 12:23:22 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:21 -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=n5BR7XB2IJ0BdEFSIgpNPSj8l11Jxl1kySMmYJ5ZWp0=; b=jZckpJdnFc+vCo0csvWPCDLwNNOurTeUfb6+Op2vcqgdau4BErucQwlcKqRgBQJVW5 ixemtYLMOryAx/i1ls196sdA4Sr72BGmqFYFutQf8Shh739LZQIKY3WWt1L1ELQu/Dfi l57C2Oe36i04io1uT8rOdhwm4RpQNQxWKtA78QbA/L5S1yp1dixOi2xBXQ8WfBaus4kq 3xwB9VQ+n2BlrdS2lX7L55sAiDMrqViyGolDa0/W9iROiU6ow5teZKmBwMuelpeTYDEy 48fwPuMpsoeyZn/BK2CIxm8Nj3QlONv3WZJQ8i4n+rL3grQlQDbEwbg8HO9Ta4PghtMv Y/nA== 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=n5BR7XB2IJ0BdEFSIgpNPSj8l11Jxl1kySMmYJ5ZWp0=; b=fCGWJzQYYHJ+Z7Xe8sRwIVtFQs196bAIpubeRpJs+QBzkzgjJoINasoEArv8Pu4ufs UgfxoMcgNTO+LVEH8rBkYSCgxkmO62XCzIX0etxRmHyslMs9hWEEO4tZJwDjp/VwianX mCM1iHpC03I+5+szD0kRCJ9KlNrs0K7zGiW3l3IgXTsIQHH34xyiRsLsNIBaEXaalCsM K4S9fRCxIeRzExnnCE2oCdsMh5nSe6qcUMmWs4Hyo9Xrwv0fvnvqZ3p7fBEHvPnTVEUC gTTVARgGnj8XG3c8A8wRGq6t/4mgP1cAhnEq98XHp43M5aAhiuXQyI+IyasvlDuEpnhQ QUgQ== X-Gm-Message-State: AODbwcB6xbGJbYEu+zFVnkV3+24gJ4kcjkR3i2OZoIAOPrytgSmJBk/Y nWVq4FJ5eVZU4BhuW3g= X-Received: by 10.237.61.35 with SMTP id g32mr38858197qtf.60.1495653801784; Wed, 24 May 2017 12:23:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:36 -0700 Message-Id: <20170524192246.15905-24-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::244 Subject: [Qemu-devel] [PATCH v2 23/33] target/s390x: Use unwind data for helper_lctlg 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 8 ++++---- target/s390x/translate.c | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index ff12777..68e3817 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -848,20 +848,20 @@ void HELPER(cdsg)(CPUS390XState *env, uint64_t addr, #if !defined(CONFIG_USER_ONLY) void HELPER(lctlg)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t = r3) { + uintptr_t ra =3D GETPC(); S390CPU *cpu =3D s390_env_get_cpu(env); bool PERchanged =3D false; - int i; uint64_t src =3D a2; - uint64_t val; + uint32_t i; =20 for (i =3D r1;; i =3D (i + 1) % 16) { - val =3D cpu_ldq_data(env, src); + uint64_t val =3D cpu_ldq_data_ra(env, src, ra); if (env->cregs[i] !=3D val && i >=3D 9 && i <=3D 11) { PERchanged =3D true; } env->cregs[i] =3D val; HELPER_LOG("load ctl %d from 0x%" PRIx64 " =3D=3D 0x%" PRIx64 "\n", - i, src, env->cregs[i]); + i, src, val); src +=3D sizeof(uint64_t); =20 if (i =3D=3D r3) { diff --git a/target/s390x/translate.c b/target/s390x/translate.c index fed9f17..65ae573 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -2552,7 +2552,6 @@ static ExitStatus op_lctlg(DisasContext *s, DisasOps = *o) TCGv_i32 r1 =3D tcg_const_i32(get_field(s->fields, r1)); TCGv_i32 r3 =3D tcg_const_i32(get_field(s->fields, r3)); check_privileged(s); - potential_page_fault(s); gen_helper_lctlg(cpu_env, r1, o->in2, r3); tcg_temp_free_i32(r1); tcg_temp_free_i32(r3); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654665347632.4465491427147; Wed, 24 May 2017 12:37:45 -0700 (PDT) Received: from localhost ([::1]:56513 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDc6I-0006xq-Q8 for importer@patchew.org; Wed, 24 May 2017 15:37:42 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45483) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsS-000242-ON for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsR-0001d0-Ky for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:24 -0400 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:34243) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsR-0001cN-Gm for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:23 -0400 Received: by mail-qt0-x243.google.com with SMTP id l39so27575200qtb.1 for ; Wed, 24 May 2017 12:23:23 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:22 -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=cL9ZIixFWuCElWINaHPa96A2Hka7pOIDgnrifuwkwlQ3c3dO/JUJjL/nKWSC2mdvIS j/Y/4QIVsiZA8CwKGszKXo1gwC9q4zGuOqgCB3+P3LZYGwvJlQyPYI4yIzPiLpgKrbCo zKYL6YbUSRJTW39eGcv6lieqfRE0ygqjVwrYZT8UVc6Ot1iMyPKZcJuIBk5YIjeEJrJy oJ9on1kwvHLRxDmq4WjuP6mASuh14ZqDFxrFTt3EF9pr/o2rVuEjRdSctUQzxphdSeQ9 6vN88mN99JbmtAQBps4VV/5yPwRIUyH7Df1uHQffeIt7BZOHKsmoAM61RbtH0zQmWLx7 gY0Q== 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=kgjNlolJx8oaVrIImwm2Blx7rNgb/6ytIIDZyRa1/YbXo2IbDgzmDe9Azy1+FfoS9C U+QdwNNzurcbkiFu9jBr7clivwKtaK2i845zhUopH010AtLM+Uin2p8esqHcuhP4waaA oVdoGKxUXR2FeFxKdCNY+yoUUqho03ck340BXV8uTbBJ6yV+hNI0I/+BxKLthvhPhf/u rMk+qpafjuFMnwAt38z5dCuOIbZkRRQNRlG41Zva6YU5hXXuTt6cfbyGiSkGBxxK9rOl MrPl0x7AqpzGpC3xXPIgkF4rGhFGWQJuNVNWmBfNTzUG5Z7eG/EV6xzBJ+EJ256My4G9 vGQQ== X-Gm-Message-State: AODbwcDB9YpYDidUIiFy4wu0ZFs85F53NRSmR3Ejewz6Uq4OYUwVpmZl dFEiOAcxS32d9Q== X-Received: by 10.200.53.202 with SMTP id l10mr35177132qtb.211.1495653803068; Wed, 24 May 2017 12:23:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:37 -0700 Message-Id: <20170524192246.15905-25-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v2 24/33] 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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, u= int64_t a2, uint32_t r3) =20 void HELPER(lctl)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t r= 3) { + uintptr_t ra =3D GETPC(); S390CPU *cpu =3D s390_env_get_cpu(env); bool PERchanged =3D false; - int i; uint64_t src =3D a2; - uint32_t val; + uint32_t i; =20 for (i =3D r1;; i =3D (i + 1) % 16) { - val =3D cpu_ldl_data(env, src); + uint32_t val =3D cpu_ldl_data_ra(env, src, ra); if ((uint32_t)env->cregs[i] !=3D val && i >=3D 9 && i <=3D 11) { PERchanged =3D true; } - env->cregs[i] =3D (env->cregs[i] & 0xFFFFFFFF00000000ULL) | val; + env->cregs[i] =3D deposit64(env->cregs[i], 0, 32, val); + HELPER_LOG("load ctl %d from 0x%" PRIx64 " =3D=3D 0x%x\n", i, src,= val); src +=3D sizeof(uint32_t); =20 if (i =3D=3D 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 =3D tcg_const_i32(get_field(s->fields, r1)); TCGv_i32 r3 =3D 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); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654816626779.67136719181; Wed, 24 May 2017 12:40:16 -0700 (PDT) Received: from localhost ([::1]:56520 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDc8k-0000zZ-4k for importer@patchew.org; Wed, 24 May 2017 15:40:14 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45495) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsU-00025D-0S for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsT-0001eo-3d for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:26 -0400 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:35865) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsS-0001eV-VR for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:25 -0400 Received: by mail-qk0-x241.google.com with SMTP id y128so27718109qka.3 for ; Wed, 24 May 2017 12:23:24 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:23 -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=JzHCsnJm/8NSSewI4HZTcmyMKbX5MlkRymiAbDWZr5w=; b=MBLUNyujxKl69442LmfdS/CMH52iR2qLwoCGcKwJIRRvudHCm+UEBBTtA3q/oNktHF Wx+WSRVjxBO+4j7fnD/RYy7WQ1XkjA+sG3x+9F6GV1cqSO1GzG49ndlAPsJa0ZIoXfNh 6kqv7Q2tK4fB9igspJ0la6lX91dds+FceO3ZrO0ViFTFHoCwnN2bMZn9wHFy5jlKJVS5 8HHGnXgp+Dk2zmelaPfdIK00jwcDsegplgt2DAa4TKmqxUJTtLM2YpX5/C26jrPHx8Xu 3I8Lw+fy4bCZwd4C96Vn+xsdGOhAm0QC5Mvh2SvG095UZtbe8TasSZg/0L++RmjqDtTW 8I2g== 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=JzHCsnJm/8NSSewI4HZTcmyMKbX5MlkRymiAbDWZr5w=; b=BMX7rUC7w/LFmxmLIvxbFdOHDhFKmhqmcTrti45aqjxBtYhtlbNSvCc8wPMxxlt7J0 vkAE6NVO4H7NQbYstsN4yyMY6f4fINNp7J8dXw6uxqhel+Q6FQyAljpFjWFzhczwfIaj BOAk3uySZr7TD0bmyzEdJjKGcnP5YG9x1mXQUH9gnUeMRd1/ex6cIDPMirwr2iimxPTe leHk/MW3XOzd03nFoJS0n5UPnbacO98o03JdY7227Ba1PfcVlCTZtLC4JJ0gFvIq2oi0 +RsnQNpnP54dsR379LPyfGKAznjX492MMN45eMI86tAXcM46G3J7ubLw81T7v9jFXuz2 dI9A== X-Gm-Message-State: AODbwcBVaVtjdinjdS4SiDB4qoPXLn4akq9A2BTSZzK9qsZG1yM7kQlT fFGfFvtyb+shHxAxqpE= X-Received: by 10.55.99.87 with SMTP id x84mr31429716qkb.86.1495653804265; Wed, 24 May 2017 12:23:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:38 -0700 Message-Id: <20170524192246.15905-26-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v2 25/33] target/s390x: Use unwind data for helper_stctl 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 10 ++++++---- target/s390x/translate.c | 2 -- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 614cdb2..b64c04e 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -907,11 +907,12 @@ void HELPER(lctl)(CPUS390XState *env, uint32_t r1, ui= nt64_t a2, uint32_t r3) =20 void HELPER(stctg)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t = r3) { - int i; + uintptr_t ra =3D GETPC(); uint64_t dest =3D a2; + uint32_t i; =20 for (i =3D r1;; i =3D (i + 1) % 16) { - cpu_stq_data(env, dest, env->cregs[i]); + cpu_stq_data_ra(env, dest, env->cregs[i], ra); dest +=3D sizeof(uint64_t); =20 if (i =3D=3D r3) { @@ -922,11 +923,12 @@ void HELPER(stctg)(CPUS390XState *env, uint32_t r1, u= int64_t a2, uint32_t r3) =20 void HELPER(stctl)(CPUS390XState *env, uint32_t r1, uint64_t a2, uint32_t = r3) { - int i; + uintptr_t ra =3D GETPC(); uint64_t dest =3D a2; + uint32_t i; =20 for (i =3D r1;; i =3D (i + 1) % 16) { - cpu_stl_data(env, dest, env->cregs[i]); + cpu_stl_data_ra(env, dest, env->cregs[i], ra); dest +=3D sizeof(uint32_t); =20 if (i =3D=3D r3) { diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 26f6b37..669da89 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -3612,7 +3612,6 @@ static ExitStatus op_stctg(DisasContext *s, DisasOps = *o) TCGv_i32 r1 =3D tcg_const_i32(get_field(s->fields, r1)); TCGv_i32 r3 =3D tcg_const_i32(get_field(s->fields, r3)); check_privileged(s); - potential_page_fault(s); gen_helper_stctg(cpu_env, r1, o->in2, r3); tcg_temp_free_i32(r1); tcg_temp_free_i32(r3); @@ -3624,7 +3623,6 @@ static ExitStatus op_stctl(DisasContext *s, DisasOps = *o) TCGv_i32 r1 =3D tcg_const_i32(get_field(s->fields, r1)); TCGv_i32 r3 =3D tcg_const_i32(get_field(s->fields, r3)); check_privileged(s); - potential_page_fault(s); gen_helper_stctl(cpu_env, r1, o->in2, r3); tcg_temp_free_i32(r1); tcg_temp_free_i32(r3); --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 149565457427825.763004354450914; Wed, 24 May 2017 12:36:14 -0700 (PDT) Received: from localhost ([::1]:56507 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDc4o-0005Vf-NA for importer@patchew.org; Wed, 24 May 2017 15:36:10 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45505) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsU-00025M-Uh for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsU-0001fe-1o for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:26 -0400 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:33025) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsT-0001f5-U0 for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:25 -0400 Received: by mail-qk0-x243.google.com with SMTP id o85so27688330qkh.0 for ; Wed, 24 May 2017 12:23:25 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:25 -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=TscVPA1Nev8UXJAIkGZGrY56ROVuphqeWPHezSE15NE=; b=m15g0EaajwHug4paqOpnXyps7tg0whu575TSWANNumn98IVZXyvTStTKQgLRw/Z+Y5 errhLIAEq53wYcEuGri9VOvVxYTqSWc2jDArqc1aFCxaf4OKn8TV8gbxio5KBeiE6bcG lgiQcarFLepSQ6n/20UvOCgKNXxwUBT9wqNSkMm1iRhNzs8HUT6wSWKCa8Anxv+isirv 0OpR9IVKIUT6EUmNQ+yQQn6oA/W+tDFtIdIfdzkN53vno/rtkEXAj/mja3PxQpBp/Jn9 raMmdfwt6DGyTtHNo6SacmaZhiTjoZa3HZzgea0/eXst0w5Pw0thNfoJMGxNA4MnIsHe gl6Q== 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=TscVPA1Nev8UXJAIkGZGrY56ROVuphqeWPHezSE15NE=; b=sP71084Z/FdwlTvqOlgKDIcotuLF7pvhgCm/HrLdK/rLRCrbnHU66ML/RiTiGs5T/9 Ap3Aliwvwdpy8H6DitC+1X0LRtZVbeQsssDHM/zwpOURnTkezIZtCCkhbBnU58AJw9iF 8z1Is6jCbrWynUJ4usb2KhBN8qd8gF5vrCplx26QNQj6vrwwqf/NeYR5j6pGCrQyjmwB uQ1UfmRrQRf6wNKP6z+hZyh4GZ4/W2uBE9ip4hChGw0kKEmGxDZsu4ReW16M/zbZQ5C+ 7c4Xajg/1pARLq875oOFH6okz7LOz5EHj9f0xB9GTYH/uuKZF1rj/eGUZQMf9kr+NFH7 I+tA== X-Gm-Message-State: AODbwcBBdK4LHugVSWXmQpVuazg0bATbR4H1+b+ABzwTwBoDLTyTWur+ gYTyepTEzaGqpg== X-Received: by 10.55.16.41 with SMTP id a41mr32912008qkh.131.1495653805515; Wed, 24 May 2017 12:23:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:39 -0700 Message-Id: <20170524192246.15905-27-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::243 Subject: [Qemu-devel] [PATCH v2 26/33] target/s390x: Use unwind data for helper_testblock 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 3 +++ target/s390x/translate.c | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index b64c04e..7df2e53 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -939,6 +939,7 @@ void HELPER(stctl)(CPUS390XState *env, uint32_t r1, uin= t64_t a2, uint32_t r3) =20 uint32_t HELPER(testblock)(CPUS390XState *env, uint64_t real_addr) { + uintptr_t ra =3D GETPC(); CPUState *cs =3D CPU(s390_env_get_cpu(env)); uint64_t abs_addr; int i; @@ -947,12 +948,14 @@ uint32_t HELPER(testblock)(CPUS390XState *env, uint64= _t real_addr) abs_addr =3D mmu_real2abs(env, real_addr) & TARGET_PAGE_MASK; if (!address_space_access_valid(&address_space_memory, abs_addr, TARGET_PAGE_SIZE, true)) { + cpu_restore_state(cs, ra); program_interrupt(env, PGM_ADDRESSING, 4); return 1; } =20 /* Check low-address protection */ if ((env->cregs[0] & CR0_LOWPROT) && real_addr < 0x2000) { + cpu_restore_state(cs, ra); program_interrupt(env, PGM_PROTECTION, 4); return 1; } diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 669da89..cd017ce 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -4042,7 +4042,6 @@ static ExitStatus op_tcxb(DisasContext *s, DisasOps *= o) static ExitStatus op_testblock(DisasContext *s, DisasOps *o) { check_privileged(s); - potential_page_fault(s); gen_helper_testblock(cc_op, cpu_env, o->in2); set_cc_static(s); return NO_EXIT; --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495655094174453.6782398029279; Wed, 24 May 2017 12:44:54 -0700 (PDT) Received: from localhost ([::1]:56546 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDcDE-0005l2-N3 for importer@patchew.org; Wed, 24 May 2017 15:44:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45517) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsW-00025N-2a for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsV-0001iM-9y for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:28 -0400 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:33854) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsV-0001hf-5q for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:27 -0400 Received: by mail-qk0-x242.google.com with SMTP id u75so27646236qka.1 for ; Wed, 24 May 2017 12:23:27 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:26 -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=ROqpEoJ2wAZPxH1C6cslOAzGDAtWXw+IeGgc8xj+v9Q=; b=QTpKM8XjZRgBbP9Uf6T9eehhyYA5ue0/7LTrj2AmX5miHjsV2k3riZPVPPRGBuUk3Q CLTQyfqI7m8x7wzOxXlHrp83JPYr4RbqkDG3fUlkdgEXJlnNe0Ee8JV5imZXkHE1NiAX p6tdL0miGoIQdPqIhn4MCUdBdiUdhBEMPX/BaT5vFHQpbbWEVVJRqYwBd9lWyBqQwwNd UQM8CvVrmdR7out/xjicGNDxwAQTrg4fBaCa0JLaSi9edmow7+xUWwgcg7M8AmuymIT4 0ayyK297J+9GLAkLDnYoRDThoXmw1f7WKI4DL5l4QbkXX/AWzV29b8/qdKgGy9vF8Ymd b1eg== 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=ROqpEoJ2wAZPxH1C6cslOAzGDAtWXw+IeGgc8xj+v9Q=; b=BRkIe3cmEFhrjP1IbvcShp6tWjNszOzTWWgHLSu1q6vHCg+UJ7QFFbYYAhMq1UxwH8 tCoe3JbQkfYVkvt+rVczSQjsigShxk6pQcB0pXs+CwNEkYxxeBtx0RqY8ArPgkWd+Q7Z IB08WpmjC8/Oy5LWsvMFdFnDuzndbA/KYmGs4/VnIPVNB1ox8QWHWV2HhXWDVmkJDCMN 3B4xBfg4v/P3aDzcbmXckwWBRYlRPcyELz5lqPRC+BQd42ZjbvlV59bKeoc5YiZtZWw7 UPboJnbicj0CEc5oDXAtX8r56UdaRvg6iDP7LxDWyMjbkqNi3OucQ4iveECPJ4EYmZ5A T6AQ== X-Gm-Message-State: AODbwcCXpuiQMlURIQs4NJRRcNsSyuH6PCI+/+IF2PzER2ozJOfRN/Rf YoFP50Do0rDFBg== X-Received: by 10.55.209.83 with SMTP id s80mr36053315qki.138.1495653806795; Wed, 24 May 2017 12:23:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:40 -0700 Message-Id: <20170524192246.15905-28-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::242 Subject: [Qemu-devel] [PATCH v2 27/33] target/s390x: Use unwind data for helper_tprot 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 1 - target/s390x/translate.c | 1 - 2 files changed, 2 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 7df2e53..a8c85c9 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -970,7 +970,6 @@ uint32_t HELPER(testblock)(CPUS390XState *env, uint64_t= real_addr) uint32_t HELPER(tprot)(uint64_t a1, uint64_t a2) { /* XXX implement */ - return 0; } =20 diff --git a/target/s390x/translate.c b/target/s390x/translate.c index cd017ce..7b9c111 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -4049,7 +4049,6 @@ static ExitStatus op_testblock(DisasContext *s, Disas= Ops *o) =20 static ExitStatus op_tprot(DisasContext *s, DisasOps *o) { - potential_page_fault(s); gen_helper_tprot(cc_op, o->addr1, o->in2); set_cc_static(s); return NO_EXIT; --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495655236494819.816007534043; Wed, 24 May 2017 12:47:16 -0700 (PDT) Received: from localhost ([::1]:56563 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDcFW-0007ks-OO for importer@patchew.org; Wed, 24 May 2017 15:47:14 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45529) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsX-00027A-Ix for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsW-0001kt-QA for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:29 -0400 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:35871) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsW-0001k8-Ls for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:28 -0400 Received: by mail-qk0-x241.google.com with SMTP id y128so27718268qka.3 for ; Wed, 24 May 2017 12:23:28 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:27 -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=cbq6KL57uP0oBaBLIBzD2aFSzZRhCiv9kGqVIJcCjZ8=; b=YlZU7OmavprZzsiRvL1cDlrti3xTVNVEAsaTRte5bJU881fHUzDmX+MRYFgXt0b6jS psClrQuR++K05w0djE4FphOV6kKLI4nfbTp+mPR2IhcLEaMCBXIsHhUx1lfwg2Qe37ir R1561sZHyCVi1mZX2H2fuBFtrU/KmJGRzrF35R2KPzg8m5lxgnDAyrfKk0KXCNUTPOSs EfX7rAtOw2w0dCI1EaGdQJWP2FyAnLGj+d9PP6zifFWtKfAMJoYI22rdzFHU/kAxbkT8 YFaknxzhLYRCArrKDHxEOlg2gxBAuBzKahr+UR4N7QBUYE+7Xh/b/PzpRC8iBiy23+HH qe2w== 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=cbq6KL57uP0oBaBLIBzD2aFSzZRhCiv9kGqVIJcCjZ8=; b=Z/G/OcLsM9YgykUrT3wEgUehGOFs8nK/6IbjZFZvHohucaz64R2honuvzwaZePDY5v 8VvdSvc84GC1gQuSdPMkG284q/sJ0DtRyNAZc0VqfCLwvKQs4LeMNA3jSlxFuGZmQzRP rbdXLqDmK5egZn8RrOmSi68Icg2zUmPB9nbciRaxvQrCTPOQ3jXJkwAVl1QCc2etO+32 Nog5prqJI4X4tdjKAExZofA4MyMQ6BmGiYINWmg1RkQkbTLPWrm+erzeIYfWhdC+kSrX /hjdb49/YLAK0vckKI9Pywvcf++u8cJ8kazXa9LvrV+q5aS7v5Lf75qEx+eGp41YPNbz fnag== X-Gm-Message-State: AODbwcAZlHdm4PO/KaImMhULoRVZA/ZHQJcHhXqh9jWOnegkVSHHYZOR rpggD99KKuToIVtq4kU= X-Received: by 10.55.137.133 with SMTP id l127mr34473673qkd.251.1495653808025; Wed, 24 May 2017 12:23:28 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:41 -0700 Message-Id: <20170524192246.15905-29-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v2 28/33] target/s390x: Use unwind data for helper_lra 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Fix saving exception_index around mmu_translate; eliminate a dead store. Signed-off-by: Richard Henderson Reviewed-by: Aurelien Jarno --- target/s390x/mem_helper.c | 6 +++--- target/s390x/translate.c | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index a8c85c9..17d8257 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -1208,17 +1208,17 @@ uint64_t HELPER(lra)(CPUS390XState *env, uint64_t a= ddr) { CPUState *cs =3D CPU(s390_env_get_cpu(env)); uint32_t cc =3D 0; - int old_exc =3D cs->exception_index; uint64_t asc =3D env->psw.mask & PSW_MASK_ASC; uint64_t ret; - int flags; + int old_exc, flags; =20 /* XXX incomplete - has more corner cases */ if (!(env->psw.mask & PSW_MASK_64) && (addr >> 32)) { + cpu_restore_state(cs, GETPC()); program_interrupt(env, PGM_SPECIAL_OP, 2); } =20 - cs->exception_index =3D old_exc; + old_exc =3D cs->exception_index; if (mmu_translate(env, addr, 0, asc, &ret, &flags, true)) { cc =3D 3; } diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 7b9c111..141be22 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -2560,7 +2560,6 @@ static ExitStatus op_lctlg(DisasContext *s, DisasOps = *o) static ExitStatus op_lra(DisasContext *s, DisasOps *o) { check_privileged(s); - potential_page_fault(s); gen_helper_lra(o->out, cpu_env, o->in2); set_cc_static(s); return NO_EXIT; --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495655316354396.33723376613943; Wed, 24 May 2017 12:48:36 -0700 (PDT) Received: from localhost ([::1]:56581 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDcGo-0000kN-Sd for importer@patchew.org; Wed, 24 May 2017 15:48:34 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45545) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsZ-00028x-6R for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsY-0001lS-AD for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:31 -0400 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:36246) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsY-0001lN-5n for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:30 -0400 Received: by mail-qt0-x244.google.com with SMTP id j13so27554980qta.3 for ; Wed, 24 May 2017 12:23:30 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:28 -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=Cb8GdMYe0tF3tDR/aGBoSDCEqgMRUiW3Oo3XwU8bGC4=; b=RuGfuUGY87Sqf86rjonc255oIaLjV6i9SVw4UaA7tM7Ft6ZNozjW3YqzxQu+qku5rl +qyJlV8zsqegnMVnN3y8xjFLa/TWkGv/WbFy0t6GEgpJQGUOl4xAa631fRY9GApC3E+0 cp0hsodJTiQXD8fVKp/quZ5LV6R5/OmfTwyRiekl64g0HOfkB1zyWDnUv9gh8Z8n5+Qo oFOlgkcpYxLBdL6+FntVxyxrQv3Xm5jAZlcD/3qUHkKLZ0I1i2ZFpkLPBr38eLXMlCt5 En8s/lntWDnuUCtJm0JoSZ5DXVy+zTPkPT3INX54FhM7bNkIJxFLO6gIHHlCEWr13xCq xNGA== 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=Cb8GdMYe0tF3tDR/aGBoSDCEqgMRUiW3Oo3XwU8bGC4=; b=Y2681F/SO8OucSWW2gItbxUScPhLdMUNCNcA7gMTP5fzAXx/Tgpq4WC4w3BSmwW/14 TycXLUish9OnrwwSmTkMpRoLHBN4uWzfRaFIo7UWgg/W1mPYnSrM8cNKBvK2dS0BvNAy IpI7XO/z6P2uQhN9zNmUiyoxcj8s1lVX54xfsfcdslww60v6WIGlxFL7gkAnTUafwwFR E+lAYyEbE5TH4uck6kn3kn94l7R/bxIWu1vKYeX5cANkuLLW1FHepyDp5A6rnq5sdnPM d3kx3XCGimHaNeT+Fa6R2213wxO7E14r9U3gZhZ9gRQNXgO6Gmph+5iZaauv2raQT5MB jIoA== X-Gm-Message-State: AODbwcDPNlaB9S7uLitJzf3SRibn+LST4hVwwm43bIZXV0BFijV36usz jIjURguaa2Vj2e72mqQ= X-Received: by 10.200.57.57 with SMTP id s54mr38788468qtb.53.1495653809474; Wed, 24 May 2017 12:23:29 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:42 -0700 Message-Id: <20170524192246.15905-30-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::244 Subject: [Qemu-devel] [PATCH v2 29/33] target/s390x: Use unwind data for helper_mvcs/mvcp 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Reviewed-by: Thomas Huth Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- target/s390x/mem_helper.c | 8 ++++++-- target/s390x/translate.c | 2 -- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index 17d8257..a73d486 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -1082,6 +1082,7 @@ uint32_t HELPER(csp)(CPUS390XState *env, uint32_t r1,= uint64_t r2) =20 uint32_t HELPER(mvcs)(CPUS390XState *env, uint64_t l, uint64_t a1, uint64_= t a2) { + uintptr_t ra =3D GETPC(); int cc =3D 0, i; =20 HELPER_LOG("%s: %16" PRIx64 " %16" PRIx64 " %16" PRIx64 "\n", @@ -1095,7 +1096,8 @@ uint32_t HELPER(mvcs)(CPUS390XState *env, uint64_t l,= uint64_t a1, uint64_t a2) =20 /* XXX replace w/ memcpy */ for (i =3D 0; i < l; i++) { - cpu_stb_secondary(env, a1 + i, cpu_ldub_primary(env, a2 + i)); + uint8_t x =3D cpu_ldub_primary_ra(env, a2 + i, ra); + cpu_stb_secondary_ra(env, a1 + i, x, ra); } =20 return cc; @@ -1103,6 +1105,7 @@ uint32_t HELPER(mvcs)(CPUS390XState *env, uint64_t l,= uint64_t a1, uint64_t a2) =20 uint32_t HELPER(mvcp)(CPUS390XState *env, uint64_t l, uint64_t a1, uint64_= t a2) { + uintptr_t ra =3D GETPC(); int cc =3D 0, i; =20 HELPER_LOG("%s: %16" PRIx64 " %16" PRIx64 " %16" PRIx64 "\n", @@ -1116,7 +1119,8 @@ uint32_t HELPER(mvcp)(CPUS390XState *env, uint64_t l,= uint64_t a1, uint64_t a2) =20 /* XXX replace w/ memcpy */ for (i =3D 0; i < l; i++) { - cpu_stb_primary(env, a1 + i, cpu_ldub_secondary(env, a2 + i)); + uint8_t x =3D cpu_ldub_secondary_ra(env, a2 + i, ra); + cpu_stb_primary_ra(env, a1 + i, x, ra); } =20 return cc; diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 141be22..422bbf1 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -2889,7 +2889,6 @@ static ExitStatus op_mvcp(DisasContext *s, DisasOps *= o) { int r1 =3D get_field(s->fields, l1); check_privileged(s); - potential_page_fault(s); gen_helper_mvcp(cc_op, cpu_env, regs[r1], o->addr1, o->in2); set_cc_static(s); return NO_EXIT; @@ -2899,7 +2898,6 @@ static ExitStatus op_mvcs(DisasContext *s, DisasOps *= o) { int r1 =3D get_field(s->fields, l1); check_privileged(s); - potential_page_fault(s); gen_helper_mvcs(cc_op, cpu_env, regs[r1], o->addr1, o->in2); set_cc_static(s); return NO_EXIT; --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495655380997403.7371681777631; Wed, 24 May 2017 12:49:40 -0700 (PDT) Received: from localhost ([::1]:56583 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDcHr-0001bb-Ee for importer@patchew.org; Wed, 24 May 2017 15:49:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45557) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsa-00029G-MQ for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsZ-0001lu-Gc for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:32 -0400 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:33276) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsZ-0001lk-B9 for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:31 -0400 Received: by mail-qt0-x243.google.com with SMTP id a46so27549695qte.0 for ; Wed, 24 May 2017 12:23:31 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:30 -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=mFcPbxjGtmKq4m2V6YHauxduMk0dlvzqh0LE8RqQqf8=; b=CgQi4QIRYs4DK+ot4W6SsjcqnGvSsW5qc1BPnAamwZ7kB5Oje7PHJEm6ufbq3eRgaR rKVGcClgQ8lnxOWVpeYueHMhEzKAOKhu4PFHgrHlCX6kV1VlRlGmUEarzK1uI0OXSwQn 27zD4kfhMQ+XFKOZC9F997/fnj8f/8J8LBwTaBAQ8HQ+elVpnpopyuCS0z+oFQS+PIz/ qHYm8wUX4gsz9HjZxePavgmdZnVmsinil1iLBmt/HFpuXQQ8xzpzoY8lpZ2AbV0EcyzW oGCZfDAuY8AmA0qITnTlv+gqK0O4jJnqLXmQj3hPAw7Rpc8yZgGYmgFsvrATcK4wNfo6 MfQw== 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=mFcPbxjGtmKq4m2V6YHauxduMk0dlvzqh0LE8RqQqf8=; b=b9WAWOd0grDrmcJMA6E2UFAOtN1+oPKZmX/BZuqw2IK2sdSGoDXQOJ7ZqWPbZ1SgZK 6ATr0yPKav9wfn81Yua+KO7tMMCqJeomvKu4ymw9SDbb+dRk7OFrmHK2w48Mhj/Q49jd k5BfRMUY+EhVbR20WDkguFd+Ng0THI97HVy0fMkueGRq2Oo6KzB2MZPPi+4LxawmgBk4 RgEYufxdTc5mH5KfzlCBNV8dB6f8fL57GqpIUqXR3awNkjTdBaXnGxxfmy4eVGHMH1U1 RhCKnUtCJS3YskxsmtHzYSJFDRI8Du23CaN2aAlFYNY9zdD0vDMJRaxsCZ28+U65nqik UUAA== X-Gm-Message-State: AODbwcClz4QDlN137jYlHEttSG16KZ+SFuYjLRPeMa3rdskBeh/nh8DZ JEIVktpGit1lXQ== X-Received: by 10.237.63.39 with SMTP id p36mr35408933qtf.81.1495653810838; Wed, 24 May 2017 12:23:30 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:43 -0700 Message-Id: <20170524192246.15905-31-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v2 30/33] target/s390x: Fix some helper_ex problems 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" (1) The OR of the low bits or R1 into INSN were not being done consistently; it was forgotten along all but the SVC path. (2) The setting of ILEN was wrong on SVC path for EXRL. (3) The data load for ICM read too much. Fix these by consolidating data load at the beginning, using get_ilen to control the number of bytes loaded, and ORing in the byte from R1. Use extract64 from the full aligned insn to extract arguments. Pass in ILEN rather than RET as the more natural way to give the required data along the SVC path. Modify ENV->CC_OP directly rather than include it in the functional interface. Signed-off-by: Richard Henderson Reviewed-by: Aurelien Jarno --- target/s390x/helper.h | 2 +- target/s390x/mem_helper.c | 135 +++++++++++++++++++++++++-----------------= ---- target/s390x/translate.c | 8 +-- 3 files changed, 78 insertions(+), 67 deletions(-) diff --git a/target/s390x/helper.h b/target/s390x/helper.h index ea35834..3819409 100644 --- a/target/s390x/helper.h +++ b/target/s390x/helper.h @@ -14,7 +14,7 @@ DEF_HELPER_4(srst, i64, env, i64, i64, i64) DEF_HELPER_4(clst, i64, env, i64, i64, i64) DEF_HELPER_FLAGS_4(mvpg, TCG_CALL_NO_WG, i32, env, i64, i64, i64) DEF_HELPER_4(mvst, i64, env, i64, i64, i64) -DEF_HELPER_5(ex, i32, env, i32, i64, i64, i64) +DEF_HELPER_4(ex, void, env, i32, i64, i64) DEF_HELPER_FLAGS_4(stam, TCG_CALL_NO_WG, void, env, i32, i64, i32) DEF_HELPER_FLAGS_4(lam, TCG_CALL_NO_WG, void, env, i32, i64, i32) DEF_HELPER_4(mvcle, i32, env, i32, i64, i32) diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index a73d486..fa03129 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -1245,76 +1245,87 @@ uint64_t HELPER(lra)(CPUS390XState *env, uint64_t a= ddr) in other words: tricky... currently implemented by interpreting the cases it is most commonly use= d. */ -uint32_t HELPER(ex)(CPUS390XState *env, uint32_t cc, uint64_t v1, - uint64_t addr, uint64_t ret) +void HELPER(ex)(CPUS390XState *env, uint32_t ilen, uint64_t r1, uint64_t a= ddr) { S390CPU *cpu =3D s390_env_get_cpu(env); - uint16_t insn =3D cpu_lduw_code(env, addr); - - HELPER_LOG("%s: v1 0x%lx addr 0x%lx insn 0x%x\n", __func__, v1, addr, - insn); - if ((insn & 0xf0ff) =3D=3D 0xd000) { - uint32_t l, insn2, b1, b2, d1, d2; - - l =3D v1 & 0xff; - insn2 =3D cpu_ldl_code(env, addr + 2); - b1 =3D (insn2 >> 28) & 0xf; - b2 =3D (insn2 >> 12) & 0xf; - d1 =3D (insn2 >> 16) & 0xfff; - d2 =3D insn2 & 0xfff; - switch (insn & 0xf00) { - case 0x200: + uint64_t insn =3D cpu_lduw_code(env, addr); + uint8_t opc =3D insn >> 8; + + /* Or in the contents of R1[56:63]. */ + insn |=3D r1 & 0xff; + + /* Load the rest of the instruction. */ + insn <<=3D 48; + switch (get_ilen(opc)) { + case 2: + break; + case 4: + insn |=3D (uint64_t)cpu_lduw_code(env, addr + 2) << 32; + break; + case 6: + insn |=3D (uint64_t)(uint32_t)cpu_ldl_code(env, addr + 2) << 16; + break; + default: + g_assert_not_reached(); + } + + HELPER_LOG("%s: addr 0x%lx insn 0x%" PRIx64 "\n", __func__, addr, insn= ); + + if ((opc & 0xf0) =3D=3D 0xd0) { + uint32_t l, b1, b2, d1, d2; + + l =3D extract64(insn, 48, 8); + b1 =3D extract64(insn, 44, 4); + b2 =3D extract64(insn, 28, 4); + d1 =3D extract64(insn, 32, 12); + d2 =3D extract64(insn, 16, 12); + switch (opc & 0xf) { + case 0x2: do_helper_mvc(env, l, get_address(env, 0, b1, d1), get_address(env, 0, b2, d2), 0); - break; - case 0x400: - cc =3D do_helper_nc(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2), 0); - break; - case 0x500: - cc =3D do_helper_clc(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2), 0); - break; - case 0x600: - cc =3D do_helper_oc(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2), 0); - break; - case 0x700: - cc =3D do_helper_xc(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2), 0); - break; - case 0xc00: + return; + case 0x4: + env->cc_op =3D do_helper_nc(env, l, get_address(env, 0, b1, d1= ), + get_address(env, 0, b2, d2), 0); + return; + case 0x5: + env->cc_op =3D do_helper_clc(env, l, get_address(env, 0, b1, d= 1), + get_address(env, 0, b2, d2), 0); + return; + case 0x6: + env->cc_op =3D do_helper_oc(env, l, get_address(env, 0, b1, d1= ), + get_address(env, 0, b2, d2), 0); + return; + case 0x7: + env->cc_op =3D do_helper_xc(env, l, get_address(env, 0, b1, d1= ), + get_address(env, 0, b2, d2), 0); + return; + case 0xc: do_helper_tr(env, l, get_address(env, 0, b1, d1), get_address(env, 0, b2, d2), 0); - return cc; - case 0xd00: - cc =3D do_helper_trt(env, l, get_address(env, 0, b1, d1), - get_address(env, 0, b2, d2), 0); - break; - default: - goto abort; + return; + case 0xd: + env->cc_op =3D do_helper_trt(env, l, get_address(env, 0, b1, d= 1), + get_address(env, 0, b2, d2), 0); + return; } - } else if ((insn & 0xff00) =3D=3D 0x0a00) { + } else if (opc =3D=3D 0x0a) { /* supervisor call */ - HELPER_LOG("%s: svc %ld via execute\n", __func__, (insn | v1) & 0x= ff); - env->psw.addr =3D ret - 4; - env->int_svc_code =3D (insn | v1) & 0xff; - env->int_svc_ilen =3D 4; + env->int_svc_code =3D extract64(insn, 48, 8); + env->int_svc_ilen =3D ilen; helper_exception(env, EXCP_SVC); - } else if ((insn & 0xff00) =3D=3D 0xbf00) { - uint32_t insn2, r1, r3, b2, d2; - - insn2 =3D cpu_ldl_code(env, addr + 2); - r1 =3D (insn2 >> 20) & 0xf; - r3 =3D (insn2 >> 16) & 0xf; - b2 =3D (insn2 >> 12) & 0xf; - d2 =3D insn2 & 0xfff; - cc =3D helper_icm(env, r1, get_address(env, 0, b2, d2), r3); - } else { - abort: - cpu_abort(CPU(cpu), - "EXECUTE on instruction prefix 0x%x not implemented\n", - insn); + return; + } else if (opc =3D=3D 0xbf) { + uint32_t r1, r3, b2, d2; + + r1 =3D extract64(insn, 52, 4); + r3 =3D extract64(insn, 48, 4); + b2 =3D extract64(insn, 44, 4); + d2 =3D extract64(insn, 32, 12); + env->cc_op =3D helper_icm(env, r1, get_address(env, 0, b2, d2), r3= ); + return; } - return cc; + + cpu_abort(CPU(cpu), "EXECUTE on instruction prefix 0x%x not implemente= d\n", + opc); } diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 422bbf1..921a842 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -2159,14 +2159,14 @@ static ExitStatus op_ex(DisasContext *s, DisasOps *= o) MVC inside of memcpy, which needs a helper call anyway. So perhaps this doesn't bear thinking about any further. */ =20 - TCGv_i64 tmp; + TCGv_i32 ilen; =20 update_psw_addr(s); gen_op_calc_cc(s); =20 - tmp =3D tcg_const_i64(s->next_pc); - gen_helper_ex(cc_op, cpu_env, cc_op, o->in1, o->in2, tmp); - tcg_temp_free_i64(tmp); + ilen =3D tcg_const_i32(s->next_pc - s->pc); + gen_helper_ex(cpu_env, ilen, o->in1, o->in2); + tcg_temp_free_i32(ilen); =20 return NO_EXIT; } --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495654964179852.3237391073333; Wed, 24 May 2017 12:42:44 -0700 (PDT) Received: from localhost ([::1]:56537 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDcB8-0003NT-QE for importer@patchew.org; Wed, 24 May 2017 15:42:42 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45567) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsb-00029K-JT for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsa-0001mD-KP for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:33 -0400 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:35874) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsa-0001m1-G3 for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:32 -0400 Received: by mail-qk0-x241.google.com with SMTP id y128so27718419qka.3 for ; Wed, 24 May 2017 12:23:32 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:31 -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=NeZHKaZwZC8OE9Fa/0Ke3yGKMwGnlcRG1JNrjiN0o9g=; b=lRf9FHBl68wyOmqTp0h6mXrZYM7BL6Z+Y58G7aORjAjw5VqyxGpC2O5h/JfPHmzKju 8qouQLUdRB3Irj28gqRR+xeAmkR8tZ5NMkR8zTsZlrteXDCS1CGkzv4AgiE35bA3CnFM AG2o9cdJ4Gu/jo+ktLyrJRuT5hZallf9XIkv5l9gzktk1zl6fce5vEh56d6ATIxMrjU7 Z7Mo6D/nQO5EX52LoNnLSWHx9w1LUUXPG2OLqxw/OeGwcJ7CX4QO9Un9hjpBkvdzqneC VEMiVd+ycYWLoO10JPfZRBOyzOmG+xyso5Pdfbsi6hu1V8Ncaj1LzKzdmm20qssgtWhd rq2A== 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=NeZHKaZwZC8OE9Fa/0Ke3yGKMwGnlcRG1JNrjiN0o9g=; b=DaHf3yHxhb6CPkKTdE/7LyMNPyzCdcenocSoBpK3efyE5SJSgi8AtXfABBpHNaZV6f 3cUm2aHabQ5jKMSmFZo0JBK0lSrCcQ9O7NUUG825oL5QsJ2fSmXgE/SKvjSQpchesf8S dNKa9aF/siMSpQujiZ42WXe5rpvksA72snjaNSyArdE0+scKjTVCN7lAl+jyvvkonihi l4MfKUEXkRRLa/LWzBHagPOPsbOFb1LLMpxrQxZK+8wWMXetUD2HKd/Xc5nNutl1n8YP oKNnogZ5g/iPo0ZPzRIBFHsIP02CmYEQDqbcYTHIY1HEz3Z8in2vKYUstDVMGw2O3k1l dgAw== X-Gm-Message-State: AODbwcAKVQCI+EB22/ZwWhFAqT4iSHqnzT4dSvFAOSyLosbjNRkoCId3 Tu2cHZs9eEMIDg== X-Received: by 10.55.16.41 with SMTP id a41mr32912477qkh.131.1495653812065; Wed, 24 May 2017 12:23:32 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:44 -0700 Message-Id: <20170524192246.15905-32-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v2 31/33] target/s390x: Fix EXECUTE with R1==0 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The PoO specifies that when R1=3D=3D0, no ORing into the insn loaded from storage takes place. Load a zero for this case. Signed-off-by: Richard Henderson Reviewed-by: Aurelien Jarno --- target/s390x/insn-data.def | 4 ++-- target/s390x/translate.c | 14 +++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/target/s390x/insn-data.def b/target/s390x/insn-data.def index cac0f51..3c3541c 100644 --- a/target/s390x/insn-data.def +++ b/target/s390x/insn-data.def @@ -327,9 +327,9 @@ C(0xeb57, XIY, SIY, LD, m1_8u, i2_8u, new, m1_8, xor, nz64) =20 /* EXECUTE */ - C(0x4400, EX, RX_a, Z, r1_o, a2, 0, 0, ex, 0) + C(0x4400, EX, RX_a, Z, 0, a2, 0, 0, ex, 0) /* EXECUTE RELATIVE LONG */ - C(0xc600, EXRL, RIL_b, EE, r1_o, ri2, 0, 0, ex, 0) + C(0xc600, EXRL, RIL_b, EE, 0, ri2, 0, 0, ex, 0) =20 /* EXTRACT ACCESS */ C(0xb24f, EAR, RRE, Z, 0, 0, new, r1_32, ear, 0) diff --git a/target/s390x/translate.c b/target/s390x/translate.c index 921a842..b7b4843 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -2159,15 +2159,27 @@ static ExitStatus op_ex(DisasContext *s, DisasOps *= o) MVC inside of memcpy, which needs a helper call anyway. So perhaps this doesn't bear thinking about any further. */ =20 + int r1 =3D get_field(s->fields, r1); TCGv_i32 ilen; + TCGv_i64 v1; =20 update_psw_addr(s); gen_op_calc_cc(s); =20 + if (r1 =3D=3D 0) { + v1 =3D tcg_const_i64(0); + } else { + v1 =3D regs[r1]; + } + ilen =3D tcg_const_i32(s->next_pc - s->pc); - gen_helper_ex(cpu_env, ilen, o->in1, o->in2); + gen_helper_ex(cpu_env, ilen, v1, o->in2); tcg_temp_free_i32(ilen); =20 + if (r1 =3D=3D 0) { + tcg_temp_free_i64(v1); + } + return NO_EXIT; } =20 --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 149565544437737.550314617886784; Wed, 24 May 2017 12:50:44 -0700 (PDT) Received: from localhost ([::1]:56590 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDcIs-0002CL-H8 for importer@patchew.org; Wed, 24 May 2017 15:50:42 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45590) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsd-0002B8-Dn for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsc-0001mi-4q for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:35 -0400 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:35601) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsb-0001mb-W4 for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:34 -0400 Received: by mail-qk0-x241.google.com with SMTP id k74so27742833qke.2 for ; Wed, 24 May 2017 12:23:33 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:32 -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=J9q36ID8TEFNB2ygsN2aZF5IEiaNGMI6QQN0i7EZ1ss=; b=Kd2mypWPsYepJKdhCZWB/sFvExp1GRZgLZuFM5meabzR/CLr2cKdD4n9PrJIo1MmJe snGUMYNvjQnUbT8nic4aTaBC5OpMQ2ePO8chMLkAYcsgDJsUFmFX257S5y7glnT85KiX 26B43I40lbXuQISPi9VQ+2+k1XMM+kPbYrpFOzcj5x3ThpvESP2x2ZTXmv8hkm2MRsIZ /MpI301lUM2cfhv8KadmxfzFDrQl0e3vh8HZB45Ui5KTM1fCevL/ziN8b1WCXukp8Nih DCjMrtvw++N7EFustFKG7jOOCqB78NY80zsYKkOiHUS5OA29cOgkDteeh6qNj6pEG8C5 F+7g== 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=J9q36ID8TEFNB2ygsN2aZF5IEiaNGMI6QQN0i7EZ1ss=; b=GIzxFzTsCAKSu82ki8kOTRQmra8Nz2VxbL3d0Iw4yosxLJiKge8Cr4CHrHHaOpASd1 /92YpWbJPsJ3sTtPPfKj4xB/dPtH7uIexaMOyd+7+2kbGsjHLtKzH1f7GD/0SGVOZ4UL rlZNms1QyQvMtHxamF9miKW63gt4vy0H8s/HCefJCFu+3nijYEo7BsHkkNlf9ent3xae he1aYGIAK/9DzKCufPw71WRPXlePr7SoXdfbzMnKHZ2UBfob2yC3nAjU4V50Pf7maTwl IEEPbc/NVCs4pe3zMYjrKheYAP+sHffj+qT/GIJnqIGztyVv6Uo1D1UinZnAUtw8mRW8 b/DA== X-Gm-Message-State: AODbwcArgtUq2gMQ24oq1zZxd5PRfCmFzZYPzIv6Z+fbs0RBXfLEKXa6 cfWNw4mGxENtmFajNo0= X-Received: by 10.55.209.83 with SMTP id s80mr36053813qki.138.1495653813291; Wed, 24 May 2017 12:23:33 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:45 -0700 Message-Id: <20170524192246.15905-33-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v2 32/33] target/s390x: Use atomic operations for COMPARE SWAP PURGE 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Also provide the cross-cpu tlb flushing required by the PoO. Signed-off-by: Richard Henderson Reviewed-by: Aurelien Jarno --- target/s390x/helper.h | 2 +- target/s390x/insn-data.def | 2 +- target/s390x/mem_helper.c | 32 ++++++++------------------------ target/s390x/translate.c | 42 ++++++++++++++++++++++++++++++++++++++---- 4 files changed, 48 insertions(+), 30 deletions(-) diff --git a/target/s390x/helper.h b/target/s390x/helper.h index 3819409..cc451c7 100644 --- a/target/s390x/helper.h +++ b/target/s390x/helper.h @@ -107,13 +107,13 @@ DEF_HELPER_FLAGS_2(tprot, TCG_CALL_NO_RWG, i32, i64, = i64) DEF_HELPER_FLAGS_2(iske, TCG_CALL_NO_RWG_SE, i64, env, i64) DEF_HELPER_FLAGS_3(sske, TCG_CALL_NO_RWG, void, env, i64, i64) DEF_HELPER_FLAGS_2(rrbe, TCG_CALL_NO_RWG, i32, env, i64) -DEF_HELPER_3(csp, i32, env, i32, i64) DEF_HELPER_4(mvcs, i32, env, i64, i64, i64) DEF_HELPER_4(mvcp, i32, env, i64, i64, i64) DEF_HELPER_4(sigp, i32, env, i64, i32, i64) DEF_HELPER_FLAGS_2(sacf, TCG_CALL_NO_WG, void, env, i64) DEF_HELPER_FLAGS_3(ipte, TCG_CALL_NO_RWG, void, env, i64, i64) DEF_HELPER_FLAGS_1(ptlb, TCG_CALL_NO_RWG, void, env) +DEF_HELPER_FLAGS_1(purge, TCG_CALL_NO_RWG, void, env) DEF_HELPER_2(lra, i64, env, i64) DEF_HELPER_FLAGS_2(lura, TCG_CALL_NO_WG, i64, env, i64) DEF_HELPER_FLAGS_2(lurag, TCG_CALL_NO_WG, i64, env, i64) diff --git a/target/s390x/insn-data.def b/target/s390x/insn-data.def index 3c3541c..4c91f30 100644 --- a/target/s390x/insn-data.def +++ b/target/s390x/insn-data.def @@ -837,7 +837,7 @@ =20 #ifndef CONFIG_USER_ONLY /* COMPARE AND SWAP AND PURGE */ - C(0xb250, CSP, RRE, Z, 0, ra2, 0, 0, csp, 0) + D(0xb250, CSP, RRE, Z, r1_32u, ra2, r1_P, 0, csp, 0, MO_TEUL) /* DIAGNOSE (KVM hypercall) */ C(0x8300, DIAG, RSI, Z, 0, 0, 0, 0, diag, 0) /* INSERT STORAGE KEY EXTENDED */ diff --git a/target/s390x/mem_helper.c b/target/s390x/mem_helper.c index fa03129..4b96c27 100644 --- a/target/s390x/mem_helper.c +++ b/target/s390x/mem_helper.c @@ -1056,30 +1056,6 @@ uint32_t HELPER(rrbe)(CPUS390XState *env, uint64_t r= 2) return re >> 1; } =20 -/* compare and swap and purge */ -uint32_t HELPER(csp)(CPUS390XState *env, uint32_t r1, uint64_t r2) -{ - S390CPU *cpu =3D s390_env_get_cpu(env); - uint32_t cc; - uint32_t o1 =3D env->regs[r1]; - uint64_t a2 =3D r2 & ~3ULL; - uint32_t o2 =3D cpu_ldl_data(env, a2); - - if (o1 =3D=3D o2) { - cpu_stl_data(env, a2, env->regs[(r1 + 1) & 15]); - if (r2 & 0x3) { - /* flush TLB / ALB */ - tlb_flush(CPU(cpu)); - } - cc =3D 0; - } else { - env->regs[r1] =3D (env->regs[r1] & 0xffffffff00000000ULL) | o2; - cc =3D 1; - } - - return cc; -} - uint32_t HELPER(mvcs)(CPUS390XState *env, uint64_t l, uint64_t a1, uint64_= t a2) { uintptr_t ra =3D GETPC(); @@ -1161,6 +1137,14 @@ void HELPER(ptlb)(CPUS390XState *env) tlb_flush(CPU(cpu)); } =20 +/* flush global tlb */ +void HELPER(purge)(CPUS390XState *env) +{ + S390CPU *cpu =3D s390_env_get_cpu(env); + + tlb_flush_all_cpus_synced(CPU(cpu)); +} + /* load using real address */ uint64_t HELPER(lura)(CPUS390XState *env, uint64_t addr) { diff --git a/target/s390x/translate.c b/target/s390x/translate.c index b7b4843..a3fb324 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -2001,11 +2001,45 @@ static ExitStatus op_cdsg(DisasContext *s, DisasOps= *o) #ifndef CONFIG_USER_ONLY static ExitStatus op_csp(DisasContext *s, DisasOps *o) { - TCGv_i32 r1 =3D tcg_const_i32(get_field(s->fields, r1)); + TCGMemOp mop =3D s->insn->data; + TCGv_i64 addr, old, cc; + TCGLabel *lab =3D gen_new_label(); + + /* Note that in1 =3D R1 (zero-extended expected value), + out =3D R1 (original reg), out2 =3D R1+1 (new value). */ + check_privileged(s); - gen_helper_csp(cc_op, cpu_env, r1, o->in2); - tcg_temp_free_i32(r1); - set_cc_static(s); + addr =3D tcg_temp_new_i64(); + old =3D tcg_temp_new_i64(); + tcg_gen_andi_i64(addr, o->in2, -1ULL << (mop & MO_SIZE)); + tcg_gen_atomic_cmpxchg_i64(old, addr, o->in1, o->out2, + get_mem_index(s), mop | MO_ALIGN); + tcg_temp_free_i64(addr); + + /* Are the memory and expected values (un)equal? */ + cc =3D tcg_temp_new_i64(); + tcg_gen_setcond_i64(TCG_COND_NE, cc, o->in1, old); + tcg_gen_extrl_i64_i32(cc_op, cc); + + /* Write back the output now, so that it happens before the + following branch, so that we don't need local temps. */ + if ((mop & MO_SIZE) =3D=3D MO_32) { + tcg_gen_deposit_i64(o->out, o->out, old, 0, 32); + } else { + tcg_gen_mov_i64(o->out, old); + } + tcg_temp_free_i64(old); + + /* If the comparison was equal, and the LSB of R2 was set, + then we need to flush the TLB (for all cpus). */ + tcg_gen_xori_i64(cc, cc, 1); + tcg_gen_and_i64(cc, cc, o->in2); + tcg_gen_brcondi_i64(TCG_COND_EQ, cc, 0, lab); + tcg_temp_free_i64(cc); + + gen_helper_purge(cpu_env); + gen_set_label(lab); + return NO_EXIT; } #endif --=20 2.9.4 From nobody Sun Apr 28 07:28:01 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1495655105641996.68864429682; Wed, 24 May 2017 12:45:05 -0700 (PDT) Received: from localhost ([::1]:56549 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDcDP-0005uU-UK for importer@patchew.org; Wed, 24 May 2017 15:45:03 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45600) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDbsd-0002BU-RU for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDbsd-0001nA-3q for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:35 -0400 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:35440) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dDbsc-0001mw-Vy for qemu-devel@nongnu.org; Wed, 24 May 2017 15:23:35 -0400 Received: by mail-qt0-x241.google.com with SMTP id r58so27542842qtb.2 for ; Wed, 24 May 2017 12:23:34 -0700 (PDT) Received: from bigtime.twiddle.net.com ([2602:47:d954:1500:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id b23sm3296240qkb.31.2017.05.24.12.23.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 May 2017 12:23:34 -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=LW7wf/PbSSJuoZ6BXfnSwxLR3C3OZ9TDimJAQEK/65k=; b=mV47jNplwxF521K6Ci2EuxelP5umysUnHn7Rm6kngnIbWmoxRke46vuoeW6gfzUQb9 0VpWp6emqGWnBRf6qKxNM5MnPoa13o+dYSQFBiFlip3X+2yPKtelvoIW+9jFxTx65JX6 Fzg94G0IoFiVaCiuTJhCWiN0DDG3VMVWoM1+HoCYCVULmV4YHUvPqBbBOobJ6NhDw08a tUy1B9lc/dW9flWiFgEe2Cr35oxTD//98eUmV1suDxGyYBR92pYsi2kgpKQlq1vyyVzl SC1lx30jWu4JmdMaNzbzZC9oMapmH2enPZivRlF+McgO7BgpYwJa1UqqyD/mfS/DQbo2 Z5/A== 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=LW7wf/PbSSJuoZ6BXfnSwxLR3C3OZ9TDimJAQEK/65k=; b=jfeRGoU2tmRquthJChnzRHsx/idQDcYG2/spAvdlDHrMwhm4ijew318ootU4nCEzKY SqXVf5KQezWMxb1bYycxFTYHArRt9ADvWOaQKZGN0TU47DDmxRJsBtVVgGF7SfCdEfEh f2UtZFQRPNpZF74MfJeG8DOsNcvtz0RiV7n4n5GF0YQpiNLf6CwvzzEQCCptN9EmrVm0 7vi2bSxrsBIGYfPjKXbd6909Y/g9hoi6ZICv2rEuR80pLk70sLzyJQohskTmFFM3Uaf3 yYEKmBIm4hcGfXg8jL6LRv85vGGc1i3jNsei53fLWKzysotXDkMwwVIh5RNqPamxu+Mz BE0w== X-Gm-Message-State: AODbwcB4YXi+Ffhm0zBsfFsyKjuJ0dsNeXRl1TSEsyLvikIMIw2yyWFq cvoatsE9ZSbzQw== X-Received: by 10.237.61.35 with SMTP id g32mr38859237qtf.60.1495653814544; Wed, 24 May 2017 12:23:34 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Wed, 24 May 2017 12:22:46 -0700 Message-Id: <20170524192246.15905-34-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170524192246.15905-1-rth@twiddle.net> References: <20170524192246.15905-1-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::241 Subject: [Qemu-devel] [PATCH v2 33/33] target/s390x: Implement CSPG 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: thuth@redhat.com, aurelien@aurel32.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Aurelien Jarno --- target/s390x/insn-data.def | 1 + target/s390x/translate.c | 1 + 2 files changed, 2 insertions(+) diff --git a/target/s390x/insn-data.def b/target/s390x/insn-data.def index 4c91f30..f818437 100644 --- a/target/s390x/insn-data.def +++ b/target/s390x/insn-data.def @@ -838,6 +838,7 @@ #ifndef CONFIG_USER_ONLY /* COMPARE AND SWAP AND PURGE */ D(0xb250, CSP, RRE, Z, r1_32u, ra2, r1_P, 0, csp, 0, MO_TEUL) + D(0xb98a, CSPG, RRE, DAT_ENH, r1_o, ra2, r1_P, 0, csp, 0, MO_TEQ) /* DIAGNOSE (KVM hypercall) */ C(0x8300, DIAG, RSI, Z, 0, 0, 0, 0, diag, 0) /* INSERT STORAGE KEY EXTENDED */ diff --git a/target/s390x/translate.c b/target/s390x/translate.c index a3fb324..4bd16d9 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -1195,6 +1195,7 @@ typedef enum DisasFacility { FAC_SFLE, /* store facility list extended */ FAC_ILA, /* interlocked access facility 1 */ FAC_LPP, /* load-program-parameter */ + FAC_DAT_ENH, /* DAT-enhancement */ } DisasFacility; =20 struct DisasInsn { --=20 2.9.4