From patchwork Fri Jun 7 09:11:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Yoshinori Sato X-Patchwork-Id: 166096 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp398739ili; Fri, 7 Jun 2019 02:30:00 -0700 (PDT) X-Google-Smtp-Source: APXvYqx4ATfUKYN+/0t5zjYWyIa2DWySy4NfxENrICI7CLJ//I53PXoDk1q9JunOaSTkgXG8G2gu X-Received: by 2002:ac8:1c54:: with SMTP id j20mr19385559qtk.158.1559899800126; Fri, 07 Jun 2019 02:30:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559899800; cv=none; d=google.com; s=arc-20160816; b=JXQ5Hf6WJd/+9ZgMphjweMVV5pZBeJZhoxNQpMt8WFeaTOlWTe5Q65RglUdpyxgg5o 2rSusGjrU+f9r5D9UJukLsfkLKXGNYBffo8x3zv5IVp6WraevmWeENdDST933jIgHkEo KlC1DEO+PE6qiwpiJh584iDltf9WEz3+16oKat1isp13cKxSTPjHAai4zulU6u4CHdo6 Nm7Iz5WcdabwP4NG8vxjGl6pqKqDWAbVUt0Xm0CdM/XjGKhH4zw1hwsMrYc4COcHsL9P VsnhBJmVFvUk5AXsgoGBeH5bQed3A7Y7dUeZ1GfoXBQupiClI0r2ms3IAIMS0VZFhA1k Srdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:to:from; bh=aJU+gPaVQEUhGtfuNmBUZX2bvd0GCQX2WdNbbQ+ITyI=; b=wHYnssPzrBTYREkD1xSsQw6YuTjPYYQApEvsaPWELTroJJmINaJZe08fRyTSnz23ni 0yVoxzd9CMJRS+L0fBeJ9hY/m3Gzr4vPT88e8DO/avljVvuh5v5/aamVQOveeBrppxLn b4yfOAe+sjPyZ6LPwScIJv61uwW0MBiNr/wnLBQqHuqohTMMDCCFCYifoLRP6h64Chnd r48Pi5IDl9VjoRw6eGh0ot0OP8KhnrLIpA8kmMNBimsrE2CrcQAbNm/KDorlObevfcMy 49p8o7L1eIdrY0o6FyNbQKkHoQSqsoU3uNo8B/Z5WhhjQYvvZO9Y51TjjYXY6aXQ39H4 VBBw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.47]) by mx.google.com with ESMTPS id w6si248002qka.85.2019.06.07.02.30.00 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 07 Jun 2019 02:30:00 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) client-ip=209.51.188.47; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:47490 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZBCB-00070f-OW for patch@linaro.org; Fri, 07 Jun 2019 05:29:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41371) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZAuR-0000m4-6A for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hZAuO-0002qX-4I for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:39 -0400 Received: from mail03.asahi-net.or.jp ([202.224.55.15]:41356) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hZAuN-0002ZG-O4 for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:35 -0400 Received: from h61-195-96-97.vps.ablenet.jp (h61-195-96-97.ablenetvps.ne.jp [61.195.96.97]) (Authenticated sender: PQ4Y-STU) by mail03.asahi-net.or.jp (Postfix) with ESMTPA id 9E273495FA; Fri, 7 Jun 2019 18:11:28 +0900 (JST) Received: from yo-satoh-debian.localdomain (ZM005235.ppp.dion.ne.jp [222.8.5.235]) by h61-195-96-97.vps.ablenet.jp (Postfix) with ESMTPSA id 54C4B240085; Fri, 7 Jun 2019 18:11:28 +0900 (JST) From: Yoshinori Sato To: qemu-devel@nongnu.org Date: Fri, 7 Jun 2019 18:11:03 +0900 Message-Id: <20190607091116.49044-12-ysato@users.sourceforge.jp> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190607091116.49044-1-ysato@users.sourceforge.jp> References: <20190607091116.49044-1-ysato@users.sourceforge.jp> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 202.224.55.15 Subject: [Qemu-devel] [PATCH v17 11/24] target/rx: Convert to CPUClass::tlb_fill 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: peter.maydell@linaro.org, Richard Henderson , Yoshinori Sato , philmd@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson The interface for tlb_fill has changed very recently. Move the function into cpu.c so that it may be static while assigning to the CPUClass methods. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson Signed-off-by: Yoshinori Sato --- target/rx/cpu.c | 14 ++++++++++++++ target/rx/op_helper.c | 11 ----------- 2 files changed, 14 insertions(+), 11 deletions(-) -- 2.11.0 diff --git a/target/rx/cpu.c b/target/rx/cpu.c index 4b96f2e463..3268077d08 100644 --- a/target/rx/cpu.c +++ b/target/rx/cpu.c @@ -143,6 +143,19 @@ static void rx_cpu_disas_set_info(CPUState *cpu, disassemble_info *info) info->print_insn = print_insn_rx; } +static bool rx_cpu_tlb_fill(CPUState *cs, vaddr addr, int size, + MMUAccessType access_type, int mmu_idx, + bool probe, uintptr_t retaddr) +{ + uint32_t address, physical, prot; + + /* Linear mapping */ + address = physical = addr & TARGET_PAGE_MASK; + prot = PAGE_READ | PAGE_WRITE | PAGE_EXEC; + tlb_set_page(cs, address, physical, prot, mmu_idx, TARGET_PAGE_SIZE); + return true; +} + static void rx_cpu_init(Object *obj) { CPUState *cs = CPU(obj); @@ -177,6 +190,7 @@ static void rxcpu_class_init(ObjectClass *klass, void *data) cc->get_phys_page_debug = rx_cpu_get_phys_page_debug; cc->disas_set_info = rx_cpu_disas_set_info; cc->tcg_initialize = rx_translate_init; + cc->tlb_fill = rx_cpu_tlb_fill; cc->gdb_num_core_regs = 26; } diff --git a/target/rx/op_helper.c b/target/rx/op_helper.c index 9a460070e9..fb7ae3c3ec 100644 --- a/target/rx/op_helper.c +++ b/target/rx/op_helper.c @@ -468,14 +468,3 @@ void QEMU_NORETURN helper_rxbrk(CPURXState *env) { raise_exception(env, 0x100, 0); } - -void tlb_fill(CPUState *cs, target_ulong addr, int size, - MMUAccessType access_type, int mmu_idx, uintptr_t retaddr) -{ - uint32_t address, physical, prot; - - /* Linear mapping */ - address = physical = addr & TARGET_PAGE_MASK; - prot = PAGE_READ | PAGE_WRITE | PAGE_EXEC; - tlb_set_page(cs, address, physical, prot, mmu_idx, TARGET_PAGE_SIZE); -} From patchwork Fri Jun 7 09:11:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Yoshinori Sato X-Patchwork-Id: 166089 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp392442ili; Fri, 7 Jun 2019 02:22:24 -0700 (PDT) X-Google-Smtp-Source: APXvYqxmvonE8o7WXJezknpfKUEXkYUBbo1prfZX3OnVyX17bEYZaOZ9w/OMEAe7gH2lY74DceF1 X-Received: by 2002:a37:8002:: with SMTP id b2mr43604071qkd.289.1559899344210; Fri, 07 Jun 2019 02:22:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559899344; cv=none; d=google.com; s=arc-20160816; b=AMHLPXThn1YvbHgQisg98wUM958VJ9krYcWlEosUbyqBewjMdYc/pL9niJnGh7rz3N PQSXGG6c28iWaLzf6XykCoVpGrUKBGkrIG7ocCEfNesfX4avFZ31cOeBwud0myeMolVy Mtkl5JXyqC56o12+Ro976SVdjrhB/y/DjKSd0PqKTqgIessHjCvRgzpvDSRl0wW/3Mma IzCPTFW+Mzzh+WZ7CrBFwTIjBBLtOT5Z7erpFZJiiscZs7Ao+v0J5vLELp6MCKfO6Rdk CDFLIBj2uszxJX9MEokvW+5umAXRYPpTv+F2k3Whs/vmADpleDTcvfC4abj7L5NYNkPC +R7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:to:from; bh=2wsunbSmVKp9leFO5TZqbhvDRHFVbukkPDwir0kBEjg=; b=rTO37t3t/RVARJrUvf08FR+dQQh+4nnZ3TFPHulnw+y8rawJbtkrXv8BzCe+eVM7rJ tADliy5rgOsbjbTscF8S6heOD5kiK/YW0DMl3kNQQPZHmemVr115YGXL4F3Bcj+Fh7Zt dq57xrlyZkFEth6E8PgIMwTjgOtrRPyBCkCtHTpHczd/ofdISK7BV0z0i14j02UEE8ka tIWMMKIi9o8TEbn0PKtfWlDYpOC1BhJkvVAomb751+S5TCUZW3j3wa5YLI+lcJZly5hK 7jbz2iB6OTf/jh3Gny1Lr5h42pbKoIQPeakmxVi9uvU+zaQ15R8lgqkPjDek+Obd3B92 bNMg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.47]) by mx.google.com with ESMTPS id i4si940357qtc.400.2019.06.07.02.22.24 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 07 Jun 2019 02:22:24 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) client-ip=209.51.188.47; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:47424 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZB4p-0007tL-QM for patch@linaro.org; Fri, 07 Jun 2019 05:22:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41335) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZAuP-0000ha-S9 for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hZAuO-0002q3-04 for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:37 -0400 Received: from mail02.asahi-net.or.jp ([202.224.55.14]:41520) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hZAuN-0002ZQ-KT for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:35 -0400 Received: from h61-195-96-97.vps.ablenet.jp (h61-195-96-97.ablenetvps.ne.jp [61.195.96.97]) (Authenticated sender: PQ4Y-STU) by mail02.asahi-net.or.jp (Postfix) with ESMTPA id E630E41781; Fri, 7 Jun 2019 18:11:28 +0900 (JST) Received: from yo-satoh-debian.localdomain (ZM005235.ppp.dion.ne.jp [222.8.5.235]) by h61-195-96-97.vps.ablenet.jp (Postfix) with ESMTPSA id 9BEE5240086; Fri, 7 Jun 2019 18:11:28 +0900 (JST) From: Yoshinori Sato To: qemu-devel@nongnu.org Date: Fri, 7 Jun 2019 18:11:04 +0900 Message-Id: <20190607091116.49044-13-ysato@users.sourceforge.jp> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190607091116.49044-1-ysato@users.sourceforge.jp> References: <20190607091116.49044-1-ysato@users.sourceforge.jp> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 202.224.55.14 Subject: [Qemu-devel] [PATCH v17 12/24] target/rx: Add RX to SysEmuTarget 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: peter.maydell@linaro.org, Richard Henderson , Yoshinori Sato , philmd@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson Fixes check-qtest-rx: tests/qmp-cmd-test Signed-off-by: Richard Henderson Signed-off-by: Yoshinori Sato --- qapi/common.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- 2.11.0 Reviewed-by: Philippe Mathieu-Daudé diff --git a/qapi/common.json b/qapi/common.json index 99d313ef3b..d0fc931159 100644 --- a/qapi/common.json +++ b/qapi/common.json @@ -183,6 +183,7 @@ # is true even for "qemu-system-x86_64". # # ppcemb: dropped in 3.1 +# rx: added in 4.1 # # Since: 3.0 ## @@ -190,6 +191,6 @@ 'data' : [ 'aarch64', 'alpha', 'arm', 'cris', 'hppa', 'i386', 'lm32', 'm68k', 'microblaze', 'microblazeel', 'mips', 'mips64', 'mips64el', 'mipsel', 'moxie', 'nios2', 'or1k', 'ppc', - 'ppc64', 'riscv32', 'riscv64', 's390x', 'sh4', + 'ppc64', 'riscv32', 'riscv64', 'rx', 's390x', 'sh4', 'sh4eb', 'sparc', 'sparc64', 'tricore', 'unicore32', 'x86_64', 'xtensa', 'xtensaeb' ] } From patchwork Fri Jun 7 09:11:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Yoshinori Sato X-Patchwork-Id: 166095 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp398211ili; Fri, 7 Jun 2019 02:29:17 -0700 (PDT) X-Google-Smtp-Source: APXvYqyGrAIJWD0DGh1rKooBRMSyrMV3R1x1clHBewdTI9/axR/ejdnqpJyUZj2TCoiAsG9FjRV8 X-Received: by 2002:a05:620a:13d1:: with SMTP id g17mr43328100qkl.121.1559899757441; Fri, 07 Jun 2019 02:29:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559899757; cv=none; d=google.com; s=arc-20160816; b=CPCrZ2Iyk0CF5+1CZCavYOiT6DtP+8pGWkMnrzu0/rtDHtYynlx30nwQ7OKc24jkyD 9KqXlPgZCe0ndbGKyKXU8Z44LLRRFXWFCnofKa4b36rZAvpqRScU1/P/Z43Lcc/OqbW0 7bOp7/pmr5gJcI5qnmmb7O+idrZaxWePpc9iYkMR8UxZElV+v7m/pjQ6/u5K8DM8WccU PVjeuGIrbkjRXAARYhKQuWKsLZrxsNQeX3FuaPvN9zretcqoClWwwjfHnQggAS4/mi2P mFe00h42y+iu2Jc/4EeL5qkzXHSAia4/He7fllcdkwx+7KY/+DmlPkM00cBwJJOxwvlO bMPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:to:from; bh=Oabu6CouOtU+d1WLJK3DndPmSla5lQ2sU7BlCGC7sgk=; b=LzM+Yy6lc/tI0m6lCIPo2eRrON8kFzKlj5JObw7sbSs2u/ttZOhxXhoA5aiGemmw3J R5eQdhwx66pcY6FrcKvVxPpnrXdp28KhseX6/u2NG6kglpgnPgjAk92whNJ3geLkas0P OUASkZaQaToe1obtdTvUALA6gEaBgQ8XqWWA7lAO505CFZJ0+13o0pJhjgcTMy/iK6An RzBnZ1GvKHhJHKKfwaA0a9ESttj5nLXPG3Cj2dDBZ0OAQMPF7RvmuF3XOSIZSwiO19S0 JteAJLaWGZsxenO09W4FG6Z+dAoCXK60PJrIxclH3+DAsI5E+5dbN2/uzNVLfNHIYaR9 AP7Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.47]) by mx.google.com with ESMTPS id y13si852745qkf.6.2019.06.07.02.29.17 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 07 Jun 2019 02:29:17 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) client-ip=209.51.188.47; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:47482 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZBBV-0006Xg-2W for patch@linaro.org; Fri, 07 Jun 2019 05:29:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41383) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZAuR-0000no-Mn for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hZAuO-0002qP-2y for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:39 -0400 Received: from mail03.asahi-net.or.jp ([202.224.55.15]:41364) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hZAuN-0002Zn-MI for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:35 -0400 Received: from h61-195-96-97.vps.ablenet.jp (h61-195-96-97.ablenetvps.ne.jp [61.195.96.97]) (Authenticated sender: PQ4Y-STU) by mail03.asahi-net.or.jp (Postfix) with ESMTPA id 5057E49ADB; Fri, 7 Jun 2019 18:11:29 +0900 (JST) Received: from yo-satoh-debian.localdomain (ZM005235.ppp.dion.ne.jp [222.8.5.235]) by h61-195-96-97.vps.ablenet.jp (Postfix) with ESMTPSA id E294E240085; Fri, 7 Jun 2019 18:11:28 +0900 (JST) From: Yoshinori Sato To: qemu-devel@nongnu.org Date: Fri, 7 Jun 2019 18:11:05 +0900 Message-Id: <20190607091116.49044-14-ysato@users.sourceforge.jp> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190607091116.49044-1-ysato@users.sourceforge.jp> References: <20190607091116.49044-1-ysato@users.sourceforge.jp> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 202.224.55.15 Subject: [Qemu-devel] [PATCH v17 13/24] target/rx: Fix cpu types and names 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: peter.maydell@linaro.org, Richard Henderson , Yoshinori Sato , philmd@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson There was confusion here about abstract classes and naming cpus. We had registered a concrete class named "-rxcpu". This was put into the default cpu fields, and matched, so basic tests worked. However, no value for -cpu could ever match in rx_cpu_class_by_name. Rename the base class to "rx-cpu" and make it abstract. This matches what we do for most other targets. Create a new concrete cpu with the name "rx62n-rx-cpu". Signed-off-by: Richard Henderson Signed-off-by: Yoshinori Sato --- target/rx/cpu.h | 12 ++++++------ hw/rx/rx-virt.c | 2 +- hw/rx/rx62n.c | 2 +- target/rx/cpu.c | 43 ++++++++++++++++++++++++++----------------- 4 files changed, 34 insertions(+), 25 deletions(-) -- 2.11.0 Reviewed-by: Philippe Mathieu-Daudé diff --git a/target/rx/cpu.h b/target/rx/cpu.h index 8c1a4e448d..a0b6975963 100644 --- a/target/rx/cpu.h +++ b/target/rx/cpu.h @@ -24,14 +24,14 @@ #include "hw/registerfields.h" #include "qom/cpu.h" -#define TYPE_RXCPU "rxcpu" +#define TYPE_RX_CPU "rx-cpu" #define RXCPU_CLASS(klass) \ - OBJECT_CLASS_CHECK(RXCPUClass, (klass), TYPE_RXCPU) + OBJECT_CLASS_CHECK(RXCPUClass, (klass), TYPE_RX_CPU) #define RXCPU(obj) \ - OBJECT_CHECK(RXCPU, (obj), TYPE_RXCPU) + OBJECT_CHECK(RXCPU, (obj), TYPE_RX_CPU) #define RXCPU_GET_CLASS(obj) \ - OBJECT_GET_CLASS(RXCPUClass, (obj), TYPE_RXCPU) + OBJECT_GET_CLASS(RXCPUClass, (obj), TYPE_RX_CPU) /* * RXCPUClass: @@ -164,9 +164,9 @@ static inline RXCPU *rx_env_get_cpu(CPURXState *env) #define ENV_OFFSET offsetof(RXCPU, env) -#define RX_CPU_TYPE_SUFFIX "-" TYPE_RXCPU +#define RX_CPU_TYPE_SUFFIX "-" TYPE_RX_CPU #define RX_CPU_TYPE_NAME(model) model RX_CPU_TYPE_SUFFIX -#define CPU_RESOLVING_TYPE TYPE_RXCPU +#define CPU_RESOLVING_TYPE TYPE_RX_CPU extern const char rx_crname[][6]; diff --git a/hw/rx/rx-virt.c b/hw/rx/rx-virt.c index 3deb7cb335..72a2989fcf 100644 --- a/hw/rx/rx-virt.c +++ b/hw/rx/rx-virt.c @@ -88,7 +88,7 @@ static void rxvirt_class_init(ObjectClass *oc, void *data) mc->desc = "RX QEMU Virtual Target"; mc->init = rxvirt_init; mc->is_default = 1; - mc->default_cpu_type = TYPE_RXCPU; + mc->default_cpu_type = RX_CPU_TYPE_NAME("rx62n"); } static const TypeInfo rxvirt_type = { diff --git a/hw/rx/rx62n.c b/hw/rx/rx62n.c index c6660b75b4..3a8fe7b0bf 100644 --- a/hw/rx/rx62n.c +++ b/hw/rx/rx62n.c @@ -195,7 +195,7 @@ static void rx62n_realize(DeviceState *dev, Error **errp) } object_initialize_child(OBJECT(s), "cpu", &s->cpu, - sizeof(RXCPU), TYPE_RXCPU, + sizeof(RXCPU), RX_CPU_TYPE_NAME("rx62n"), errp, NULL); object_property_set_bool(OBJECT(&s->cpu), true, "realized", errp); diff --git a/target/rx/cpu.c b/target/rx/cpu.c index 3268077d08..41fe1de4bb 100644 --- a/target/rx/cpu.c +++ b/target/rx/cpu.c @@ -74,13 +74,14 @@ static void rx_cpu_list_entry(gpointer data, gpointer user_data) const char *typename = object_class_get_name(OBJECT_CLASS(data)); int len = strlen(typename) - strlen(RX_CPU_TYPE_SUFFIX); - qemu_printf("%.*s\n", len, typename); + qemu_printf(" %.*s\n", len, typename); } void rx_cpu_list(void) { - GSList *list; - list = object_class_get_list_sorted(TYPE_RXCPU, false); + GSList *list = object_class_get_list_sorted(TYPE_RX_CPU, false); + + qemu_printf("Available CPUs:\n"); g_slist_foreach(list, rx_cpu_list_entry, NULL); g_slist_free(list); } @@ -88,15 +89,17 @@ void rx_cpu_list(void) static ObjectClass *rx_cpu_class_by_name(const char *cpu_model) { ObjectClass *oc; - char *typename = NULL; + char *typename; - typename = g_strdup_printf(RX_CPU_TYPE_NAME("")); + typename = g_strdup_printf(RX_CPU_TYPE_NAME("%s"), cpu_model); oc = object_class_by_name(typename); - if (oc != NULL && object_class_is_abstract(oc)) { - oc = NULL; - } - g_free(typename); + + if (oc == NULL || + object_class_is_abstract(oc) || + !object_class_dynamic_cast(oc, TYPE_RX_CPU)) { + return NULL; + } return oc; } @@ -166,7 +169,7 @@ static void rx_cpu_init(Object *obj) qdev_init_gpio_in(DEVICE(cpu), rx_cpu_set_irq, 2); } -static void rxcpu_class_init(ObjectClass *klass, void *data) +static void rx_cpu_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); CPUClass *cc = CPU_CLASS(klass); @@ -195,22 +198,28 @@ static void rxcpu_class_init(ObjectClass *klass, void *data) cc->gdb_num_core_regs = 26; } -static const TypeInfo rxcpu_info = { - .name = TYPE_RXCPU, +static const TypeInfo rx_cpu_info = { + .name = TYPE_RX_CPU, .parent = TYPE_CPU, .instance_size = sizeof(RXCPU), .instance_init = rx_cpu_init, - .abstract = false, + .abstract = true, .class_size = sizeof(RXCPUClass), - .class_init = rxcpu_class_init, + .class_init = rx_cpu_class_init, +}; + +static const TypeInfo rx62n_rx_cpu_info = { + .name = RX_CPU_TYPE_NAME("rx62n"), + .parent = TYPE_RX_CPU, }; -static void rxcpu_register_types(void) +static void rx_cpu_register_types(void) { - type_register_static(&rxcpu_info); + type_register_static(&rx_cpu_info); + type_register_static(&rx62n_rx_cpu_info); } -type_init(rxcpu_register_types) +type_init(rx_cpu_register_types) static uint32_t extable[32]; From patchwork Fri Jun 7 09:11:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Yoshinori Sato X-Patchwork-Id: 166093 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp396757ili; Fri, 7 Jun 2019 02:27:33 -0700 (PDT) X-Google-Smtp-Source: APXvYqxaupypuKw3Ht0mpSwInSUXTpVtuELUf/HIwMw5WpAo6m1s6oDF6y+yUwviS9BGJ2xL0y2s X-Received: by 2002:ae9:f503:: with SMTP id o3mr8465914qkg.345.1559899653880; Fri, 07 Jun 2019 02:27:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559899653; cv=none; d=google.com; s=arc-20160816; b=Af2kInJtiHbrlVbZun6PpDoYyYyFKJ407zGenOCeitqNVsRP1pzWbMJNMz6pesbZF1 UGkPZRp/vuEsLx9jcafN6Dmd2RxnV/Lb0e9mtIzjDiXzao955Ily4ptEGMQx/lsu8b7C oU63EvyYFf/BvpyJNecE6YDdkJPs9jdx/8QBzOUEbF6vGyWX1v6bRmXjsn5kMYVIrG5p Oml5yhsNyulCUWkPZL1P96y+gd5oSiQAbHvu9mG2870ZhgaeNx5DbSWfVRXmv+mzOAvF +IQdTq/Rttt3R/Nb93lc1YNBuNE0oGa1QTp56h4Xta81YmWMtAYIIoUmRDEeMfulOqlp eFaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:to:from; bh=toiiHL7bMxjuFaZtya2mEHfnLtLQCxeCQH2bhxP9H8c=; b=K2M64E1KZi/823G4SuEV4HtqLnXbP3hGCSJ8j6N2OxxK1vsCVmH7CQ5e4HPSj8Zoep dpJMsk4VOpdjY2voV0nlKRCuiuNrk21121D1dq37NcYabKEcsa61vnEX8/9WnbVDLFDk 12RhtJXSQ4wbGTvkUKWnUXcc7Tser7pZLq+soGfROJwImRGMTZRT0CpgDh0+VE384M5V gjsVSEouwtJ0pKGYz+XL8sz/N92iVL6oJiMdUOdfBB9Pdxnr1hmk4IyDdOMhj1MwyAcR 2KzOxVm9dX1uuBnlTS+QyjEPoP6a1egq3LfCB9O2usEIcD/K37MBL99YdPd3KtguFuaH PA+g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.47]) by mx.google.com with ESMTPS id n47si87557qtb.345.2019.06.07.02.27.33 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 07 Jun 2019 02:27:33 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) client-ip=209.51.188.47; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:47472 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZB9p-00054j-Fk for patch@linaro.org; Fri, 07 Jun 2019 05:27:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41376) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZAuR-0000nS-IC for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hZAuO-0002t4-M9 for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:39 -0400 Received: from mail03.asahi-net.or.jp ([202.224.55.15]:41368) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hZAuO-0002Zy-4H for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:36 -0400 Received: from h61-195-96-97.vps.ablenet.jp (h61-195-96-97.ablenetvps.ne.jp [61.195.96.97]) (Authenticated sender: PQ4Y-STU) by mail03.asahi-net.or.jp (Postfix) with ESMTPA id 92139495CC; Fri, 7 Jun 2019 18:11:29 +0900 (JST) Received: from yo-satoh-debian.localdomain (ZM005235.ppp.dion.ne.jp [222.8.5.235]) by h61-195-96-97.vps.ablenet.jp (Postfix) with ESMTPSA id 4C094240086; Fri, 7 Jun 2019 18:11:29 +0900 (JST) From: Yoshinori Sato To: qemu-devel@nongnu.org Date: Fri, 7 Jun 2019 18:11:06 +0900 Message-Id: <20190607091116.49044-15-ysato@users.sourceforge.jp> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190607091116.49044-1-ysato@users.sourceforge.jp> References: <20190607091116.49044-1-ysato@users.sourceforge.jp> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 202.224.55.15 Subject: [Qemu-devel] [PATCH v17 14/24] tests: Add rx to machine-none-test.c 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: peter.maydell@linaro.org, Richard Henderson , Yoshinori Sato , philmd@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson Fixes check-qtest-rx: tests/machine-none-test. Signed-off-by: Richard Henderson Signed-off-by: Yoshinori Sato --- tests/machine-none-test.c | 1 + 1 file changed, 1 insertion(+) -- 2.11.0 Reviewed-by: Philippe Mathieu-Daudé diff --git a/tests/machine-none-test.c b/tests/machine-none-test.c index 4c6d470798..80df277357 100644 --- a/tests/machine-none-test.c +++ b/tests/machine-none-test.c @@ -56,6 +56,7 @@ static struct arch2cpu cpus_map[] = { { "hppa", "hppa" }, { "riscv64", "rv64gcsu-v1.10.0" }, { "riscv32", "rv32gcsu-v1.9.1" }, + { "rx", "rx62n" }, }; static const char *get_cpu_model_by_arch(const char *arch) From patchwork Fri Jun 7 09:11:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Yoshinori Sato X-Patchwork-Id: 166098 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp409123ili; Fri, 7 Jun 2019 02:41:38 -0700 (PDT) X-Google-Smtp-Source: APXvYqyJsf4XID5MdQkXVhnVsmxnwWqlFJn12zvhWer1ammV8eaNaquXNjgCwpk6+pa03V7znBy0 X-Received: by 2002:a37:4c11:: with SMTP id z17mr23120852qka.316.1559900498563; Fri, 07 Jun 2019 02:41:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559900498; cv=none; d=google.com; s=arc-20160816; b=ZJAfW6C3pRz+AsEX/mYvjz41rSKkSyvni53cdD3TsllHuHN2IIkAvjBRIyumjJj2D+ Nw3Bux7LN04ea9otSTQJ3qAx460DHi95OwbmATOr5PU2DxHUoeWk3mCqpojtpZk3IJOe duJtt254VYOshoZD2af6fVh5q4li+TIsABVQx+LEARbv/thEj8+Dxo6czIVbNKlpdJfX uYmVtirUT4prrWl6yyssxmWlG5FiK64F9iI4h3kK1/VclGwNsY1Q7GcqVXLtQezKopZr glzA/8VT0dVbTMnEzHqw8I6pvRPvJyBdm8Dl683YNP/CqNDVPNVWT4kYDiWrf9WE0UBV U2Bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:to:from; bh=/pUzKLRZx9aTjuzBuF7SXdJCFH14gghwhDqcU7wy0+A=; b=vft7ABZ0csQnJ0CLyc7m00pA5mwxAjU9WwKAcPjS0FdiQC4hK1Tb2erUX+GoEdQwVY XU6yRrjIBScu/toYd5OTgRLs1rSz7AoiKPhcKs83fA+TKEeBQnN+wiAAiW3sxDzuIu9y qudLW5ESz7GP4QEscwZYx84JIHhYXXTKrS3CDOFhb15ukv3srbPIvTjEyx9H/f8VLysh QDz0jICbb3YfztZrGJtTQM0FJExiLa2jgQIdOibvGzKSvepRIuHzzxmFhlBtFzabMqQv Y5w45UeQUH7Va/m6dnuu1YZB1hW5YI+MDHB1qdmuMtH/y7r/PtGe3Jv5vlioGj9CrKoR qY2g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.47]) by mx.google.com with ESMTPS id e123si856737qkd.258.2019.06.07.02.41.38 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 07 Jun 2019 02:41:38 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) client-ip=209.51.188.47; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:47564 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZBNM-000740-W6 for patch@linaro.org; Fri, 07 Jun 2019 05:41:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41424) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZAuT-0000sp-I9 for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hZAuP-0002vz-8U for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:41 -0400 Received: from mail03.asahi-net.or.jp ([202.224.55.15]:41383) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hZAuO-0002rR-Pb for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:37 -0400 Received: from h61-195-96-97.vps.ablenet.jp (h61-195-96-97.ablenetvps.ne.jp [61.195.96.97]) (Authenticated sender: PQ4Y-STU) by mail03.asahi-net.or.jp (Postfix) with ESMTPA id F1DC649B0D; Fri, 7 Jun 2019 18:11:29 +0900 (JST) Received: from yo-satoh-debian.localdomain (ZM005235.ppp.dion.ne.jp [222.8.5.235]) by h61-195-96-97.vps.ablenet.jp (Postfix) with ESMTPSA id 8EECC240085; Fri, 7 Jun 2019 18:11:29 +0900 (JST) From: Yoshinori Sato To: qemu-devel@nongnu.org Date: Fri, 7 Jun 2019 18:11:07 +0900 Message-Id: <20190607091116.49044-16-ysato@users.sourceforge.jp> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190607091116.49044-1-ysato@users.sourceforge.jp> References: <20190607091116.49044-1-ysato@users.sourceforge.jp> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 202.224.55.15 Subject: [Qemu-devel] [PATCH v17 15/24] hw/rx: Honor -accel qtest 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: peter.maydell@linaro.org, Richard Henderson , Yoshinori Sato , philmd@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson Issue an error if no kernel, no bios, and not qtest'ing. Fixes make check-qtest-rx: test/qom-test. Signed-off-by: Richard Henderson Signed-off-by: Yoshinori Sato --- hw/rx/rx62n.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) -- 2.11.0 Reviewed-by: Philippe Mathieu-Daudé diff --git a/hw/rx/rx62n.c b/hw/rx/rx62n.c index 3a8fe7b0bf..e55257c622 100644 --- a/hw/rx/rx62n.c +++ b/hw/rx/rx62n.c @@ -21,11 +21,13 @@ #include "qemu/osdep.h" #include "qapi/error.h" +#include "qemu/error-report.h" #include "hw/hw.h" #include "hw/rx/rx62n.h" #include "hw/loader.h" #include "hw/sysbus.h" #include "sysemu/sysemu.h" +#include "sysemu/qtest.h" #include "cpu.h" /* @@ -190,8 +192,14 @@ static void rx62n_realize(DeviceState *dev, Error **errp) memory_region_init_rom(&s->c_flash, NULL, "codeflash", RX62N_CFLASH_SIZE, errp); memory_region_add_subregion(s->sysmem, RX62N_CFLASH_BASE, &s->c_flash); + if (!s->kernel) { - rom_add_file_fixed(bios_name, RX62N_CFLASH_BASE, 0); + if (bios_name) { + rom_add_file_fixed(bios_name, RX62N_CFLASH_BASE, 0); + } else if (!qtest_enabled()) { + error_report("No bios or kernel specified"); + exit(1); + } } object_initialize_child(OBJECT(s), "cpu", &s->cpu, From patchwork Fri Jun 7 09:11:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yoshinori Sato X-Patchwork-Id: 166099 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp410027ili; Fri, 7 Jun 2019 02:42:41 -0700 (PDT) X-Google-Smtp-Source: APXvYqxxLJbWviBlt7HT23CxrOGx4+FOTlihXnpxmVoR+dZ1WHLLmtBTJScZpCQ34u/PFw0/mapF X-Received: by 2002:a37:a9c3:: with SMTP id s186mr43463159qke.190.1559900561832; Fri, 07 Jun 2019 02:42:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559900561; cv=none; d=google.com; s=arc-20160816; b=h3gY5gfMHnO5+X2B38227aberiGdyr4jKXl/ZmcexeKAqPUSmdpW2pnBfFsPh+/kwq 3N21mt5FW9iho0ccZNxYcSCL6L/mxUgLfp/J6PSwDKvwwbx7z3DRUk7yXJMCbkcthpfl Yhb9zr/uG3nKUTUYw3KW0pa6R3lcR+njGCxy424DPihInqTPd0N0Jy8MCbyHMy82brpH GOPY6guZwxkWry10hffQz8XC/BEhiN17I0hZx4sPoVa0oLXXKSem8+WZuQfw56iAuhqS sYSjtGGr0xqB/uJr3AidAq7tbklmjpQ0KWo/EdAFjKC9uF0AlSbPILPHoHHZQVGF8dzz I4RA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:to:from; bh=DkTWE+ONR6JSNntLiXFCIQnxbK7SKUtJgPw1y5D/7pg=; b=zDzkIFVXlBeqhcxGeZDae3w5CrSdie59zNJ+WIqXIEJjry8VjDqrvcm5Qqx8bq279F pe3i8Gg5U/igdFz1M6L/fD2Ynoh4SFRIZ8u9GQ9yd9LFBU9p8ZimDfC5JyIzW+ta9RpQ 8U7fmY5a6MecuKfDK50hiRFCO3AAe+94T7VBodopinexQ9OvgV1fXspLrarP774hm7qS 9e0t6i3cLdBKfLaqnsQRTY9sne21JxY7dj9PjrcW1eisEuYdq0U26q8GnYlXb4BddnDp QR6m16h5rz2Xv8lv06fsW6A+M9wMATrtOh15k9oR71K/P+EoNP6qwH+oG0zpWGHqRPSi Abvg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.47]) by mx.google.com with ESMTPS id t23si850682qve.79.2019.06.07.02.42.41 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 07 Jun 2019 02:42:41 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) client-ip=209.51.188.47; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:47574 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZBOT-0007IW-Cn for patch@linaro.org; Fri, 07 Jun 2019 05:42:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41435) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZAuU-0000u1-2u for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hZAuO-0002ro-EJ for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:41 -0400 Received: from mail02.asahi-net.or.jp ([202.224.55.14]:41525) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hZAuN-0002fE-Qr for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:36 -0400 Received: from h61-195-96-97.vps.ablenet.jp (h61-195-96-97.ablenetvps.ne.jp [61.195.96.97]) (Authenticated sender: PQ4Y-STU) by mail02.asahi-net.or.jp (Postfix) with ESMTPA id 18BE34161F; Fri, 7 Jun 2019 18:11:31 +0900 (JST) Received: from yo-satoh-debian.localdomain (ZM005235.ppp.dion.ne.jp [222.8.5.235]) by h61-195-96-97.vps.ablenet.jp (Postfix) with ESMTPSA id 6FB4A240086; Fri, 7 Jun 2019 18:11:30 +0900 (JST) From: Yoshinori Sato To: qemu-devel@nongnu.org Date: Fri, 7 Jun 2019 18:11:10 +0900 Message-Id: <20190607091116.49044-19-ysato@users.sourceforge.jp> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190607091116.49044-1-ysato@users.sourceforge.jp> References: <20190607091116.49044-1-ysato@users.sourceforge.jp> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 202.224.55.14 Subject: [Qemu-devel] [PATCH v17 18/24] target/rx: Disassemble rx_index_addr into a string 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: peter.maydell@linaro.org, Richard Henderson , Yoshinori Sato , philmd@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson We were eliding all zero indexes. It is only ld==0 that does not have an index in the instruction. This also allows us to avoid breaking the final print into multiple pieces. Reviewed-by: Yoshinori Sato Signed-off-by: Richard Henderson Signed-off-by: Yoshinori Sato --- target/rx/disas.c | 154 +++++++++++++++++++----------------------------------- 1 file changed, 55 insertions(+), 99 deletions(-) -- 2.11.0 diff --git a/target/rx/disas.c b/target/rx/disas.c index 8cada4825d..64342537ee 100644 --- a/target/rx/disas.c +++ b/target/rx/disas.c @@ -107,49 +107,42 @@ static const char psw[] = { 'i', 'u', 0, 0, 0, 0, 0, 0, }; -static uint32_t rx_index_addr(int ld, int size, DisasContext *ctx) +static void rx_index_addr(DisasContext *ctx, char out[8], int ld, int mi) { - bfd_byte buf[2]; + uint32_t addr = ctx->addr; + uint8_t buf[2]; + uint16_t dsp; + switch (ld) { case 0: - return 0; + /* No index; return empty string. */ + out[0] = '\0'; + return; case 1: - ctx->dis->read_memory_func(ctx->addr, buf, 1, ctx->dis); ctx->addr += 1; - return ((uint8_t)buf[0]) << size; + ctx->dis->read_memory_func(addr, buf, 1, ctx->dis); + dsp = buf[0]; + break; case 2: - ctx->dis->read_memory_func(ctx->addr, buf, 2, ctx->dis); ctx->addr += 2; - return lduw_le_p(buf) << size; + ctx->dis->read_memory_func(addr, buf, 2, ctx->dis); + dsp = lduw_le_p(buf); + break; + default: + g_assert_not_reached(); } - g_assert_not_reached(); + + sprintf(out, "%u", dsp << (mi < 3 ? mi : 4 - mi)); } static void operand(DisasContext *ctx, int ld, int mi, int rs, int rd) { - int dsp; static const char sizes[][4] = {".b", ".w", ".l", ".uw", ".ub"}; + char dsp[8]; + if (ld < 3) { - switch (mi) { - case 4: - /* dsp[rs].ub */ - dsp = rx_index_addr(ld, RX_MEMORY_BYTE, ctx); - break; - case 3: - /* dsp[rs].uw */ - dsp = rx_index_addr(ld, RX_MEMORY_WORD, ctx); - break; - default: - /* dsp[rs].b */ - /* dsp[rs].w */ - /* dsp[rs].l */ - dsp = rx_index_addr(ld, mi, ctx); - break; - } - if (dsp > 0) { - prt("%d", dsp); - } - prt("[r%d]%s", rs, sizes[mi]); + rx_index_addr(ctx, dsp, ld, mi); + prt("%s[r%d]%s", dsp, rs, sizes[mi]); } else { prt("r%d", rs); } @@ -235,7 +228,7 @@ static bool trans_MOV_ra(DisasContext *ctx, arg_MOV_ra *a) /* mov.[bwl] rs,rd */ static bool trans_MOV_mm(DisasContext *ctx, arg_MOV_mm *a) { - int dsp; + char dspd[8], dsps[8]; prt("mov.%c\t", size[a->sz]); if (a->lds == 3 && a->ldd == 3) { @@ -244,29 +237,15 @@ static bool trans_MOV_mm(DisasContext *ctx, arg_MOV_mm *a) return true; } if (a->lds == 3) { - prt("r%d, ", a->rd); - dsp = rx_index_addr(a->ldd, a->sz, ctx); - if (dsp > 0) { - prt("%d", dsp); - } - prt("[r%d]", a->rs); + rx_index_addr(ctx, dspd, a->ldd, a->sz); + prt("r%d, %s[r%d]", a->rs, dspd, a->rd); } else if (a->ldd == 3) { - dsp = rx_index_addr(a->lds, a->sz, ctx); - if (dsp > 0) { - prt("%d", dsp); - } - prt("[r%d], r%d", a->rs, a->rd); + rx_index_addr(ctx, dsps, a->lds, a->sz); + prt("%s[r%d], r%d", dsps, a->rs, a->rd); } else { - dsp = rx_index_addr(a->lds, a->sz, ctx); - if (dsp > 0) { - prt("%d", dsp); - } - prt("[r%d], ", a->rs); - dsp = rx_index_addr(a->ldd, a->sz, ctx); - if (dsp > 0) { - prt("%d", dsp); - } - prt("[r%d]", a->rd); + rx_index_addr(ctx, dsps, a->lds, a->sz); + rx_index_addr(ctx, dspd, a->ldd, a->sz); + prt("%s[r%d], %s[r%d]", dsps, a->rs, dspd, a->rd); } return true; } @@ -357,12 +336,10 @@ static bool trans_PUSH_r(DisasContext *ctx, arg_PUSH_r *a) /* push dsp[rs] */ static bool trans_PUSH_m(DisasContext *ctx, arg_PUSH_m *a) { - prt("push\t"); - int dsp = rx_index_addr(a->ld, a->sz, ctx); - if (dsp > 0) { - prt("%d", dsp); - } - prt("[r%d]", a->rs); + char dsp[8]; + + rx_index_addr(ctx, dsp, a->ld, a->sz); + prt("push\t%s[r%d]", dsp, a->rs); return true; } @@ -389,17 +366,13 @@ static bool trans_XCHG_rr(DisasContext *ctx, arg_XCHG_rr *a) /* xchg dsp[rs].,rd */ static bool trans_XCHG_mr(DisasContext *ctx, arg_XCHG_mr *a) { - int dsp; static const char msize[][4] = { "b", "w", "l", "ub", "uw", }; + char dsp[8]; - prt("xchg\t"); - dsp = rx_index_addr(a->ld, a->mi, ctx); - if (dsp > 0) { - prt("%d", dsp); - } - prt("[r%d].%s, r%d", a->rs, msize[a->mi], a->rd); + rx_index_addr(ctx, dsp, a->ld, a->mi); + prt("xchg\t%s[r%d].%s, r%d", dsp, a->rs, msize[a->mi], a->rd); return true; } @@ -552,13 +525,10 @@ static bool trans_ADC_rr(DisasContext *ctx, arg_ADC_rr *a) /* adc dsp[rs], rd */ static bool trans_ADC_mr(DisasContext *ctx, arg_ADC_mr *a) { - int dsp; - prt("adc\t"); - dsp = rx_index_addr(a->ld, 2, ctx); - if (dsp > 0) { - prt("%d", dsp); - } - prt("[r%d], r%d", a->rs, a->rd); + char dsp[8]; + + rx_index_addr(ctx, dsp, a->ld, 2); + prt("adc\t%s[r%d], r%d", dsp, a->rs, a->rd); return true; } @@ -1217,25 +1187,17 @@ static bool trans_ITOF(DisasContext *ctx, arg_ITOF *a) #define BOP_IM(name, reg) \ do { \ - int dsp; \ - prt("b%s\t#%d, ", #name, a->imm); \ - dsp = rx_index_addr(a->ld, RX_MEMORY_BYTE, ctx); \ - if (dsp > 0) { \ - prt("%d", dsp); \ - } \ - prt("[r%d]", reg); \ + char dsp[8]; \ + rx_index_addr(ctx, dsp, a->ld, RX_MEMORY_BYTE); \ + prt("b%s\t#%d, %s[r%d]", #name, a->imm, dsp, reg); \ return true; \ } while (0) #define BOP_RM(name) \ do { \ - int dsp; \ - prt("b%s\tr%d, ", #name, a->rd); \ - dsp = rx_index_addr(a->ld, RX_MEMORY_BYTE, ctx); \ - if (dsp > 0) { \ - prt("%d", dsp); \ - } \ - prt("[r%d]", a->rs); \ + char dsp[8]; \ + rx_index_addr(ctx, dsp, a->ld, RX_MEMORY_BYTE); \ + prt("b%s\tr%d, %s[r%d]", #name, a->rd, dsp, a->rs); \ return true; \ } while (0) @@ -1346,12 +1308,10 @@ static bool trans_BNOT_ir(DisasContext *ctx, arg_BNOT_ir *a) /* bmcond #imm, dsp[rd] */ static bool trans_BMCnd_im(DisasContext *ctx, arg_BMCnd_im *a) { - int dsp = rx_index_addr(a->ld, RX_MEMORY_BYTE, ctx); - prt("bm%s\t#%d, ", cond[a->cd], a->imm); - if (dsp > 0) { - prt("%d", dsp); - } - prt("[%d]", a->rd); + char dsp[8]; + + rx_index_addr(ctx, dsp, a->ld, RX_MEMORY_BYTE); + prt("bm%s\t#%d, %s[r%d]", cond[a->cd], a->imm, dsp, a->rd); return true; } @@ -1443,16 +1403,12 @@ static bool trans_WAIT(DisasContext *ctx, arg_WAIT *a) /* sccnd.[bwl] dsp:[rd] */ static bool trans_SCCnd(DisasContext *ctx, arg_SCCnd *a) { - int dsp; - prt("sc%s.%c\t", cond[a->cd], size[a->sz]); if (a->ld < 3) { - dsp = rx_index_addr(a->sz, a->ld, ctx); - if (dsp > 0) { - prt("%d", dsp); - } - prt("[r%d]", a->rd); + char dsp[8]; + rx_index_addr(ctx, dsp, a->sz, a->ld); + prt("sc%s.%c\t%s[r%d]", cond[a->cd], size[a->sz], dsp, a->rd); } else { - prt("r%d", a->rd); + prt("sc%s.%c\tr%d", cond[a->cd], size[a->sz], a->rd); } return true; } From patchwork Fri Jun 7 09:11:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Yoshinori Sato X-Patchwork-Id: 166105 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp416677ili; Fri, 7 Jun 2019 02:51:12 -0700 (PDT) X-Google-Smtp-Source: APXvYqx+FXrDR55wAEEOJj87Cg3cM1NZJR32H20kYURCvyrFmEh+TERc3g9rWCXgMSxkdQp6tc7X X-Received: by 2002:ac8:28bc:: with SMTP id i57mr13977704qti.288.1559901071978; Fri, 07 Jun 2019 02:51:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559901071; cv=none; d=google.com; s=arc-20160816; b=kk3z6bNDf5z9auz9nitfHusYGgsvjtYBOCi3zmqllYxwdZl7f3I9d5XmPy1jt234bV TICb9KqMAOLoCBW39R0RVfp3o7TDQ73OIICFRAzYUWVldIVKoFqGWUD2HaYgxOHr+Ru1 2XwjmkahmwKEfiA2Uhq1PafKVZhoDhiJu6oTpWqyzjHPMe7we+0oXT/6F7bXUnbAj4ZO j3t4No3QbQCtDsB3HfIcQMZFalPR7mLxm39NJJI6YxbHX/Mp2rTJl1c7n3fTBoEhYETP CGxZcm35I78FRNPqa+YeqKw04DyRlq7hdHsxV3PuP2H5mzj9Su4fE8AjVS5h7ucsT+00 L8mQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:to:from; bh=pIG+Zf/U31jFQxe9zXM9FkT4havvk+vL2rDEN3laGQI=; b=nFa3Nww41zOjmXXqO9XdGJOw+G5pI05+5kNgEYzxNvBkx3LyukV43nmNF9t9IeGPje z2ERHfIDvq0ApruSYV3vGfTW6dNtucEWBMALNBnjwcGXWMca/YOCdnd3zV1ZtRRJbAWR +Q3opgLWC73DP8n0CfK/WxCgGMQaf7es8NOADwlMfHC1zMNw/+jFAt4FPM1Cqicq2Bux 1uydT208+hoIvwwhjAuIJxRO8OiJTPISKgtf8qNVgTT1r0zpQ097xlV/N++EbBLA0mB2 l6izc4tUud2YAmg5vTk6GJyF5oPAFLgPLEGyhEfpJqXPmkqK1X8v4wCjHpzwuPyKuBZg ckdg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.47]) by mx.google.com with ESMTPS id f204si890888qke.8.2019.06.07.02.51.11 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 07 Jun 2019 02:51:11 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) client-ip=209.51.188.47; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:47654 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZBWh-0007Tt-I5 for patch@linaro.org; Fri, 07 Jun 2019 05:51:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41517) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZAuV-0000zM-VO for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hZAuP-0002wu-FU for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:43 -0400 Received: from mail01.asahi-net.or.jp ([202.224.55.13]:59746) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hZAuO-0002rT-SB for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:37 -0400 Received: from h61-195-96-97.vps.ablenet.jp (h61-195-96-97.ablenetvps.ne.jp [61.195.96.97]) (Authenticated sender: PQ4Y-STU) by mail01.asahi-net.or.jp (Postfix) with ESMTPA id 73820123D18; Fri, 7 Jun 2019 18:11:31 +0900 (JST) Received: from yo-satoh-debian.localdomain (ZM005235.ppp.dion.ne.jp [222.8.5.235]) by h61-195-96-97.vps.ablenet.jp (Postfix) with ESMTPSA id 15D67240085; Fri, 7 Jun 2019 18:11:31 +0900 (JST) From: Yoshinori Sato To: qemu-devel@nongnu.org Date: Fri, 7 Jun 2019 18:11:11 +0900 Message-Id: <20190607091116.49044-20-ysato@users.sourceforge.jp> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190607091116.49044-1-ysato@users.sourceforge.jp> References: <20190607091116.49044-1-ysato@users.sourceforge.jp> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 202.224.55.13 Subject: [Qemu-devel] [PATCH v17 19/24] target/rx: Replace operand with prt_ldmi in disassembler 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: peter.maydell@linaro.org, Richard Henderson , Yoshinori Sato , philmd@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson This has consistency with prt_ri(). It loads all data before beginning output. It uses exactly one call to prt() to emit the full instruction. Reviewed-by: Yoshinori Sato Signed-off-by: Richard Henderson Signed-off-by: Yoshinori Sato --- target/rx/disas.c | 77 +++++++++++++++++++------------------------------------ 1 file changed, 27 insertions(+), 50 deletions(-) -- 2.11.0 Reviewed-by: Philippe Mathieu-Daudé diff --git a/target/rx/disas.c b/target/rx/disas.c index 64342537ee..515b365528 100644 --- a/target/rx/disas.c +++ b/target/rx/disas.c @@ -135,18 +135,18 @@ static void rx_index_addr(DisasContext *ctx, char out[8], int ld, int mi) sprintf(out, "%u", dsp << (mi < 3 ? mi : 4 - mi)); } -static void operand(DisasContext *ctx, int ld, int mi, int rs, int rd) +static void prt_ldmi(DisasContext *ctx, const char *insn, + int ld, int mi, int rs, int rd) { static const char sizes[][4] = {".b", ".w", ".l", ".uw", ".ub"}; char dsp[8]; if (ld < 3) { rx_index_addr(ctx, dsp, ld, mi); - prt("%s[r%d]%s", dsp, rs, sizes[mi]); + prt("%s\t%s[r%d]%s, r%d", insn, dsp, rs, sizes[mi], rd); } else { - prt("r%d", rs); + prt("%s\tr%d, r%d", insn, rs, rd); } - prt(", r%d", rd); } static void prt_ir(DisasContext *ctx, const char *insn, int imm, int rd) @@ -416,8 +416,7 @@ static bool trans_AND_ir(DisasContext *ctx, arg_AND_ir *a) /* and rs,rd */ static bool trans_AND_mr(DisasContext *ctx, arg_AND_mr *a) { - prt("and\t"); - operand(ctx, a->ld, a->mi, a->rs, a->rd); + prt_ldmi(ctx, "and", a->ld, a->mi, a->rs, a->rd); return true; } @@ -440,8 +439,7 @@ static bool trans_OR_ir(DisasContext *ctx, arg_OR_ir *a) /* or rs,rd */ static bool trans_OR_mr(DisasContext *ctx, arg_OR_mr *a) { - prt("or\t"); - operand(ctx, a->ld, a->mi, a->rs, a->rd); + prt_ldmi(ctx, "or", a->ld, a->mi, a->rs, a->rd); return true; } @@ -463,8 +461,7 @@ static bool trans_XOR_ir(DisasContext *ctx, arg_XOR_ir *a) /* xor rs,rd */ static bool trans_XOR_mr(DisasContext *ctx, arg_XOR_mr *a) { - prt("xor\t"); - operand(ctx, a->ld, a->mi, a->rs, a->rd); + prt_ldmi(ctx, "xor", a->ld, a->mi, a->rs, a->rd); return true; } @@ -479,8 +476,7 @@ static bool trans_TST_ir(DisasContext *ctx, arg_TST_ir *a) /* tst rs, rd */ static bool trans_TST_mr(DisasContext *ctx, arg_TST_mr *a) { - prt("tst\t"); - operand(ctx, a->ld, a->mi, a->rs, a->rd); + prt_ldmi(ctx, "tst", a->ld, a->mi, a->rs, a->rd); return true; } @@ -548,8 +544,7 @@ static bool trans_ADD_irr(DisasContext *ctx, arg_ADD_irr *a) /* add dsp[rs], rd */ static bool trans_ADD_mr(DisasContext *ctx, arg_ADD_mr *a) { - prt("add\t"); - operand(ctx, a->ld, a->mi, a->rs, a->rd); + prt_ldmi(ctx, "add", a->ld, a->mi, a->rs, a->rd); return true; } @@ -573,8 +568,7 @@ static bool trans_CMP_ir(DisasContext *ctx, arg_CMP_ir *a) /* cmp dsp[rs], rs2 */ static bool trans_CMP_mr(DisasContext *ctx, arg_CMP_mr *a) { - prt("cmp\t"); - operand(ctx, a->ld, a->mi, a->rs, a->rd); + prt_ldmi(ctx, "cmp", a->ld, a->mi, a->rs, a->rd); return true; } @@ -589,8 +583,7 @@ static bool trans_SUB_ir(DisasContext *ctx, arg_SUB_ir *a) /* sub dsp[rs], rd */ static bool trans_SUB_mr(DisasContext *ctx, arg_SUB_mr *a) { - prt("sub\t"); - operand(ctx, a->ld, a->mi, a->rs, a->rd); + prt_ldmi(ctx, "sub", a->ld, a->mi, a->rs, a->rd); return true; } @@ -611,8 +604,7 @@ static bool trans_SBB_rr(DisasContext *ctx, arg_SBB_rr *a) /* sbb dsp[rs], rd */ static bool trans_SBB_mr(DisasContext *ctx, arg_SBB_mr *a) { - prt("sbb\t"); - operand(ctx, a->ld, RX_IM_LONG, a->rs, a->rd); + prt_ldmi(ctx, "sbb", a->ld, RX_IM_LONG, a->rs, a->rd); return true; } @@ -640,8 +632,7 @@ static bool trans_MAX_ir(DisasContext *ctx, arg_MAX_ir *a) /* max dsp[rs], rd */ static bool trans_MAX_mr(DisasContext *ctx, arg_MAX_mr *a) { - prt("max\t"); - operand(ctx, a->ld, a->mi, a->rs, a->rd); + prt_ldmi(ctx, "max", a->ld, a->mi, a->rs, a->rd); return true; } @@ -656,8 +647,7 @@ static bool trans_MIN_ir(DisasContext *ctx, arg_MIN_ir *a) /* min dsp[rs], rd */ static bool trans_MIN_mr(DisasContext *ctx, arg_MIN_mr *a) { - prt("max\t"); - operand(ctx, a->ld, a->mi, a->rs, a->rd); + prt_ldmi(ctx, "min", a->ld, a->mi, a->rs, a->rd); return true; } @@ -673,8 +663,7 @@ static bool trans_MUL_ir(DisasContext *ctx, arg_MUL_ir *a) /* mul dsp[rs], rd */ static bool trans_MUL_mr(DisasContext *ctx, arg_MUL_mr *a) { - prt("mul\t"); - operand(ctx, a->ld, a->mi, a->rs, a->rd); + prt_ldmi(ctx, "mul", a->ld, a->mi, a->rs, a->rd); return true; } @@ -696,8 +685,7 @@ static bool trans_EMUL_ir(DisasContext *ctx, arg_EMUL_ir *a) /* emul dsp[rs], rd */ static bool trans_EMUL_mr(DisasContext *ctx, arg_EMUL_mr *a) { - prt("emul\t"); - operand(ctx, a->ld, a->mi, a->rs, a->rd); + prt_ldmi(ctx, "emul", a->ld, a->mi, a->rs, a->rd); return true; } @@ -712,8 +700,7 @@ static bool trans_EMULU_ir(DisasContext *ctx, arg_EMULU_ir *a) /* emulu dsp[rs], rd */ static bool trans_EMULU_mr(DisasContext *ctx, arg_EMULU_mr *a) { - prt("emulu\t"); - operand(ctx, a->ld, a->mi, a->rs, a->rd); + prt_ldmi(ctx, "emulu", a->ld, a->mi, a->rs, a->rd); return true; } @@ -728,8 +715,7 @@ static bool trans_DIV_ir(DisasContext *ctx, arg_DIV_ir *a) /* div dsp[rs], rd */ static bool trans_DIV_mr(DisasContext *ctx, arg_DIV_mr *a) { - prt("div\t"); - operand(ctx, a->ld, a->mi, a->rs, a->rd); + prt_ldmi(ctx, "div", a->ld, a->mi, a->rs, a->rd); return true; } @@ -744,8 +730,7 @@ static bool trans_DIVU_ir(DisasContext *ctx, arg_DIVU_ir *a) /* divu dsp[rs], rd */ static bool trans_DIVU_mr(DisasContext *ctx, arg_DIVU_mr *a) { - prt("divu\t"); - operand(ctx, a->ld, a->mi, a->rs, a->rd); + prt_ldmi(ctx, "divu", a->ld, a->mi, a->rs, a->rd); return true; } @@ -1089,8 +1074,7 @@ static bool trans_FADD_ir(DisasContext *ctx, arg_FADD_ir *a) /* fadd rs, rd */ static bool trans_FADD_mr(DisasContext *ctx, arg_FADD_mr *a) { - prt("fadd\t"); - operand(ctx, a->ld, RX_IM_LONG, a->rs, a->rd); + prt_ldmi(ctx, "fadd", a->ld, RX_IM_LONG, a->rs, a->rd); return true; } @@ -1105,8 +1089,7 @@ static bool trans_FCMP_ir(DisasContext *ctx, arg_FCMP_ir *a) /* fcmp rs, rd */ static bool trans_FCMP_mr(DisasContext *ctx, arg_FCMP_mr *a) { - prt("fcmp\t"); - operand(ctx, a->ld, RX_IM_LONG, a->rs, a->rd); + prt_ldmi(ctx, "fcmp", a->ld, RX_IM_LONG, a->rs, a->rd); return true; } @@ -1121,8 +1104,7 @@ static bool trans_FSUB_ir(DisasContext *ctx, arg_FSUB_ir *a) /* fsub rs, rd */ static bool trans_FSUB_mr(DisasContext *ctx, arg_FSUB_mr *a) { - prt("fsub\t"); - operand(ctx, a->ld, RX_IM_LONG, a->rs, a->rd); + prt_ldmi(ctx, "fsub", a->ld, RX_IM_LONG, a->rs, a->rd); return true; } @@ -1130,8 +1112,7 @@ static bool trans_FSUB_mr(DisasContext *ctx, arg_FSUB_mr *a) /* ftoi rs, rd */ static bool trans_FTOI(DisasContext *ctx, arg_FTOI *a) { - prt("ftoi\t"); - operand(ctx, a->ld, RX_IM_LONG, a->rs, a->rd); + prt_ldmi(ctx, "ftoi", a->ld, RX_IM_LONG, a->rs, a->rd); return true; } @@ -1146,8 +1127,7 @@ static bool trans_FMUL_ir(DisasContext *ctx, arg_FMUL_ir *a) /* fmul rs, rd */ static bool trans_FMUL_mr(DisasContext *ctx, arg_FMUL_mr *a) { - prt("fmul\t"); - operand(ctx, a->ld, RX_IM_LONG, a->rs, a->rd); + prt_ldmi(ctx, "fmul", a->ld, RX_IM_LONG, a->rs, a->rd); return true; } @@ -1162,8 +1142,7 @@ static bool trans_FDIV_ir(DisasContext *ctx, arg_FDIV_ir *a) /* fdiv rs, rd */ static bool trans_FDIV_mr(DisasContext *ctx, arg_FDIV_mr *a) { - prt("fdiv\t"); - operand(ctx, a->ld, RX_IM_LONG, a->rs, a->rd); + prt_ldmi(ctx, "fdiv", a->ld, RX_IM_LONG, a->rs, a->rd); return true; } @@ -1171,8 +1150,7 @@ static bool trans_FDIV_mr(DisasContext *ctx, arg_FDIV_mr *a) /* round rs, rd */ static bool trans_ROUND(DisasContext *ctx, arg_ROUND *a) { - prt("round\t"); - operand(ctx, a->ld, RX_IM_LONG, a->rs, a->rd); + prt_ldmi(ctx, "round", a->ld, RX_IM_LONG, a->rs, a->rd); return true; } @@ -1180,8 +1158,7 @@ static bool trans_ROUND(DisasContext *ctx, arg_ROUND *a) /* itof dsp[rs], rd */ static bool trans_ITOF(DisasContext *ctx, arg_ITOF *a) { - prt("itof\t"); - operand(ctx, a->ld, RX_IM_LONG, a->rs, a->rd); + prt_ldmi(ctx, "itof", a->ld, RX_IM_LONG, a->rs, a->rd); return true; } From patchwork Fri Jun 7 09:11:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Yoshinori Sato X-Patchwork-Id: 166090 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp392718ili; Fri, 7 Jun 2019 02:22:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqyjBo8nM8Hxb286xbI+x6aBJjLVh3rxREAW+bi+B09Z6MqHvRjR2h6QPwEFu/5Wc79sCqwL X-Received: by 2002:a37:a86:: with SMTP id 128mr23248181qkk.169.1559899365091; Fri, 07 Jun 2019 02:22:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559899365; cv=none; d=google.com; s=arc-20160816; b=Zqu4BTtRdZGpa5hNzm9Mmhcf5pAcpnP2rbW4EpLfb7TgHwcnKUAtmtIVR5fsH14D4I Yo3NqqwMUQcPgnA5Dw9AzwXj6UQYzEGqz1kKmY+9LJeGLDAt3Vxl6ymcYDM9bPD49vxJ mCjVqZoV8UY8IVHl5K5cZSmTlrsclZFkcCPhzFh9pyf6Agd5bEZM5zxBaDmKvHOgXd4s 98TR2fYYcO14JC1pVggvotmNrhSn2yQF74LpF15xXw9aEinI19EcK/JFZvHBdQKzAbyG KXGIqLmoZkn57JDjANj6JmzQgXEjSXoERdam9O0DPxiGLV4JXLqo4U0sDoHs0XiS208t 90qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:to:from; bh=8SKps57bKQ5Zr7NmncoGCauYMVVwE0Ljvsz5DfOK444=; b=ZJ8rkCUKMT+iB+aoYi3DX4+gmlC4ZlxVIUuaUmZtcWO7O+bgU+zIqI80XAVC6vtg2b WrvovkU3vLrXvE+m2j+38Ng1xBXALiwNPATnrFUFbqnaexU5Pw667x+gLrHpweqffDQ3 gtyGeWCaXcO8HsNQNSOmPsRsDo8z11AF4E3BylIvK8OXGW4UbLDNvjujv+EZKxS2uM0X KR9BL66o57D4BdGi3UR5sFv4xejfxgQfz7f3lHlRxc+Pm5U5PRhSqBdgF6xaibDO6c3n NwX0bB4cAVwV2C77KaDgj5smppLMSIy/E1+3vSOkTRDh8c5v14+K98tzzQ5vEqvqpMx5 w0Jg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.47]) by mx.google.com with ESMTPS id z128si350489qke.46.2019.06.07.02.22.45 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 07 Jun 2019 02:22:45 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) client-ip=209.51.188.47; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:47428 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZB5A-00083L-Lw for patch@linaro.org; Fri, 07 Jun 2019 05:22:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41420) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZAuT-0000sM-Cu for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hZAuP-0002w4-9A for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:41 -0400 Received: from mail02.asahi-net.or.jp ([202.224.55.14]:41550) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hZAuO-0002r0-QV for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:37 -0400 Received: from h61-195-96-97.vps.ablenet.jp (h61-195-96-97.ablenetvps.ne.jp [61.195.96.97]) (Authenticated sender: PQ4Y-STU) by mail02.asahi-net.or.jp (Postfix) with ESMTPA id BE45E4180B; Fri, 7 Jun 2019 18:11:31 +0900 (JST) Received: from yo-satoh-debian.localdomain (ZM005235.ppp.dion.ne.jp [222.8.5.235]) by h61-195-96-97.vps.ablenet.jp (Postfix) with ESMTPSA id 778A8240086; Fri, 7 Jun 2019 18:11:31 +0900 (JST) From: Yoshinori Sato To: qemu-devel@nongnu.org Date: Fri, 7 Jun 2019 18:11:12 +0900 Message-Id: <20190607091116.49044-21-ysato@users.sourceforge.jp> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190607091116.49044-1-ysato@users.sourceforge.jp> References: <20190607091116.49044-1-ysato@users.sourceforge.jp> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 202.224.55.14 Subject: [Qemu-devel] [PATCH v17 20/24] target/rx: Use prt_ldmi for XCHG_mr disassembly 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: peter.maydell@linaro.org, Richard Henderson , Yoshinori Sato , philmd@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson Note that the ld == 3 case handled by prt_ldmi is decoded as XCHG_rr and cannot appear here. Reviewed-by: Yoshinori Sato Signed-off-by: Richard Henderson Signed-off-by: Yoshinori Sato --- target/rx/disas.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) -- 2.11.0 Reviewed-by: Philippe Mathieu-Daudé diff --git a/target/rx/disas.c b/target/rx/disas.c index 515b365528..db10385fd0 100644 --- a/target/rx/disas.c +++ b/target/rx/disas.c @@ -366,13 +366,7 @@ static bool trans_XCHG_rr(DisasContext *ctx, arg_XCHG_rr *a) /* xchg dsp[rs].,rd */ static bool trans_XCHG_mr(DisasContext *ctx, arg_XCHG_mr *a) { - static const char msize[][4] = { - "b", "w", "l", "ub", "uw", - }; - char dsp[8]; - - rx_index_addr(ctx, dsp, a->ld, a->mi); - prt("xchg\t%s[r%d].%s, r%d", dsp, a->rs, msize[a->mi], a->rd); + prt_ldmi(ctx, "xchg", a->ld, a->mi, a->rs, a->rd); return true; } From patchwork Fri Jun 7 09:11:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Yoshinori Sato X-Patchwork-Id: 166101 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp413854ili; Fri, 7 Jun 2019 02:47:36 -0700 (PDT) X-Google-Smtp-Source: APXvYqwF0fcfEg2pTPRwtTOLBAk7PVlQSAqscK9wd1DpD3um6Q9LVnYFcCaq56Un6Nh01AVUR16S X-Received: by 2002:ae9:c106:: with SMTP id z6mr23288979qki.285.1559900856343; Fri, 07 Jun 2019 02:47:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559900856; cv=none; d=google.com; s=arc-20160816; b=D/tErcSJOdqvGdIEY8syCfZ4+KU5qHvO56O/hu00CqeLW1lRQqZNEe4Y2IOEPXQh+l bN3mVoeMcftNi1Yo9mLYxiMGVE27cjDKhX6e8jJFZ5cIMeuxxp6zTzxg/2XQ1XekKtgw NUBwS0YHzwGcz8YgdqC7XisujLPPY3MjXNNRT6ECBIn9ol/ptPSs/NJRMDFg6gIcDxx/ JawiCZDKNxw8FZbUZN8R5K9pKucWGdxVdH4PKPzY/qo7mrAiMz+AuimTORuhQI6xJuPx U/8CcrVGxt28m0icZo7o80wEY4Dk8gP5My1vfEMKdTezETPOvKCxQE2q9c/m31sT/Ul+ bwsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:to:from; bh=94ePjzVeAmHDojj65KViYUvqOlSXbA6LkVeT4KF7/J4=; b=BM5tWh5Bqs7jTsEpXMHqD/pq82yu1680bawfX+0BXFBvKx4CzapYPFQE38DrC3U8zk VH5YDmnJMVNStOx/V1l1vf8oak6Hgc2kHXDpBiCfEmTWoPJEgZGewc6DqO7BzIxfyNR9 gMyAm59wKzN4zenBgVQHu6Zx7jV9SpEJAHNMqVl/BtqkPRzzkBXTnN67ki9Bu6WXX3Ti Xn9V1eOqOA4QbQH/4HwRMoqRkAYJVRTTb7HsRiJmrLomHR7sSE1MjRKX1CjKwrbdWwZu 9+AvFW6cv4XSp7XDo4vjpnH39TQ033FpbyKZL3uoEYOW6PZYnQFingP34cP/292BnqOe xuXQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.47]) by mx.google.com with ESMTPS id o65si133544qkd.172.2019.06.07.02.47.36 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 07 Jun 2019 02:47:36 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) client-ip=209.51.188.47; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:47614 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZBTD-00041q-TT for patch@linaro.org; Fri, 07 Jun 2019 05:47:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41490) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZAuV-0000xp-F4 for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hZAuP-0002wm-FS for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:43 -0400 Received: from mail02.asahi-net.or.jp ([202.224.55.14]:41551) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hZAuO-0002qz-T0 for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:37 -0400 Received: from h61-195-96-97.vps.ablenet.jp (h61-195-96-97.ablenetvps.ne.jp [61.195.96.97]) (Authenticated sender: PQ4Y-STU) by mail02.asahi-net.or.jp (Postfix) with ESMTPA id 098BD41900; Fri, 7 Jun 2019 18:11:32 +0900 (JST) Received: from yo-satoh-debian.localdomain (ZM005235.ppp.dion.ne.jp [222.8.5.235]) by h61-195-96-97.vps.ablenet.jp (Postfix) with ESMTPSA id B72A0240085; Fri, 7 Jun 2019 18:11:31 +0900 (JST) From: Yoshinori Sato To: qemu-devel@nongnu.org Date: Fri, 7 Jun 2019 18:11:13 +0900 Message-Id: <20190607091116.49044-22-ysato@users.sourceforge.jp> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190607091116.49044-1-ysato@users.sourceforge.jp> References: <20190607091116.49044-1-ysato@users.sourceforge.jp> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 202.224.55.14 Subject: [Qemu-devel] [PATCH v17 21/24] target/rx: Emit all disassembly in one prt() 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: peter.maydell@linaro.org, Richard Henderson , Yoshinori Sato , philmd@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson Many of the multi-part prints have been eliminated by previous patches. Eliminate the rest of them. Reviewed-by: Yoshinori Sato Signed-off-by: Richard Henderson Signed-off-by: Yoshinori Sato --- target/rx/disas.c | 75 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 39 insertions(+), 36 deletions(-) -- 2.11.0 Reviewed-by: Philippe Mathieu-Daudé diff --git a/target/rx/disas.c b/target/rx/disas.c index db10385fd0..ebc1a44249 100644 --- a/target/rx/disas.c +++ b/target/rx/disas.c @@ -228,24 +228,21 @@ static bool trans_MOV_ra(DisasContext *ctx, arg_MOV_ra *a) /* mov.[bwl] rs,rd */ static bool trans_MOV_mm(DisasContext *ctx, arg_MOV_mm *a) { - char dspd[8], dsps[8]; + char dspd[8], dsps[8], szc = size[a->sz]; - prt("mov.%c\t", size[a->sz]); if (a->lds == 3 && a->ldd == 3) { /* mov.[bwl] rs,rd */ - prt("r%d, r%d", a->rs, a->rd); - return true; - } - if (a->lds == 3) { + prt("mov.%c\tr%d, r%d", szc, a->rs, a->rd); + } else if (a->lds == 3) { rx_index_addr(ctx, dspd, a->ldd, a->sz); - prt("r%d, %s[r%d]", a->rs, dspd, a->rd); + prt("mov.%c\tr%d, %s[r%d]", szc, a->rs, dspd, a->rd); } else if (a->ldd == 3) { rx_index_addr(ctx, dsps, a->lds, a->sz); - prt("%s[r%d], r%d", dsps, a->rs, a->rd); + prt("mov.%c\t%s[r%d], r%d", szc, dsps, a->rs, a->rd); } else { rx_index_addr(ctx, dsps, a->lds, a->sz); rx_index_addr(ctx, dspd, a->ldd, a->sz); - prt("%s[r%d], %s[r%d]", dsps, a->rs, dspd, a->rd); + prt("mov.%c\t%s[r%d], %s[r%d]", szc, dsps, a->rs, dspd, a->rd); } return true; } @@ -254,8 +251,11 @@ static bool trans_MOV_mm(DisasContext *ctx, arg_MOV_mm *a) /* mov.[bwl] rs,[-rd] */ static bool trans_MOV_rp(DisasContext *ctx, arg_MOV_rp *a) { - prt("mov.%c\tr%d, ", size[a->sz], a->rs); - prt((a->ad == 0) ? "[r%d+]" : "[-r%d]", a->rd); + if (a->ad) { + prt("mov.%c\tr%d, [-r%d]", size[a->sz], a->rs, a->rd); + } else { + prt("mov.%c\tr%d, [r%d+]", size[a->sz], a->rs, a->rd); + } return true; } @@ -263,9 +263,11 @@ static bool trans_MOV_rp(DisasContext *ctx, arg_MOV_rp *a) /* mov.[bwl] [-rd],rs */ static bool trans_MOV_pr(DisasContext *ctx, arg_MOV_pr *a) { - prt("mov.%c\t", size[a->sz]); - prt((a->ad == 0) ? "[r%d+]" : "[-r%d]", a->rd); - prt(", r%d", a->rs); + if (a->ad) { + prt("mov.%c\t[-r%d], r%d", size[a->sz], a->rd, a->rs); + } else { + prt("mov.%c\t[r%d+], r%d", size[a->sz], a->rd, a->rs); + } return true; } @@ -299,9 +301,11 @@ static bool trans_MOVU_ar(DisasContext *ctx, arg_MOVU_ar *a) /* movu.[bw] [-rs],rd */ static bool trans_MOVU_pr(DisasContext *ctx, arg_MOVU_pr *a) { - prt("movu.%c\t", size[a->sz]); - prt((a->ad == 0) ? "[r%d+]" : "[-r%d]", a->rd); - prt(", r%d", a->rs); + if (a->ad) { + prt("movu.%c\t[-r%d], r%d", size[a->sz], a->rd, a->rs); + } else { + prt("movu.%c\t[r%d+], r%d", size[a->sz], a->rd, a->rs); + } return true; } @@ -478,11 +482,11 @@ static bool trans_TST_mr(DisasContext *ctx, arg_TST_mr *a) /* not rs, rd */ static bool trans_NOT_rr(DisasContext *ctx, arg_NOT_rr *a) { - prt("not\t"); if (a->rs != a->rd) { - prt("r%d, ", a->rs); + prt("not\tr%d, r%d", a->rs, a->rd); + } else { + prt("not\tr%d", a->rs); } - prt("r%d", a->rd); return true; } @@ -490,11 +494,11 @@ static bool trans_NOT_rr(DisasContext *ctx, arg_NOT_rr *a) /* neg rs, rd */ static bool trans_NEG_rr(DisasContext *ctx, arg_NEG_rr *a) { - prt("neg\t"); if (a->rs != a->rd) { - prt("r%d, ", a->rs); + prt("neg\tr%d, r%d", a->rs, a->rd); + } else { + prt("neg\tr%d", a->rs); } - prt("r%d", a->rd); return true; } @@ -606,11 +610,10 @@ static bool trans_SBB_mr(DisasContext *ctx, arg_SBB_mr *a) /* abs rs, rd */ static bool trans_ABS_rr(DisasContext *ctx, arg_ABS_rr *a) { - prt("abs\t"); - if (a->rs == a->rd) { - prt("r%d", a->rd); + if (a->rs != a->rd) { + prt("abs\tr%d, r%d", a->rs, a->rd); } else { - prt("r%d, r%d", a->rs, a->rd); + prt("abs\tr%d", a->rs); } return true; } @@ -733,11 +736,11 @@ static bool trans_DIVU_mr(DisasContext *ctx, arg_DIVU_mr *a) /* shll #imm:5, rs, rd */ static bool trans_SHLL_irr(DisasContext *ctx, arg_SHLL_irr *a) { - prt("shll\t#%d, ", a->imm); if (a->rs2 != a->rd) { - prt("r%d, ", a->rs2); + prt("shll\t#%d, r%d, r%d", a->imm, a->rs2, a->rd); + } else { + prt("shll\t#%d, r%d", a->imm, a->rd); } - prt("r%d", a->rd); return true; } @@ -752,11 +755,11 @@ static bool trans_SHLL_rr(DisasContext *ctx, arg_SHLL_rr *a) /* shar #imm:5, rs, rd */ static bool trans_SHAR_irr(DisasContext *ctx, arg_SHAR_irr *a) { - prt("shar\t#%d,", a->imm); if (a->rs2 != a->rd) { - prt("r%d, ", a->rs2); + prt("shar\t#%d, r%d, r%d", a->imm, a->rs2, a->rd); + } else { + prt("shar\t#%d, r%d", a->imm, a->rd); } - prt("r%d", a->rd); return true; } @@ -771,11 +774,11 @@ static bool trans_SHAR_rr(DisasContext *ctx, arg_SHAR_rr *a) /* shlr #imm:5, rs, rd */ static bool trans_SHLR_irr(DisasContext *ctx, arg_SHLR_irr *a) { - prt("shlr\t#%d, ", a->imm); if (a->rs2 != a->rd) { - prt("r%d, ", a->rs2); + prt("shlr\t#%d, r%d, r%d", a->imm, a->rs2, a->rd); + } else { + prt("shlr\t#%d, r%d", a->imm, a->rd); } - prt("r%d", a->rd); return true; } From patchwork Fri Jun 7 09:11:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Yoshinori Sato X-Patchwork-Id: 166100 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp411024ili; Fri, 7 Jun 2019 02:43:57 -0700 (PDT) X-Google-Smtp-Source: APXvYqzX/PAxUht2oXLL8f6TeLIGu5OvfuRJi//5O/3dV3BX67tAeUof3iiHBszxghNs5wDwBZZw X-Received: by 2002:ac8:35f6:: with SMTP id l51mr44730700qtb.136.1559900637013; Fri, 07 Jun 2019 02:43:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559900637; cv=none; d=google.com; s=arc-20160816; b=WBcble5/8hr/gdKziM8ikdJo8i9qoci9xfR5aG7GRnFWshrsUJmIXBFcGm8tQlcAe3 cfy12bT9WqlVACjDmlHDUbIoMWimYPejO/8ONVmOGymX6cpc2uwBoZzQizmZ4OGVd/w/ m1Jicn2O9or6hto6Wq2Xkg4lGZPknf0KyzXN68gPcjl8f6EfKXfRaVAfOzaEF6QC41X2 YRD3jtb0Dc6xJvasBTCWIgeYS9ldlOBbgeazEBMTh/sRfffoS89DQm9MkRkGjvipuBAe QJI6+mquUnC92Cks7byVUZPstOGcKCEoAURW7PQ7S31r1o2Gp34RlGztKIs2oV6VFwj5 xFnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:to:from; bh=4uzymys8fGvjl98YmnLqUW4C0DyiS1qHNUyXVDSG6A0=; b=ROhFuH87fLqxZUZUAXeNw+Iav4rTWKdmLU/QPzQytjLcxgJQuIlmVxcBlDN0+R0MqC sTsUNWwBZoURu3uOnqZ5mYUJnli8yCDwUOpEk1UNKp3NAKByrRF3zPlMFEDCBIZto+tR xYhuakzkV4/6qDVO0Al0ZjFU7mrcJRdwAS1mWsk2/epEdJlgUqXeukzjJxEmkqV8qZ3J LD3DkQHsLVmMedJiDWW1ZnQVFBtVvHAzIT5Jn5Ha2/69RT34N+g+8PQlXIsuy+ni9v5h 8phkOfzPvlCoOGhK0FV6P/FfoS8ARa6FiKY6XUiD2BfuT5S6YVueg0q5TwPqPx2WXSL+ /2Sw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.47]) by mx.google.com with ESMTPS id d9si844791qvj.103.2019.06.07.02.43.56 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 07 Jun 2019 02:43:57 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) client-ip=209.51.188.47; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:47582 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZBPg-0000bG-Je for patch@linaro.org; Fri, 07 Jun 2019 05:43:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41415) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZAuT-0000rs-7v for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hZAuP-0002vF-3H for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:41 -0400 Received: from mail02.asahi-net.or.jp ([202.224.55.14]:41552) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hZAuO-0002r5-L4 for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:36 -0400 Received: from h61-195-96-97.vps.ablenet.jp (h61-195-96-97.ablenetvps.ne.jp [61.195.96.97]) (Authenticated sender: PQ4Y-STU) by mail02.asahi-net.or.jp (Postfix) with ESMTPA id 4FBD94181B; Fri, 7 Jun 2019 18:11:32 +0900 (JST) Received: from yo-satoh-debian.localdomain (ZM005235.ppp.dion.ne.jp [222.8.5.235]) by h61-195-96-97.vps.ablenet.jp (Postfix) with ESMTPSA id 08795240086; Fri, 7 Jun 2019 18:11:32 +0900 (JST) From: Yoshinori Sato To: qemu-devel@nongnu.org Date: Fri, 7 Jun 2019 18:11:14 +0900 Message-Id: <20190607091116.49044-23-ysato@users.sourceforge.jp> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190607091116.49044-1-ysato@users.sourceforge.jp> References: <20190607091116.49044-1-ysato@users.sourceforge.jp> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 202.224.55.14 Subject: [Qemu-devel] [PATCH v17 22/24] target/rx: Collect all bytes during disassembly 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: peter.maydell@linaro.org, Richard Henderson , Yoshinori Sato , philmd@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson Collected, to be used in the next patch. Reviewed-by: Yoshinori Sato Signed-off-by: Richard Henderson Signed-off-by: Yoshinori Sato --- target/rx/disas.c | 62 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 42 insertions(+), 20 deletions(-) -- 2.11.0 Reviewed-by: Philippe Mathieu-Daudé diff --git a/target/rx/disas.c b/target/rx/disas.c index ebc1a44249..5a32a87534 100644 --- a/target/rx/disas.c +++ b/target/rx/disas.c @@ -25,43 +25,59 @@ typedef struct DisasContext { disassemble_info *dis; uint32_t addr; uint32_t pc; + uint8_t len; + uint8_t bytes[8]; } DisasContext; static uint32_t decode_load_bytes(DisasContext *ctx, uint32_t insn, - int i, int n) + int i, int n) { - bfd_byte buf; + uint32_t addr = ctx->addr; + + g_assert(ctx->len == i); + g_assert(n <= ARRAY_SIZE(ctx->bytes)); + while (++i <= n) { - ctx->dis->read_memory_func(ctx->addr++, &buf, 1, ctx->dis); - insn |= buf << (32 - i * 8); + ctx->dis->read_memory_func(addr++, &ctx->bytes[i - 1], 1, ctx->dis); + insn |= ctx->bytes[i - 1] << (32 - i * 8); } + ctx->addr = addr; + ctx->len = n; + return insn; } static int32_t li(DisasContext *ctx, int sz) { - int32_t addr; - bfd_byte buf[4]; - addr = ctx->addr; + uint32_t addr = ctx->addr; + uintptr_t len = ctx->len; switch (sz) { case 1: + g_assert(len + 1 <= ARRAY_SIZE(ctx->bytes)); ctx->addr += 1; - ctx->dis->read_memory_func(addr, buf, 1, ctx->dis); - return (int8_t)buf[0]; + ctx->len += 1; + ctx->dis->read_memory_func(addr, ctx->bytes + len, 1, ctx->dis); + return (int8_t)ctx->bytes[len]; case 2: + g_assert(len + 2 <= ARRAY_SIZE(ctx->bytes)); ctx->addr += 2; - ctx->dis->read_memory_func(addr, buf, 2, ctx->dis); - return ldsw_le_p(buf); + ctx->len += 2; + ctx->dis->read_memory_func(addr, ctx->bytes + len, 2, ctx->dis); + return ldsw_le_p(ctx->bytes + len); case 3: + g_assert(len + 3 <= ARRAY_SIZE(ctx->bytes)); ctx->addr += 3; - ctx->dis->read_memory_func(addr, buf, 3, ctx->dis); - return (int8_t)buf[2] << 16 | lduw_le_p(buf); + ctx->len += 3; + ctx->dis->read_memory_func(addr, ctx->bytes + len, 3, ctx->dis); + return (int8_t)ctx->bytes[len + 2] << 16 | lduw_le_p(ctx->bytes + len); case 0: + g_assert(len + 4 <= ARRAY_SIZE(ctx->bytes)); ctx->addr += 4; - ctx->dis->read_memory_func(addr, buf, 4, ctx->dis); - return ldl_le_p(buf); + ctx->len += 4; + ctx->dis->read_memory_func(addr, ctx->bytes + len, 4, ctx->dis); + return ldl_le_p(ctx->bytes + len); default: g_assert_not_reached(); } @@ -110,7 +126,7 @@ static const char psw[] = { static void rx_index_addr(DisasContext *ctx, char out[8], int ld, int mi) { uint32_t addr = ctx->addr; - uint8_t buf[2]; + uintptr_t len = ctx->len; uint16_t dsp; switch (ld) { @@ -119,14 +135,18 @@ static void rx_index_addr(DisasContext *ctx, char out[8], int ld, int mi) out[0] = '\0'; return; case 1: + g_assert(len + 1 <= ARRAY_SIZE(ctx->bytes)); ctx->addr += 1; - ctx->dis->read_memory_func(addr, buf, 1, ctx->dis); - dsp = buf[0]; + ctx->len += 1; + ctx->dis->read_memory_func(addr, ctx->bytes + len, 1, ctx->dis); + dsp = ctx->bytes[len]; break; case 2: + g_assert(len + 2 <= ARRAY_SIZE(ctx->bytes)); ctx->addr += 2; - ctx->dis->read_memory_func(addr, buf, 2, ctx->dis); - dsp = lduw_le_p(buf); + ctx->len += 2; + ctx->dis->read_memory_func(addr, ctx->bytes + len, 2, ctx->dis); + dsp = lduw_le_p(ctx->bytes + len); break; default: g_assert_not_reached(); @@ -1392,8 +1412,10 @@ int print_insn_rx(bfd_vma addr, disassemble_info *dis) DisasContext ctx; uint32_t insn; int i; + ctx.dis = dis; ctx.pc = ctx.addr = addr; + ctx.len = 0; insn = decode_load(&ctx); if (!decode(&ctx, insn)) { From patchwork Fri Jun 7 09:11:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Yoshinori Sato X-Patchwork-Id: 166094 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp397466ili; Fri, 7 Jun 2019 02:28:27 -0700 (PDT) X-Google-Smtp-Source: APXvYqw1jOrt8/k/y4DNnhfF2aQQ0+gbsrwaTQCCZFZ0S/eKd6LAecmymSN2LGu39O/TSzRjpWeD X-Received: by 2002:ac8:270e:: with SMTP id g14mr43455814qtg.65.1559899707007; Fri, 07 Jun 2019 02:28:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559899707; cv=none; d=google.com; s=arc-20160816; b=y7BbpCMSYEg7ZfevF1244TLQkr0FBo+Vfol2sbVzl80f9Ft9qnVCeiU0ZKBl6QwTHC 4iGn2Nu9h+EyEvM4oFdNd6W714v4m/9XhknOLqJWQTq40zqZFP8GYfzeQ7NYh0+YQpT0 PluyUmEcN0Tg60Tg93SFQ2YM2uMjElecGBkz+CNit7y4IsLFmfEvprKAqLF5GPzC1K49 6DslxjLuLY/IEZUuBjZTNSlajPc7SzxDOEbhD9k8Hy9Tupu2Pc89cHRuTEWPvZQ7owGC 11MxCtlMgauiqewjAWJLViEdzkpvjhCtMGzpmj7DPT//ikQdvjCHmL/lreWql3u6PlP4 8cyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:to:from; bh=yOSdJXh/lu3G+IM5vi401H4qTl9BzDRi1axsmnV43ZI=; b=loq8u8gTNsKDBuwhKmqD02Phiwikss3W9uEp4YKKhF5i1blJjv2KqKepNGKtus6711 rZb4zE16eIynxlc0v2LJjg1Jbdinl5EsrsbSNfDXPgku0YUd9R85VnL6JwgEqDe2Jr27 dXBfO4jJWnZY/oMQgJ27s9OH0VIl/wo1rodMw4S3Pj/LSNKKdopbEi6OgAMbSRntpe1C h+2swFE4YXHXAt6abIMtd4SnZxsPwK4gRi946p7lRXxswgzSjdO7rGzpW2UXt2gfRmyW SDCFIfXNYrWOi33RbuEJ1akevgKvQ2qET4Kt+MAwZNEAbsroDZGwiwifNFZBQwNgdqA2 Jdmg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.47]) by mx.google.com with ESMTPS id x16si833861qvc.167.2019.06.07.02.28.26 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 07 Jun 2019 02:28:26 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) client-ip=209.51.188.47; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.47 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:47476 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZBAg-0005DD-GQ for patch@linaro.org; Fri, 07 Jun 2019 05:28:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41426) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hZAuT-0000ss-Ia for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hZAuP-0002x5-Gy for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:41 -0400 Received: from mail02.asahi-net.or.jp ([202.224.55.14]:41553) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hZAuO-0002rE-UZ for qemu-devel@nongnu.org; Fri, 07 Jun 2019 05:11:37 -0400 Received: from h61-195-96-97.vps.ablenet.jp (h61-195-96-97.ablenetvps.ne.jp [61.195.96.97]) (Authenticated sender: PQ4Y-STU) by mail02.asahi-net.or.jp (Postfix) with ESMTPA id 8E9F641B48; Fri, 7 Jun 2019 18:11:32 +0900 (JST) Received: from yo-satoh-debian.localdomain (ZM005235.ppp.dion.ne.jp [222.8.5.235]) by h61-195-96-97.vps.ablenet.jp (Postfix) with ESMTPSA id 4CEFD240085; Fri, 7 Jun 2019 18:11:32 +0900 (JST) From: Yoshinori Sato To: qemu-devel@nongnu.org Date: Fri, 7 Jun 2019 18:11:15 +0900 Message-Id: <20190607091116.49044-24-ysato@users.sourceforge.jp> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190607091116.49044-1-ysato@users.sourceforge.jp> References: <20190607091116.49044-1-ysato@users.sourceforge.jp> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 202.224.55.14 Subject: [Qemu-devel] [PATCH v17 23/24] target/rx: Dump bytes for each insn during disassembly 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: peter.maydell@linaro.org, Richard Henderson , Yoshinori Sato , philmd@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Richard Henderson There are so many different forms of each RX instruction that it will be very useful to be able to look at the bytes to see on which path a bug may lie. Reviewed-by: Yoshinori Sato Signed-off-by: Richard Henderson Signed-off-by: Yoshinori Sato --- target/rx/disas.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) -- 2.11.0 Reviewed-by: Philippe Mathieu-Daudé diff --git a/target/rx/disas.c b/target/rx/disas.c index 5a32a87534..d73b53db44 100644 --- a/target/rx/disas.c +++ b/target/rx/disas.c @@ -102,7 +102,21 @@ static int bdsp_s(DisasContext *ctx, int d) /* Include the auto-generated decoder. */ #include "decode.inc.c" -#define prt(...) (ctx->dis->fprintf_func)((ctx->dis->stream), __VA_ARGS__) +static void dump_bytes(DisasContext *ctx) +{ + int i, len = ctx->len; + + for (i = 0; i < len; ++i) { + ctx->dis->fprintf_func(ctx->dis->stream, "%02x ", ctx->bytes[i]); + } + ctx->dis->fprintf_func(ctx->dis->stream, "%*c", (8 - i) * 3, '\t'); +} + +#define prt(...) \ + do { \ + dump_bytes(ctx); \ + ctx->dis->fprintf_func(ctx->dis->stream, __VA_ARGS__); \ + } while (0) #define RX_MEMORY_BYTE 0 #define RX_MEMORY_WORD 1