From nobody Tue Feb 10 23:55:25 2026 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.zohomail.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 1505414565251632.4487369679658; Thu, 14 Sep 2017 11:42:45 -0700 (PDT) Received: from localhost ([::1]:49488 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dsZ64-0007Lb-CO for importer@patchew.org; Thu, 14 Sep 2017 14:42:44 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49810) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dsYzB-0000X5-7b for qemu-devel@nongnu.org; Thu, 14 Sep 2017 14:35:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dsYz7-0000et-Qc for qemu-devel@nongnu.org; Thu, 14 Sep 2017 14:35:37 -0400 Received: from mail-pg0-x22b.google.com ([2607:f8b0:400e:c05::22b]:43507) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dsYz7-0000dS-Jb for qemu-devel@nongnu.org; Thu, 14 Sep 2017 14:35:33 -0400 Received: by mail-pg0-x22b.google.com with SMTP id u18so127516pgo.0 for ; Thu, 14 Sep 2017 11:35:33 -0700 (PDT) Received: from bigtime.twiddle.net (97-126-103-167.tukw.qwest.net. [97.126.103.167]) by smtp.gmail.com with ESMTPSA id l85sm32473848pfb.176.2017.09.14.11.35.31 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 14 Sep 2017 11:35:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=p2dILW5tsQ1dMIqBhGi3++87zont1ha9AlVGFBgG+pA=; b=XZIN5mnlD9wL7tWleBSFEGfwvOzMS+dADuHepaOu9pzizXjmLe84I9GrUXrve7dgNZ 4w8kpr5EiBV3ii2lueZTmIBFjAIGv05PUzKc1qOzwaLMNGfFEkqq0kNkUO7Vs3WRNdD8 LgJXLLR6rnmoainkjCTfJj1TzilyweGxpYsaw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=p2dILW5tsQ1dMIqBhGi3++87zont1ha9AlVGFBgG+pA=; b=dnz2Av7bkk2yld3gE9q8zbqAi6uFe9GipjnyiqLkztRRmQh1KJRb3NMHkFE5Gy3L0C 8Mx80smIQEqPSlCp5iFSqJYTDzSIfRdF19mJYJ4vMF/3EfzVx3DF2/qZKy+SOfBng7Cs j/skPMRilY6K3EcgQ8n/qKkMohtBjgPtiDZMoooA7/Z7zIO6Td7e0ISBMQuz4FbBBRV9 ASOSTYRruSqONIwTNDNXo90+OQxHkOKnzZv5modgB1apaMcpc0ZPX5vwVF2o0gszzIaa oEOjOoKurSwwxaA4HLvvmwzWvr6yMsjDPbDpEkrD1Dv8KOpYJLePzTyq7cGZTReYodI3 Affw== X-Gm-Message-State: AHPjjUioj2SWiPfvxGC9kroRvXzQQ2uUpIoPqOdgJcxIIb5yxKO9ctD0 tY7ced9bX/vaBuOIGXL/Kw== X-Google-Smtp-Source: AOwi7QA6lBQ9Q7DaP+c+Vf34dft/ppShxClUlSPqy6lOJDh5mnaD5mfdg8X5kEJ+MlqICViLaZr44g== X-Received: by 10.99.47.68 with SMTP id v65mr4101488pgv.452.1505414132323; Thu, 14 Sep 2017 11:35:32 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Thu, 14 Sep 2017 11:35:16 -0700 Message-Id: <20170914183516.19537-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.13.5 In-Reply-To: <20170914183516.19537-1-richard.henderson@linaro.org> References: <20170914183516.19537-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400e:c05::22b Subject: [Qemu-devel] [PATCH 10/10] target/mips: Support Capstone in disas_set_info 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: Yongbok Kim , Aurelien Jarno 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" Cc: Aurelien Jarno Cc: Yongbok Kim Signed-off-by: Richard Henderson --- target/mips/cpu.h | 2 ++ target/mips/cpu.c | 8 -------- target/mips/translate_init.c | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/target/mips/cpu.h b/target/mips/cpu.h index 74f6a5b098..dca713825d 100644 --- a/target/mips/cpu.h +++ b/target/mips/cpu.h @@ -1118,4 +1118,6 @@ static inline void QEMU_NORETURN do_raise_exception(C= PUMIPSState *env, do_raise_exception_err(env, exception, 0, pc); } =20 +void mips_cpu_disas_set_info(CPUState *s, disassemble_info *info); + #endif /* MIPS_CPU_H */ diff --git a/target/mips/cpu.c b/target/mips/cpu.c index 1bb66b7a5a..898f1b3759 100644 --- a/target/mips/cpu.c +++ b/target/mips/cpu.c @@ -111,14 +111,6 @@ static void mips_cpu_reset(CPUState *s) #endif } =20 -static void mips_cpu_disas_set_info(CPUState *s, disassemble_info *info) { -#ifdef TARGET_WORDS_BIGENDIAN - info->print_insn =3D print_insn_big_mips; -#else - info->print_insn =3D print_insn_little_mips; -#endif -} - static void mips_cpu_realizefn(DeviceState *dev, Error **errp) { CPUState *cs =3D CPU(dev); diff --git a/target/mips/translate_init.c b/target/mips/translate_init.c index 255d25bacd..1d43b3c36d 100644 --- a/target/mips/translate_init.c +++ b/target/mips/translate_init.c @@ -947,3 +947,39 @@ static void msa_reset(CPUMIPSState *env) /* set proper signanling bit meaning ("1" means "quiet") */ set_snan_bit_is_one(0, &env->active_tc.msa_fp_status); } + +#include "disas/capstone.h" + +void mips_cpu_disas_set_info(CPUState *s, disassemble_info *info) +{ + MIPSCPU *cpu =3D MIPS_CPU(s); + CPUMIPSState *env =3D &cpu->env; + int insn_flags =3D env->cpu_model->insn_flags; + int cap_mode; + +#ifdef TARGET_WORDS_BIGENDIAN + info->print_insn =3D print_insn_big_mips; +#else + info->print_insn =3D print_insn_little_mips; +#endif + + cap_mode =3D 0; + if (insn_flags & ISA_MIPS3) { + cap_mode |=3D CS_MODE_MIPS3; + } + if (insn_flags & ISA_MIPS32) { + cap_mode |=3D CS_MODE_MIPS32; + } + if (insn_flags & ISA_MIPS64) { + cap_mode |=3D CS_MODE_MIPS64; + } + if (insn_flags & ISA_MIPS32R6) { + cap_mode |=3D CS_MODE_MIPS32R6; + } +#ifdef TARGET_MIPS64 + cap_mode |=3D CS_MODE_MIPSGP64; +#endif + + info->cap_arch =3D CS_ARCH_MIPS; + info->cap_mode =3D cap_mode; +} --=20 2.13.5