[{"id":1775060,"web_url":"http://patchwork.ozlabs.org/comment/1775060/","msgid":"<87a81iqq2s.fsf@linaro.org>","list_archive_url":null,"date":"2017-09-26T00:08:27","subject":"Re: [Qemu-devel] [PATCH v2 6/8] arm: Support Capstone in\n\tdisas_set_info","submitter":{"id":39532,"url":"http://patchwork.ozlabs.org/api/people/39532/","name":"Alex Bennée","email":"alex.bennee@linaro.org"},"content":"Richard Henderson <richard.henderson@linaro.org> writes:\n\n> Cc: qemu-arm@nongnu.org\n> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>\n\nReviewed-by: Alex Bennée <alex.bennee@linaro.org>\nTested-by: Alex Bennée <alex.bennee@linaro.org>\n\nAnd BTW better than libvixl at least w.r.t wfi.\n\n> ---\n>  disas.c          |  3 +++\n>  target/arm/cpu.c | 21 ++++++++++++++++++---\n>  2 files changed, 21 insertions(+), 3 deletions(-)\n>\n> diff --git a/disas.c b/disas.c\n> index 42fae735ee..ea295f9cfc 100644\n> --- a/disas.c\n> +++ b/disas.c\n> @@ -451,6 +451,7 @@ void disas(FILE *out, void *code, unsigned long size)\n>      print_insn = print_insn_ppc;\n>  #elif defined(__aarch64__) && defined(CONFIG_ARM_A64_DIS)\n>      print_insn = print_insn_arm_a64;\n> +    s.info.cap_arch = CS_ARCH_ARM64;\n>  #elif defined(__alpha__)\n>      print_insn = print_insn_alpha;\n>  #elif defined(__sparc__)\n> @@ -458,6 +459,8 @@ void disas(FILE *out, void *code, unsigned long size)\n>      s.info.mach = bfd_mach_sparc_v9b;\n>  #elif defined(__arm__)\n>      print_insn = print_insn_arm;\n> +    s.info.cap_arch = CS_ARCH_ARM;\n> +    /* TCG only generates code for arm mode.  */\n>  #elif defined(__MIPSEB__)\n>      print_insn = print_insn_big_mips;\n>  #elif defined(__MIPSEL__)\n> diff --git a/target/arm/cpu.c b/target/arm/cpu.c\n> index 412e94c7ad..53320709ac 100644\n> --- a/target/arm/cpu.c\n> +++ b/target/arm/cpu.c\n> @@ -33,6 +33,7 @@\n>  #include \"sysemu/sysemu.h\"\n>  #include \"sysemu/hw_accel.h\"\n>  #include \"kvm_arm.h\"\n> +#include \"disas/capstone.h\"\n>\n>  static void arm_cpu_set_pc(CPUState *cs, vaddr value)\n>  {\n> @@ -482,10 +483,24 @@ static void arm_disas_set_info(CPUState *cpu, disassemble_info *info)\n>  #if defined(CONFIG_ARM_A64_DIS)\n>          info->print_insn = print_insn_arm_a64;\n>  #endif\n> -    } else if (env->thumb) {\n> -        info->print_insn = print_insn_thumb1;\n> +        info->cap_arch = CS_ARCH_ARM64;\n>      } else {\n> -        info->print_insn = print_insn_arm;\n> +        int cap_mode;\n> +        if (env->thumb) {\n> +            info->print_insn = print_insn_thumb1;\n> +            cap_mode = CS_MODE_THUMB;\n> +        } else {\n> +            info->print_insn = print_insn_arm;\n> +            cap_mode = CS_MODE_ARM;\n> +        }\n> +        if (arm_feature(env, ARM_FEATURE_V8)) {\n> +            cap_mode |= CS_MODE_V8;\n> +        }\n> +        if (arm_feature(env, ARM_FEATURE_M)) {\n> +            cap_mode |= CS_MODE_MCLASS;\n> +        }\n> +        info->cap_arch = CS_ARCH_ARM;\n> +        info->cap_mode = cap_mode;\n>      }\n>      if (bswap_code(arm_sctlr_b(env))) {\n>  #ifdef TARGET_WORDS_BIGENDIAN\n\n\n--\nAlex Bennée","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"K9SiGi1o\"; dkim-atps=neutral"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3y1LsV4q7Gz9s7C\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 26 Sep 2017 10:09:02 +1000 (AEST)","from localhost ([::1]:44877 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dwdQq-00014C-Pa\n\tfor incoming@patchwork.ozlabs.org; Mon, 25 Sep 2017 20:09:00 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:54580)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <alex.bennee@linaro.org>) id 1dwdQS-00013n-7w\n\tfor qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:08:37 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <alex.bennee@linaro.org>) id 1dwdQN-0003rJ-Fv\n\tfor qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:08:36 -0400","from mail-wr0-x234.google.com ([2a00:1450:400c:c0c::234]:46863)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)\n\t(Exim 4.71) (envelope-from <alex.bennee@linaro.org>)\n\tid 1dwdQN-0003q3-9j\n\tfor qemu-devel@nongnu.org; Mon, 25 Sep 2017 20:08:31 -0400","by mail-wr0-x234.google.com with SMTP id o42so10634225wrb.3\n\tfor <qemu-devel@nongnu.org>; Mon, 25 Sep 2017 17:08:29 -0700 (PDT)","from zen.linaro.local ([81.128.185.34])\n\tby smtp.gmail.com with ESMTPSA id\n\tp80sm555183wmf.42.2017.09.25.17.08.27\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tMon, 25 Sep 2017 17:08:27 -0700 (PDT)","from zen (localhost [127.0.0.1])\n\tby zen.linaro.local (Postfix) with ESMTPS id 360E33E019C;\n\tTue, 26 Sep 2017 01:08:27 +0100 (BST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google;\n\th=references:user-agent:from:to:cc:subject:in-reply-to:date\n\t:message-id:mime-version:content-transfer-encoding;\n\tbh=VxZojdlv9c06v0KOcllDRZZwBy3+QcaM6QoMl5mx5JA=;\n\tb=K9SiGi1oO5BEVqrtR9nhBEuS8D5Sgn9DkNOp+DGxQGyBrt9HHJtvctCWd7xIzKDGYs\n\trCezJdr0wzGQGzP21E+Tdt6CRrYmpiJvBtr7n/VbuLiCrZVKSQwuMd+GzaS0AsJD2NgP\n\tSjg7ERGy+/flb368el8/TCAhYMTG0aMewydC4=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:references:user-agent:from:to:cc:subject\n\t:in-reply-to:date:message-id:mime-version:content-transfer-encoding; \n\tbh=VxZojdlv9c06v0KOcllDRZZwBy3+QcaM6QoMl5mx5JA=;\n\tb=M+ibv5HQNXw2bI7loQUR1FkUvEKOyV+oISV2su9T4FijCwbPfH9WuKQj0v2vkM7nBI\n\tOJlXoky4GCYR+hu+VInlzt0ZmSWmIq0zFUZow0BKmB9fq/Khq+8vazpzzCBFmtNgO7Ds\n\twLq07qSes+TCQanv/bvIQr8stdHi4gNtrHb8JHkZBXrKr3nBKAZDy4Iz8zNGB7UZ9MA3\n\tUagkBRJIQA/8coihEnM9vuJxwsj7L8MFWBU7fXnrGnlzCbDF2AHolDv7xaspdy/9YAaj\n\tOPgH3TRDMg1vP1oe3lw0rRg7imfa0iyeH/sYrPX56HsHN2vamhOOOHRzfhbiovNDKCfz\n\t2psA==","X-Gm-Message-State":"AHPjjUhcfIti17oa8E4EYhvP6p17+fJAsj9WFOqK8Koc51oz5t6//Stg\n\tQ/EWsYxq3bLh5Ww5Q+dORbGouKfjL/M=","X-Google-Smtp-Source":"AOwi7QBhngQcSHzQmCuHchisU56p7FY9NIgszciJYpxtmTTJbvfUpKdqtDvnx9Xq98muXvuKOUKnpA==","X-Received":"by 10.223.166.138 with SMTP id t10mr8069425wrc.64.1506384508924; \n\tMon, 25 Sep 2017 17:08:28 -0700 (PDT)","References":"<20170919150313.10833-1-richard.henderson@linaro.org>\n\t<20170919150313.10833-7-richard.henderson@linaro.org>","User-agent":"mu4e 0.9.19; emacs 26.0.60","From":"Alex =?utf-8?q?Benn=C3=A9e?= <alex.bennee@linaro.org>","To":"Richard Henderson <richard.henderson@linaro.org>","In-reply-to":"<20170919150313.10833-7-richard.henderson@linaro.org>","Date":"Tue, 26 Sep 2017 01:08:27 +0100","Message-ID":"<87a81iqq2s.fsf@linaro.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"8bit","X-detected-operating-system":"by eggs.gnu.org: Genre and OS details not\n\trecognized.","X-Received-From":"2a00:1450:400c:c0c::234","Subject":"Re: [Qemu-devel] [PATCH v2 6/8] arm: Support Capstone in\n\tdisas_set_info","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"qemu-arm@nongnu.org, qemu-devel@nongnu.org","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}}]