From nobody Thu Nov 13 12:01:29 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1579821939; cv=none; d=zohomail.com; s=zohoarc; b=ZiDJLqYyvfVndoNjQDqSNrvsiCsqdTaBol3TLoDWWRf/CI8bHY8q4QtC7hc5takVf7VnBk4IEgldxSSsjSLpC9VqQFvyb0AwnGfZR+WQvbFZ3O/rXVNlqZ7nvwsDkjKCyrzE1UH+IFJWdOr1v1AyCsp47sa/djwINb9uqe2Qw7c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1579821939; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=cQhgygH4bfZwxR3NyGM41BM8azlcJTXClsEEe4Z5yDA=; b=k1ztqfD2A/4qXYh0Ywg7XlfYRDm7lep6Gdzqkdc7EG54OcJKvQUiQ/UdIxNhg3/ucVd4xjuMocdZJoExyUMEQdoEZn6xY2fg/66pJXourBQDUbGZTgEoW+TwOtU3YVcMvwbA1YyJKquGrEOOtAjP6Nnjq3kGy+PUcFAQB2o2j3o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1579821939166843.065094004211; Thu, 23 Jan 2020 15:25:39 -0800 (PST) Received: from localhost ([::1]:35372 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iulr0-0004Ci-3z for importer@patchew.org; Thu, 23 Jan 2020 18:25:38 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52339) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iuloO-0008LW-2m for qemu-devel@nongnu.org; Thu, 23 Jan 2020 18:22:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iuloM-0007al-Rk for qemu-devel@nongnu.org; Thu, 23 Jan 2020 18:22:56 -0500 Received: from mail-pl1-x644.google.com ([2607:f8b0:4864:20::644]:39283) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iuloM-0007aG-M4 for qemu-devel@nongnu.org; Thu, 23 Jan 2020 18:22:54 -0500 Received: by mail-pl1-x644.google.com with SMTP id g6so2024973plp.6 for ; Thu, 23 Jan 2020 15:22:54 -0800 (PST) Received: from localhost.localdomain (rrcs-173-198-77-92.west.biz.rr.com. [173.198.77.92]) by smtp.gmail.com with ESMTPSA id z5sm4136008pfq.3.2020.01.23.15.22.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jan 2020 15:22:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cQhgygH4bfZwxR3NyGM41BM8azlcJTXClsEEe4Z5yDA=; b=svIfdfGxzZjrQc9r73XIU1tmARm1Kiahm3975LpZai4h7EIG/AORsfvamIxLtgedly RcTI2q1Da4imcJxzruXBENPeugIBkiljE/9JZFCWM8b2pDmVjfiiI7FQoGK3jCOLVMj1 8XSM6MNBUWF0ZDwclQezhS4tpJvSdd4XDDLmSxhqWg0SOarRpW/zbiNfE4d0VrkUQ1ww 6e/d07gYHBV7k8NiVaAhqXSGAoLwLcY3i1F0fijwEC/gnhbHV8jcuXoqACPM8lmaXGmn 0opnsvr+pmurPiOGuYH3y5A8GOgMRpzyx9RkYp2+vih6s9CzDicjb4khGIrDLYXl+phU byfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=cQhgygH4bfZwxR3NyGM41BM8azlcJTXClsEEe4Z5yDA=; b=PZDpAq7HxOFRkisdWpswR/+KLvDf3nWIcaOwLwqDfXGD/m33GlZ+nu1guIYSqwot9Z h4xFqLA6fXTMC11RqyKAEHJ8yHEGfEzQpr+HoK7yHs82Bx2jl//vUHoEyRsLzoAGHUHK c6Au/whGuSrQ9v8T87CMkm2619CbR8Rxw6QaNd2YjOv+kglKlvWpERT5OjqtHfkX3lp3 1htdgsvbOR9Ze1ciXAZHRugKtVM4XCq6GeBBaXzUa6sdV1apyPdEzilWp1FBkm1vZQyc /Pkcyy8oO9/uDYwFsOVwjbDQhrYGb2HoLzPOIiM1rHhkbxNW4Yk06tNLLHcMfEiERMig fP3A== X-Gm-Message-State: APjAAAXAfP93xztbM0ME8xSkhI7n8fMz8BZyrzY2STtKlM52LK6obegB 7pErgICyAAzCszCO+a7pXCb3nRcoxkQ= X-Google-Smtp-Source: APXvYqx988qaj/4AkCChERIJL+pz0xMcZpGT5gqLzhkKBuZZeGzYyYwowsbY6j65Ssk2zp8Im/boXw== X-Received: by 2002:a17:90a:d801:: with SMTP id a1mr135700pjv.34.1579821773293; Thu, 23 Jan 2020 15:22:53 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 1/5] target/s390x: Move struct DisasFields definition earlier Date: Thu, 23 Jan 2020 13:22:44 -1000 Message-Id: <20200123232248.1800-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200123232248.1800-1-richard.henderson@linaro.org> References: <20200123232248.1800-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::644 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: thuth@redhat.com, cohuck@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Type: text/plain; charset="utf-8" We will want to include the struct in DisasContext. Signed-off-by: Richard Henderson Reviewed-by: Thomas Huth --- target/s390x/translate.c | 164 ++++++++++++++++++++------------------- 1 file changed, 83 insertions(+), 81 deletions(-) diff --git a/target/s390x/translate.c b/target/s390x/translate.c index b764ec3140..7ef228843a 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -53,6 +53,89 @@ typedef struct DisasContext DisasContext; typedef struct DisasInsn DisasInsn; typedef struct DisasFields DisasFields; =20 +/* + * Define a structure to hold the decoded fields. We'll store each inside + * an array indexed by an enum. In order to conserve memory, we'll arrange + * for fields that do not exist at the same time to overlap, thus the "C" + * for compact. For checking purposes there is an "O" for original index + * as well that will be applied to availability bitmaps. + */ + +enum DisasFieldIndexO { + FLD_O_r1, + FLD_O_r2, + FLD_O_r3, + FLD_O_m1, + FLD_O_m3, + FLD_O_m4, + FLD_O_m5, + FLD_O_m6, + FLD_O_b1, + FLD_O_b2, + FLD_O_b4, + FLD_O_d1, + FLD_O_d2, + FLD_O_d4, + FLD_O_x2, + FLD_O_l1, + FLD_O_l2, + FLD_O_i1, + FLD_O_i2, + FLD_O_i3, + FLD_O_i4, + FLD_O_i5, + FLD_O_v1, + FLD_O_v2, + FLD_O_v3, + FLD_O_v4, +}; + +enum DisasFieldIndexC { + FLD_C_r1 =3D 0, + FLD_C_m1 =3D 0, + FLD_C_b1 =3D 0, + FLD_C_i1 =3D 0, + FLD_C_v1 =3D 0, + + FLD_C_r2 =3D 1, + FLD_C_b2 =3D 1, + FLD_C_i2 =3D 1, + + FLD_C_r3 =3D 2, + FLD_C_m3 =3D 2, + FLD_C_i3 =3D 2, + FLD_C_v3 =3D 2, + + FLD_C_m4 =3D 3, + FLD_C_b4 =3D 3, + FLD_C_i4 =3D 3, + FLD_C_l1 =3D 3, + FLD_C_v4 =3D 3, + + FLD_C_i5 =3D 4, + FLD_C_d1 =3D 4, + FLD_C_m5 =3D 4, + + FLD_C_d2 =3D 5, + FLD_C_m6 =3D 5, + + FLD_C_d4 =3D 6, + FLD_C_x2 =3D 6, + FLD_C_l2 =3D 6, + FLD_C_v2 =3D 6, + + NUM_C_FIELD =3D 7 +}; + +struct DisasFields { + uint64_t raw_insn; + unsigned op:8; + unsigned op2:8; + unsigned presentC:16; + unsigned int presentO; + int c[NUM_C_FIELD]; +}; + struct DisasContext { DisasContextBase base; const DisasInsn *insn; @@ -1005,87 +1088,6 @@ typedef enum { #undef F5 #undef F6 =20 -/* Define a structure to hold the decoded fields. We'll store each inside - an array indexed by an enum. In order to conserve memory, we'll arrange - for fields that do not exist at the same time to overlap, thus the "C" - for compact. For checking purposes there is an "O" for original index - as well that will be applied to availability bitmaps. */ - -enum DisasFieldIndexO { - FLD_O_r1, - FLD_O_r2, - FLD_O_r3, - FLD_O_m1, - FLD_O_m3, - FLD_O_m4, - FLD_O_m5, - FLD_O_m6, - FLD_O_b1, - FLD_O_b2, - FLD_O_b4, - FLD_O_d1, - FLD_O_d2, - FLD_O_d4, - FLD_O_x2, - FLD_O_l1, - FLD_O_l2, - FLD_O_i1, - FLD_O_i2, - FLD_O_i3, - FLD_O_i4, - FLD_O_i5, - FLD_O_v1, - FLD_O_v2, - FLD_O_v3, - FLD_O_v4, -}; - -enum DisasFieldIndexC { - FLD_C_r1 =3D 0, - FLD_C_m1 =3D 0, - FLD_C_b1 =3D 0, - FLD_C_i1 =3D 0, - FLD_C_v1 =3D 0, - - FLD_C_r2 =3D 1, - FLD_C_b2 =3D 1, - FLD_C_i2 =3D 1, - - FLD_C_r3 =3D 2, - FLD_C_m3 =3D 2, - FLD_C_i3 =3D 2, - FLD_C_v3 =3D 2, - - FLD_C_m4 =3D 3, - FLD_C_b4 =3D 3, - FLD_C_i4 =3D 3, - FLD_C_l1 =3D 3, - FLD_C_v4 =3D 3, - - FLD_C_i5 =3D 4, - FLD_C_d1 =3D 4, - FLD_C_m5 =3D 4, - - FLD_C_d2 =3D 5, - FLD_C_m6 =3D 5, - - FLD_C_d4 =3D 6, - FLD_C_x2 =3D 6, - FLD_C_l2 =3D 6, - FLD_C_v2 =3D 6, - - NUM_C_FIELD =3D 7 -}; - -struct DisasFields { - uint64_t raw_insn; - unsigned op:8; - unsigned op2:8; - unsigned presentC:16; - unsigned int presentO; - int c[NUM_C_FIELD]; -}; - /* This is the way fields are to be accessed out of DisasFields. */ #define have_field(S, F) have_field1((S), FLD_O_##F) #define get_field(S, F) get_field1((S), FLD_O_##F, FLD_C_##F) --=20 2.20.1