From patchwork Fri Jun 23 16:22:38 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 9806981 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E8DAF600C5 for ; Fri, 23 Jun 2017 16:49:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D789128740 for ; Fri, 23 Jun 2017 16:49:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CA4F628797; Fri, 23 Jun 2017 16:49:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 283F128740 for ; Fri, 23 Jun 2017 16:49:26 +0000 (UTC) Received: from localhost ([::1]:36364 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dORlt-0001Hd-E8 for patchwork-qemu-devel@patchwork.kernel.org; Fri, 23 Jun 2017 12:49:25 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60284) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dORMN-0001gp-S7 for qemu-devel@nongnu.org; Fri, 23 Jun 2017 12:23:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dORMM-0007wL-Ll for qemu-devel@nongnu.org; Fri, 23 Jun 2017 12:23:03 -0400 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:34571) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dORMM-0007w8-Gx for qemu-devel@nongnu.org; Fri, 23 Jun 2017 12:23:02 -0400 Received: by mail-qk0-x244.google.com with SMTP id 91so969192qkq.1 for ; Fri, 23 Jun 2017 09: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 :mime-version:content-transfer-encoding; bh=En3SxH67LR4xqNGwZ9NBlQzoEL/92zmA1YwQ/dKxnX0=; b=B8yAK0yH/IFIQ8eHEZz1P1mWc8nyoWurXZQ8Qc4CbIHHmUl3gbF4Ci69xk63zV7qPs K+CnOz6ngOxIDMscZ68iRJ/mjJlQHC/VYRQolP3tXLgUtZ7suyTNxFpah4DdGQxXSWkr 6MgSL28lOBeycH9xMs+HCFro5868PgcMvE/vy6YHj+TLRVjHzrl1NleoRnb8Yl7A5UeJ pfJwsqGKkR849St3XcSOTCkiezcJnTk7z83jITY094Y0ROtzb7QWBBg6Hn++SfRxJaso P6Hl86BKJrqPsOJpN27CI2A2Ho7jdK8kYFwhh5KJz577hF+GuMQYyN9shjGLdJQrBpLH gkcA== 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:mime-version:content-transfer-encoding; bh=En3SxH67LR4xqNGwZ9NBlQzoEL/92zmA1YwQ/dKxnX0=; b=YkobCfPomsluo8g1+u2Dne7v7TY4F0lvu4eHycEGmzXZZZrcapio2J67YSxp7AUHTD 9PojR+mV1a72P5atEjYDFBCelS67wlBzGobeDSs81d1GFQRpbqSkWGj52H4CeEkFairT 7zd/cqHWvNQMiOxfWJ8aizFsExMxV/ePzIiCRWeFNND0Og6TKkgpxRe82RTgMe+xPEEb ecSJpv9PtK+6oc+/vwhF78MQg6B6FdXXZpzGYSAwDmODgjIAr1rCNBex+/q/ab3przcR VqtDrp+1/Rd4UyqchcjkUuDYaSl7X2jgIAWp/lV9TTcCLxiX5uxwLofuOZTsCandh/1q Jhlg== X-Gm-Message-State: AKS2vOySZMepaF+zTjaw4rhMg0rL2kWPRXjCTtJlJSZOksyM7d8hbiMe VM7pHvNCnyzFZSRqGc0= X-Received: by 10.55.50.206 with SMTP id y197mr10374544qky.153.1498234981866; Fri, 23 Jun 2017 09:23:01 -0700 (PDT) Received: from bigtime.twiddle.net.com (97-113-165-157.tukw.qwest.net. [97.113.165.157]) by smtp.gmail.com with ESMTPSA id p52sm3743567qtb.69.2017.06.23.09.23.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 23 Jun 2017 09:23:01 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Fri, 23 Jun 2017 09:22:38 -0700 Message-Id: <20170623162241.8964-13-rth@twiddle.net> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20170623162241.8964-1-rth@twiddle.net> References: <20170623162241.8964-1-rth@twiddle.net> MIME-Version: 1.0 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] [PULL 12/15] target/s390x: Clean up TB flag bits X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Most of the PSW bits that were being copied into TB->flags are not relevant to translation. Removing those that are unnecessary reduces the amount of translation required. Reviewed-by: Aurelien Jarno Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- target/s390x/cpu.h | 24 +++++++++--------------- target/s390x/translate.c | 16 ++++++++-------- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h index 5b94ace..9faca04 100644 --- a/target/s390x/cpu.h +++ b/target/s390x/cpu.h @@ -346,19 +346,14 @@ void s390x_cpu_debug_excp_handler(CPUState *cs); /* tb flags */ -#define FLAG_MASK_PER (PSW_MASK_PER >> 32) -#define FLAG_MASK_DAT (PSW_MASK_DAT >> 32) -#define FLAG_MASK_IO (PSW_MASK_IO >> 32) -#define FLAG_MASK_EXT (PSW_MASK_EXT >> 32) -#define FLAG_MASK_KEY (PSW_MASK_KEY >> 32) -#define FLAG_MASK_MCHECK (PSW_MASK_MCHECK >> 32) -#define FLAG_MASK_WAIT (PSW_MASK_WAIT >> 32) -#define FLAG_MASK_PSTATE (PSW_MASK_PSTATE >> 32) -#define FLAG_MASK_ASC (PSW_MASK_ASC >> 32) -#define FLAG_MASK_CC (PSW_MASK_CC >> 32) -#define FLAG_MASK_PM (PSW_MASK_PM >> 32) -#define FLAG_MASK_64 (PSW_MASK_64 >> 32) -#define FLAG_MASK_32 0x00001000 +#define FLAG_MASK_PSW_SHIFT 31 +#define FLAG_MASK_PER (PSW_MASK_PER >> FLAG_MASK_PSW_SHIFT) +#define FLAG_MASK_PSTATE (PSW_MASK_PSTATE >> FLAG_MASK_PSW_SHIFT) +#define FLAG_MASK_ASC (PSW_MASK_ASC >> FLAG_MASK_PSW_SHIFT) +#define FLAG_MASK_64 (PSW_MASK_64 >> FLAG_MASK_PSW_SHIFT) +#define FLAG_MASK_32 (PSW_MASK_32 >> FLAG_MASK_PSW_SHIFT) +#define FLAG_MASK_PSW (FLAG_MASK_PER | FLAG_MASK_PSTATE \ + | FLAG_MASK_ASC | FLAG_MASK_64 | FLAG_MASK_32) /* Control register 0 bits */ #define CR0_LOWPROT 0x0000000010000000ULL @@ -416,8 +411,7 @@ static inline void cpu_get_tb_cpu_state(CPUS390XState* env, target_ulong *pc, { *pc = env->psw.addr; *cs_base = env->ex_value; - *flags = ((env->psw.mask >> 32) & ~FLAG_MASK_CC) | - ((env->psw.mask & PSW_MASK_32) ? FLAG_MASK_32 : 0); + *flags = (env->psw.mask >> FLAG_MASK_PSW_SHIFT) & FLAG_MASK_PSW; } #define MAX_ILEN 6 diff --git a/target/s390x/translate.c b/target/s390x/translate.c index a3414c0..df3fefa 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -323,11 +323,11 @@ static inline uint64_t ld_code4(CPUS390XState *env, uint64_t pc) static int get_mem_index(DisasContext *s) { switch (s->tb->flags & FLAG_MASK_ASC) { - case PSW_ASC_PRIMARY >> 32: + case PSW_ASC_PRIMARY >> FLAG_MASK_PSW_SHIFT: return 0; - case PSW_ASC_SECONDARY >> 32: + case PSW_ASC_SECONDARY >> FLAG_MASK_PSW_SHIFT: return 1; - case PSW_ASC_HOME >> 32: + case PSW_ASC_HOME >> FLAG_MASK_PSW_SHIFT: return 2; default: tcg_abort(); @@ -387,7 +387,7 @@ static inline void gen_trap(DisasContext *s) #ifndef CONFIG_USER_ONLY static void check_privileged(DisasContext *s) { - if (s->tb->flags & (PSW_MASK_PSTATE >> 32)) { + if (s->tb->flags & FLAG_MASK_PSTATE) { gen_program_exception(s, PGM_PRIVILEGED); } } @@ -2932,20 +2932,20 @@ static ExitStatus op_mov2e(DisasContext *s, DisasOps *o) o->g_in2 = false; switch (s->tb->flags & FLAG_MASK_ASC) { - case PSW_ASC_PRIMARY >> 32: + case PSW_ASC_PRIMARY >> FLAG_MASK_PSW_SHIFT: tcg_gen_movi_i64(ar1, 0); break; - case PSW_ASC_ACCREG >> 32: + case PSW_ASC_ACCREG >> FLAG_MASK_PSW_SHIFT: tcg_gen_movi_i64(ar1, 1); break; - case PSW_ASC_SECONDARY >> 32: + case PSW_ASC_SECONDARY >> FLAG_MASK_PSW_SHIFT: if (b2) { tcg_gen_ld32u_i64(ar1, cpu_env, offsetof(CPUS390XState, aregs[b2])); } else { tcg_gen_movi_i64(ar1, 0); } break; - case PSW_ASC_HOME >> 32: + case PSW_ASC_HOME >> FLAG_MASK_PSW_SHIFT: tcg_gen_movi_i64(ar1, 2); break; }