From nobody Thu May 2 07:10:22 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1558624372; cv=none; d=zoho.com; s=zohoarc; b=mw0you70q/8jndt4aLQj52CystFbpmUIrGYSmn27mOZOhoRgzByEuSm7UngxQZw3m+58k1Y3B/x3PvxxfnnJQmowslDl5QsrsETX0nqeYJrqXeD7fQB8OStXHmOQ0g9t4mjbWYkqsLbuMCsdt6V0OKMvJsf3K/gNVvc39PrydT8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558624372; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=pbfDs442BAd/I+oAZpTGln0e5aK1o/cuCpLJVKNslr4=; b=D0zu4F+1amDzzpO+5/DawlYZaeUiFqubmQo5d0a8xfe4VZYF+QapCfQmucKyL8HtHv3YuQobsgd2JuUFl6zrG9TQCNigCMWsga15OxZXko2MumLwMNT2pOktjKpywkh0+2tDkdLTPeMDuTi2KCDDGcJ3tRVIlPjTMIkbOcg2EVA= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 155862437289412.671900082380603; Thu, 23 May 2019 08:12:52 -0700 (PDT) Received: from localhost ([127.0.0.1]:38571 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTpOg-0002at-Kc for importer@patchew.org; Thu, 23 May 2019 11:12:46 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39643) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTpKE-0007Og-Oh for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hTpKD-0001oc-B9 for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:10 -0400 Received: from mail-ua1-x942.google.com ([2607:f8b0:4864:20::942]:41740) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hTpKD-0001oP-60 for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:09 -0400 Received: by mail-ua1-x942.google.com with SMTP id l14so2294504uah.8 for ; Thu, 23 May 2019 08:08:09 -0700 (PDT) Received: from localhost.localdomain (ip-173-130-215-183.orldfl.spcsdns.net. [173.130.215.183]) by smtp.gmail.com with ESMTPSA id p70sm4227462vsd.25.2019.05.23.08.08.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 May 2019 08:08:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=pbfDs442BAd/I+oAZpTGln0e5aK1o/cuCpLJVKNslr4=; b=MOCKcND+pVFTWIEX5aL5wPNaOKK5vdCiY2mzXKxLnCsW+6atuxmEdb+M+L90AeuZ3M tyQ1B0hIt2UMDcBjj/RLL/CH5XDY7G5GGs5AVDSVJK7YitFk4ShjCyP2SIPUaKK52M3S FHHBkyzsSZr9IpQP4Ko6BGsT48WOam9xjm1j0e4I2fvKft7Kx9FjKaqHeE/+SnCJDvO9 Z/wLsXmCqmSslPyRoFR7Ei40gMIp5is5dmoUi0Ytzkixe3V3bCFWYEFiRiliMP79pPAN hV2FMqvRrGl/xdnMhI4+oIP82+cbDXxZnUYOYak6Ce15My1P626hbcWA0486kzVuqDH5 XddA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=pbfDs442BAd/I+oAZpTGln0e5aK1o/cuCpLJVKNslr4=; b=NeokEM2eEpflJDz9F0Csd7zq3yciCON3kaBFFxUtWb1Gh3MXhM+/WBoIL0ZAcrAoS0 KM8YcVy3JEvSpf67KxmaKbhFBt7Viobwd7XzA+BJAbap4CSjkv24ceTraNBvBk2etVig eNOr5BX92B4xHTzJx+Rh8Iyw7P4BYGmXF4Xnj/6xww77m5zuVrOub6Rkn6waOK0+0mcG 8fr/FglmY8xrQuRY5oHRODJAXeL5AGl7zMy51wkwvJN9g657THIjzT4PYPo82Q1UEtyV iV49FZS4bERMCxkb30vsmgLJt60jse3O69YrV3e3lWbmq10+sqtPfEe+RuF1qlxU80Tu UPYg== X-Gm-Message-State: APjAAAXb15dY7I7h+UtubkEpzcdXW5tdkGbtTMzaf6MWxgHxEvLx6QYw vtx6q8e/Vap2buHOgKCD7hW5fZ/rHYI= X-Google-Smtp-Source: APXvYqw21BD5QQl/+leuxFyxq/YGFumvZvZjsvbMo8ae3f8af7FFbfQ4XtKL0P8pFvy1Gmu4jxDkjw== X-Received: by 2002:ab0:240b:: with SMTP id f11mr17434851uan.118.1558624088000; Thu, 23 May 2019 08:08:08 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Thu, 23 May 2019 11:07:58 -0400 Message-Id: <20190523150803.31504-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190523150803.31504-1-richard.henderson@linaro.org> References: <20190523150803.31504-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::942 Subject: [Qemu-devel] [PATCH 1/6] target/rx: Disassemble rx_index_addr into a string X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ysato@users.sourceforge.jp Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" We were eliding all zero indexes. It is only ld=3D=3D0 that does not have an index in the instruction. This also allows us to avoid breaking the final print into multiple pieces. Signed-off-by: Richard Henderson Reviewed-by: Yoshinori Sato --- target/rx/disas.c | 154 +++++++++++++++++----------------------------- 1 file changed, 55 insertions(+), 99 deletions(-) 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[] =3D { 'i', 'u', 0, 0, 0, 0, 0, 0, }; =20 -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 =3D ctx->addr; + uint8_t buf[2]; + uint16_t dsp; + switch (ld) { case 0: - return 0; + /* No index; return empty string. */ + out[0] =3D '\0'; + return; case 1: - ctx->dis->read_memory_func(ctx->addr, buf, 1, ctx->dis); ctx->addr +=3D 1; - return ((uint8_t)buf[0]) << size; + ctx->dis->read_memory_func(addr, buf, 1, ctx->dis); + dsp =3D buf[0]; + break; case 2: - ctx->dis->read_memory_func(ctx->addr, buf, 2, ctx->dis); ctx->addr +=3D 2; - return lduw_le_p(buf) << size; + ctx->dis->read_memory_func(addr, buf, 2, ctx->dis); + dsp =3D lduw_le_p(buf); + break; + default: + g_assert_not_reached(); } - g_assert_not_reached(); + + sprintf(out, "%u", dsp << (mi < 3 ? mi : 4 - mi)); } =20 static void operand(DisasContext *ctx, int ld, int mi, int rs, int rd) { - int dsp; static const char sizes[][4] =3D {".b", ".w", ".l", ".uw", ".ub"}; + char dsp[8]; + if (ld < 3) { - switch (mi) { - case 4: - /* dsp[rs].ub */ - dsp =3D rx_index_addr(ld, RX_MEMORY_BYTE, ctx); - break; - case 3: - /* dsp[rs].uw */ - dsp =3D rx_index_addr(ld, RX_MEMORY_WORD, ctx); - break; - default: - /* dsp[rs].b */ - /* dsp[rs].w */ - /* dsp[rs].l */ - dsp =3D 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]; =20 prt("mov.%c\t", size[a->sz]); if (a->lds =3D=3D 3 && a->ldd =3D=3D 3) { @@ -244,29 +237,15 @@ static bool trans_MOV_mm(DisasContext *ctx, arg_MOV_m= m *a) return true; } if (a->lds =3D=3D 3) { - prt("r%d, ", a->rd); - dsp =3D 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 =3D=3D 3) { - dsp =3D 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 =3D rx_index_addr(a->lds, a->sz, ctx); - if (dsp > 0) { - prt("%d", dsp); - } - prt("[r%d], ", a->rs); - dsp =3D 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 =3D 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; } =20 @@ -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] =3D { "b", "w", "l", "ub", "uw", }; + char dsp[8]; =20 - prt("xchg\t"); - dsp =3D 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; } =20 @@ -552,13 +525,10 @@ static bool trans_ADC_rr(DisasContext *ctx, arg_ADC_r= r *a) /* adc dsp[rs], rd */ static bool trans_ADC_mr(DisasContext *ctx, arg_ADC_mr *a) { - int dsp; - prt("adc\t"); - dsp =3D 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; } =20 @@ -1217,25 +1187,17 @@ static bool trans_ITOF(DisasContext *ctx, arg_ITOF = *a) =20 #define BOP_IM(name, reg) \ do { \ - int dsp; \ - prt("b%s\t#%d, ", #name, a->imm); \ - dsp =3D 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) =20 #define BOP_RM(name) \ do { \ - int dsp; \ - prt("b%s\tr%d, ", #name, a->rd); \ - dsp =3D 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) =20 @@ -1346,12 +1308,10 @@ static bool trans_BNOT_ir(DisasContext *ctx, arg_BN= OT_ir *a) /* bmcond #imm, dsp[rd] */ static bool trans_BMCnd_im(DisasContext *ctx, arg_BMCnd_im *a) { - int dsp =3D 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; } =20 @@ -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 =3D 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; } --=20 2.17.1 From nobody Thu May 2 07:10:22 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1558624244; cv=none; d=zoho.com; s=zohoarc; b=hA1b1TUvei37c7NQ/KAbXxjCN0C+TuOJd7H2DuI36eOfKjQj4TNg9flNn23xVfKITTImKLqKZ8V8GcW5ivEnt5zq4MxBHEdQT5qjECEsOJEzSG7EAEM9t6lQH9O/uTV6QSVWDSa4uRLp6BdY/T/F10uU5zdNsiKb+YFa5zrEA28= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558624244; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=rcYn60MuwZW/klSWJb9WN17Hz/i/f31K3Wc/Hup4xgM=; b=freXkMMYn5zmJC0b3lkLeiqB16/FNl29LZ91Pe/fLgWHjd1AxK77aeevw4noj05hY183dOKa63qUqzRAlZb9ArGk1iu9esz0Gl5y3niBwe+NS4a9Jmw/2ZlwuQxENMASsPj2mG1ieEZbT5NNfWtsJjYZqE37KA0A36r0xqPnqHA= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558624244833618.5791451173855; Thu, 23 May 2019 08:10:44 -0700 (PDT) Received: from localhost ([127.0.0.1]:38533 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTpMf-0000Wd-Fr for importer@patchew.org; Thu, 23 May 2019 11:10:41 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39671) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTpKG-0007QA-P2 for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hTpKF-0001qQ-Ax for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:12 -0400 Received: from mail-vs1-xe44.google.com ([2607:f8b0:4864:20::e44]:39535) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hTpKF-0001q4-63 for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:11 -0400 Received: by mail-vs1-xe44.google.com with SMTP id m1so3790870vsr.6 for ; Thu, 23 May 2019 08:08:11 -0700 (PDT) Received: from localhost.localdomain (ip-173-130-215-183.orldfl.spcsdns.net. [173.130.215.183]) by smtp.gmail.com with ESMTPSA id p70sm4227462vsd.25.2019.05.23.08.08.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 May 2019 08:08:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=rcYn60MuwZW/klSWJb9WN17Hz/i/f31K3Wc/Hup4xgM=; b=Hcz47/5Jt+YLzizlrsq/9CkwctgIgU1UOwXtCZZLJ78c9qlYRRt9nfvFZAI/5lWFfE HmRyvw+nT4jl+xAbElwqalw9PO8ulEa5Y3NTlE6r3AVGLmM7w99f8uccdilzPIOR7Itv BvfSoXTluMGMBNpN6qtUX9ZM0z8A58mZ7ezdhjMssBiaF7NP9cIlvP6eOaVKUuLVhehW L01q3w5wSiX/kt9KPrvAq0r4bKR89+VfgjS4qnW2z/FoWqA+x/eEsihJvUN1DwPEM30V FunEO6xYFK6UuVR742WVTx+299mbnGS8VHPrKjHQWAIgETCIorEFxnQB5jONWcULL/+d /24g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=rcYn60MuwZW/klSWJb9WN17Hz/i/f31K3Wc/Hup4xgM=; b=GLh57BIO47EzeIcYSrhEEqiC+uLmrpIGvpyZH8bsP83JjS5xUwu1sCZdK8gUovicfX HhBcNSH3aGNBhCxU1w+RbmXR8X7q1HmgvmyrtQ4T+Plb772iXB2hrdk+yTwueXjNBXeC Wi7Ok3mFi2qGcVT+gj0b9HEB9db2lrcsRluprHtPsNhCQTG2L2gdz578Pl5VQ097XmpN sxl+ZJb/APfGB308vzqGwb2HVd/AqZB1PH3t4CHYPsCaUCGp2YFZLBCniWtUufsxaW3g TRB7FMtqJDYhxE4TA7CFcBITRbzH8VaSpbGx6h+lhEOiCpklB9hbZTA/RK8IT3jf9NbF aBRA== X-Gm-Message-State: APjAAAXSc+5bmurmGQwyt0H6rsTL2XYHqfKqR4qK+9SKhmfdta3a3hTP nhP6wti/wQ8kxY8IvMqiSgP8D6gDtU0= X-Google-Smtp-Source: APXvYqzDWRcyj4gGv6G/QF1k0doO5chP00In9ZbgZpOs0EES0dSVqtuEDagWDVGiPCRJNrKUw9lQJg== X-Received: by 2002:a67:e2c4:: with SMTP id i4mr37152024vsm.185.1558624089617; Thu, 23 May 2019 08:08:09 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Thu, 23 May 2019 11:07:59 -0400 Message-Id: <20190523150803.31504-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190523150803.31504-1-richard.henderson@linaro.org> References: <20190523150803.31504-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::e44 Subject: [Qemu-devel] [PATCH 2/6] target/rx: Replace operand with prt_ldmi in disassembler X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ysato@users.sourceforge.jp Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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. Signed-off-by: Richard Henderson Reviewed-by: Yoshinori Sato --- target/rx/disas.c | 77 +++++++++++++++++------------------------------ 1 file changed, 27 insertions(+), 50 deletions(-) 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)); } =20 -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] =3D {".b", ".w", ".l", ".uw", ".ub"}; char dsp[8]; =20 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); } =20 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; } =20 @@ -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; } =20 @@ -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; } =20 @@ -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; } =20 @@ -548,8 +544,7 @@ static bool trans_ADD_irr(DisasContext *ctx, arg_ADD_ir= r *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; } =20 @@ -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; } =20 @@ -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; } =20 @@ -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; } =20 @@ -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; } =20 @@ -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; } =20 @@ -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; } =20 @@ -696,8 +685,7 @@ static bool trans_EMUL_ir(DisasContext *ctx, arg_EMUL_i= r *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; } =20 @@ -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; } =20 @@ -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; } =20 @@ -744,8 +730,7 @@ static bool trans_DIVU_ir(DisasContext *ctx, arg_DIVU_i= r *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; } =20 @@ -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; } =20 @@ -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; } =20 @@ -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; } =20 @@ -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; } =20 @@ -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; } =20 @@ -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; } =20 @@ -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; } =20 @@ -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; } =20 --=20 2.17.1 From nobody Thu May 2 07:10:22 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1558624225; cv=none; d=zoho.com; s=zohoarc; b=NYGMvPqcoY8ExMZiRb91pF9oBiGnDe/uJJxhioEMVEU1JlujivGXBIIEkaR+fzLdsKP4Yjrcq8dKfpvucf2aTM/FQjQFJP0OzH/obqGhBiIYvprwnQkMdA3vDWpsuLKPvjPZo6jUCJqR/c+QQ+YRW9AkGJl+XxtihleXdIHy9Jo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558624225; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=TEbS/eoBr4jNITUxq1vwaffydS2jov7Vs7szIedqxOI=; b=NqRvuauVYCjYpXmOc3bBn+Yayu+LjTb4XOSdfU0/zQmgNkTXUqd3VAkm5wz9uHKhRkZzchjHCVoUJBYjCDCV0dWTk8Ox9+fYTokpQJCE+OIv45cYBqR1fqT89qvrAl53mvaJYxiidTOUmuEKD/cye2K53HzcdD2kBoZIYD05gDI= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558624225036557.3832667072977; Thu, 23 May 2019 08:10:25 -0700 (PDT) Received: from localhost ([127.0.0.1]:38514 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTpME-0000A3-TF for importer@patchew.org; Thu, 23 May 2019 11:10:14 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39735) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTpKL-0007Tl-7A for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hTpKG-0001rR-Hr for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:17 -0400 Received: from mail-vs1-xe43.google.com ([2607:f8b0:4864:20::e43]:40316) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hTpKG-0001qz-Dr for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:12 -0400 Received: by mail-vs1-xe43.google.com with SMTP id c24so3789583vsp.7 for ; Thu, 23 May 2019 08:08:12 -0700 (PDT) Received: from localhost.localdomain (ip-173-130-215-183.orldfl.spcsdns.net. [173.130.215.183]) by smtp.gmail.com with ESMTPSA id p70sm4227462vsd.25.2019.05.23.08.08.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 May 2019 08:08:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=TEbS/eoBr4jNITUxq1vwaffydS2jov7Vs7szIedqxOI=; b=p5tQ8Zvsrg+FsGqAg0pIKs6S6X1EuEhBle8Irz693Guj17d97K9ft/OR+Od6kNajsh Xc6b9AOk3QRm8fdBSyhix0E5gwsC6WGPhc+mXnKTqvAW+L+/NpH9CycwY+3PIaugJe91 LwYvqueE1IcEl0895q8SBlE4fn5ZDMb7aYFhowe31bDPnvg7ziticaQ8N0TAYUYQnDYF LSuXnCJTEqJmOosMHWWB2TCRmE5IAWUEvd+Rs8rOQ1+NgUXaU9Zwk1Jq7VwKwIBWSHz+ x5lEjsRKAOHXb1MKRoiE6bEwtVsGkR1+B4v3qTYP99zV29yD1WiRUQNzo3vx6R9/uHg+ 39wA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=TEbS/eoBr4jNITUxq1vwaffydS2jov7Vs7szIedqxOI=; b=NqmgE//8lVHMuK6xD7uB0PVm3GhFCmvyHIQVTXNYojzxuAcanUtR6D+9bZtVaF5AIE r7u27TtLHWjWJFrGSGwAB7Fg435x+vK7hbJ5XrhbQSS9fn5Vq/osyFC0AtnFX6gc3BcV 9D/+qCgjrkq/9NPt9hT0y9J3DMVHeBBqUEjWvBShoTM6wntBK1G0GBMZ+xZe9WgyAWmF S4Cvo7oaVDf45ZYcp3F91lAUQBZdmN4DUHGoIMLgIKHInlLN+z533SYN4q35Yk6M3Z2h Glw68SThynPbKzEVYW5vDuku1b6qtgLz1C8AeeJxMWDcPybbWkbMFoH+DrHu0dDp/RwH XC0Q== X-Gm-Message-State: APjAAAUrJbMp+3GYeOFYiFzWVkBzUOJwyrkZAYRwshs/X8k8+pslf3nn 39vS0TQQLy6wfIqoSwNoPEaRgl0dFpY= X-Google-Smtp-Source: APXvYqx2yna4UYoIugEcpKkAw0nKUdlJUpxLzVhhLg9GnA/emubzi1s+113nh1akNu3Zg+o/0xuULA== X-Received: by 2002:a67:ee4f:: with SMTP id g15mr38007273vsp.38.1558624091304; Thu, 23 May 2019 08:08:11 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Thu, 23 May 2019 11:08:00 -0400 Message-Id: <20190523150803.31504-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190523150803.31504-1-richard.henderson@linaro.org> References: <20190523150803.31504-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::e43 Subject: [Qemu-devel] [PATCH 3/6] target/rx: Use prt_ldmi for XCHG_mr disassembly X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ysato@users.sourceforge.jp Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Note that the ld =3D=3D 3 case handled by prt_ldmi is decoded as XCHG_rr and cannot appear here. Signed-off-by: Richard Henderson Reviewed-by: Yoshinori Sato --- target/rx/disas.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) 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] =3D { - "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; } =20 --=20 2.17.1 From nobody Thu May 2 07:10:22 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1558624229; cv=none; d=zoho.com; s=zohoarc; b=ht7YlnRPVqVEySQIpEf/hBBLxxLFVYRXkv9y0UZwiZ/847GmYeos4efv1dl74wiKUuwtH6by2ubd565EFRggJx+U7pBiiWbsk+q2s+t8WEMcvS8SMmQXk20hPMcrLgNUWfMno5DbIQDDjCHw4rdo5HO83ZWw/60pn1gqGpcfZSM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558624229; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=VUnrLOQYFBFf1yK5o5x1yC4115MKE2b9Zzti/sU0+aI=; b=B6romTf3OCKhsRBzMu0G8fSl3PbdG6TfP3UkcN9fW0+d4zMgiujm+8eyVgTsJXJJxgCFhmnWMt+bvFSfpNXrIyfqzyPVtZvF1fUNNjgeWfttiGiU5Etke3xZxUsm7huTPnmRn9TPvHdwCqPwdJSY5NDwPiVqVwsyka7MTrPMMTc= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558624229646736.7030368468862; Thu, 23 May 2019 08:10:29 -0700 (PDT) Received: from localhost ([127.0.0.1]:38516 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTpMJ-0000EV-Ee for importer@patchew.org; Thu, 23 May 2019 11:10:19 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39693) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTpKI-0007Rr-S7 for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hTpKH-0001sE-MJ for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:14 -0400 Received: from mail-vs1-xe44.google.com ([2607:f8b0:4864:20::e44]:38292) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hTpKH-0001rv-HQ for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:13 -0400 Received: by mail-vs1-xe44.google.com with SMTP id x184so3795169vsb.5 for ; Thu, 23 May 2019 08:08:13 -0700 (PDT) Received: from localhost.localdomain (ip-173-130-215-183.orldfl.spcsdns.net. [173.130.215.183]) by smtp.gmail.com with ESMTPSA id p70sm4227462vsd.25.2019.05.23.08.08.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 May 2019 08:08:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=VUnrLOQYFBFf1yK5o5x1yC4115MKE2b9Zzti/sU0+aI=; b=F+vwYCL7+G0w1xK+WgTSnRu1c6OwzJrYwWL0yp/TVohjbsK69GyIwEMY8YY1E7NiVs dG13iJz5uBC/Di/uMZteaYXCfhBVNAQqPWN0rq/8NDbmSB18RQJhZAvBdoYi6s3noePc ZsIWt7ASGojpp+vXo4Oq3DLdGFiv6nhkp+CMt6JO33csmjblGSCado7ci9aS0tzwzQla q/U8WB2wY/1TdtMn4n9ig9VDOquIFWQATzxkGCrM/h+4TIPC68ZA1cVPnZf4C6LCueA2 rH21MvB1YfzW190W5Aoa2yuMfJBc6NK7oEZizlVhv2p6U/+ITFEtrcnXQYunEFIkTXrX lSzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=VUnrLOQYFBFf1yK5o5x1yC4115MKE2b9Zzti/sU0+aI=; b=Rq7U7G3cgvZt9ThswoSW6CKuKrkgXJzhelE1gXDbWTZfvhIqKr5Q7ZHVVp9uIVQa0o 2q0rC+OmrSXl1KPyk0ViOZbeBNgdeyorPxDIyQ8Y9d6WPRwfaEp8gECqIW5X12l6a9Qi /KZcKn6RVH3tsA2AXrfluv3V4dhaih0OWZjpVihpbejfdvp/fVYgrkUdulmKe/0Mo6SN SpsRRQec9/g6odgc2oJoioAwbFXAWc+Lbrw5gOJrIzW7tnEYcL2YtBR5j8Yk5d/GTe3k vUZgKS+LpB2XBG3zxepCTL2VPuH9Q1L3CMwSUzb94aeWCz0alH7xLloARRRs4oyfskd3 rWdA== X-Gm-Message-State: APjAAAX+5tdiNA9+5C+7HfJ6Vnm3mKIlSBiB+1H9vFwJT0j3KQVVxWeF UjjEJ7mYMxrNNou5uTaJJNygaD2d2BI= X-Google-Smtp-Source: APXvYqyXcRzjiKmveCSk73Yl84GPGLZw8GoTnpOlczI7lQsDb7mtqTZu/t8EAzG3nwEeyOQ6H8D05A== X-Received: by 2002:a67:e250:: with SMTP id w16mr8597924vse.110.1558624092423; Thu, 23 May 2019 08:08:12 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Thu, 23 May 2019 11:08:01 -0400 Message-Id: <20190523150803.31504-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190523150803.31504-1-richard.henderson@linaro.org> References: <20190523150803.31504-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::e44 Subject: [Qemu-devel] [PATCH 4/6] target/rx: Emit all disassembly in one prt() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ysato@users.sourceforge.jp Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Many of the multi-part prints have been eliminated by previous patches. Eliminate the rest of them. Signed-off-by: Richard Henderson Reviewed-by: Yoshinori Sato --- target/rx/disas.c | 75 ++++++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 36 deletions(-) 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_r= a *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 =3D size[a->sz]; =20 - prt("mov.%c\t", size[a->sz]); if (a->lds =3D=3D 3 && a->ldd =3D=3D 3) { /* mov.[bwl] rs,rd */ - prt("r%d, r%d", a->rs, a->rd); - return true; - } - if (a->lds =3D=3D 3) { + prt("mov.%c\tr%d, r%d", szc, a->rs, a->rd); + } else if (a->lds =3D=3D 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 =3D=3D 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 =3D=3D 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; } =20 @@ -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 =3D=3D 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; } =20 @@ -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 =3D=3D 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; } =20 @@ -478,11 +482,11 @@ static bool trans_TST_mr(DisasContext *ctx, arg_TST_m= r *a) /* not rs, rd */ static bool trans_NOT_rr(DisasContext *ctx, arg_NOT_rr *a) { - prt("not\t"); if (a->rs !=3D 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; } =20 @@ -490,11 +494,11 @@ static bool trans_NOT_rr(DisasContext *ctx, arg_NOT_r= r *a) /* neg rs, rd */ static bool trans_NEG_rr(DisasContext *ctx, arg_NEG_rr *a) { - prt("neg\t"); if (a->rs !=3D 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; } =20 @@ -606,11 +610,10 @@ static bool trans_SBB_mr(DisasContext *ctx, arg_SBB_m= r *a) /* abs rs, rd */ static bool trans_ABS_rr(DisasContext *ctx, arg_ABS_rr *a) { - prt("abs\t"); - if (a->rs =3D=3D a->rd) { - prt("r%d", a->rd); + if (a->rs !=3D 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 !=3D 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; } =20 @@ -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 !=3D 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; } =20 @@ -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 !=3D 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; } =20 --=20 2.17.1 From nobody Thu May 2 07:10:22 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1558624514; cv=none; d=zoho.com; s=zohoarc; b=UnT7vcv0haraIjHLW5V8HQWRN61Ue6LRzUHCU1XjTJmzVutzapk6UDuuYrUqihEWV/OnFgZhIlVheAVRjBoGCzhgvdAWPodAM5DeUVB1t9bYOEcVQ0vjsOLZDXp57JC2Ic2fuFdbnlnYqYKjAasxx/47s2YMC+BEeL4pKVyDLIE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558624514; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=Ww2LSp6bczaair+HE3835uyxzaqJh3az+j6QKvIto98=; b=ERz2+u6khnZ7E8BdVat/Cmoba20p659O2P9O2g8r9ZziU3xyw6sPSFsbLLb9zAm2BXKCKnB+l61DFltyz39HLhMrx2EqFn6QZVoXp4LHwAsKy345pzSVq8yOLnm+ifSBjR3S9I17nbk2cKKGXmNOAswgtIlBhHYGXlhqKysiQtU= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558624514462288.6576905527196; Thu, 23 May 2019 08:15:14 -0700 (PDT) Received: from localhost ([127.0.0.1]:38607 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTpQy-0004jQ-9j for importer@patchew.org; Thu, 23 May 2019 11:15:08 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39705) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTpKJ-0007Sc-RR for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hTpKI-0001st-MR for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:15 -0400 Received: from mail-ua1-x942.google.com ([2607:f8b0:4864:20::942]:36937) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hTpKI-0001si-HS for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:14 -0400 Received: by mail-ua1-x942.google.com with SMTP id t18so2299970uar.4 for ; Thu, 23 May 2019 08:08:14 -0700 (PDT) Received: from localhost.localdomain (ip-173-130-215-183.orldfl.spcsdns.net. [173.130.215.183]) by smtp.gmail.com with ESMTPSA id p70sm4227462vsd.25.2019.05.23.08.08.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 May 2019 08:08:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Ww2LSp6bczaair+HE3835uyxzaqJh3az+j6QKvIto98=; b=zANyOXl868k1DZ2O2uw27Zc+Ij5525RFDlxmgzWpoaQyraKh2FMJKjBYjcd1AtCWhV aEYdYaWntos3m5VseeFCeiatLTymiEoYaczJWghufdZrZvGihK1OGCQP2doidjLFJFmn bCOrpZy349QfP+ep6P/n0AuJZez+sHHDby90Uh2kc7BP4Nv0c4l3ti1kl/PTfhDbi7Sp udQJQXiWU/mEfa5W0VGVqHsKc8EKdz27zoteHp5xBtMTVd1ffejQ6QYWRo2SEj7QtXy4 3Oq5Ca5yTzsl5KrFp7q9iCAiaCXMYjCYzzgPsQ+4xPvr7duZd/Q9ej7bfx7o126jNvRO tp6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Ww2LSp6bczaair+HE3835uyxzaqJh3az+j6QKvIto98=; b=Jx5gTrKIdfq+qTBTOrIXMsBvhAw/jEq+9uZifvBnO/48URiNYTSUWk5cMJ22fsYgvE jsBdRq3vqP/ntia+x1Kijol0MePj04Yd878/Hc0Vz6o/vYPKS9ksLEMbf+SiihPYlxek L6vzfhCFutsCiLSH2Ko8a1wRI+YU/9LhMMBk3+1DA6o6RPiqswuTLwsw8sdxcILKG/xa q2n0sAR4Ij8KMHZ3xWM5jirK6veBbdXL+x685wXKJ5iblRv4fEtbl55cosSSeKx/Td86 G9cX3xZignD53e2k7b+n07ADORehwpiJbCuHqrjYpjlmsmwVatxz40sCXgpFfDs0138d bt6g== X-Gm-Message-State: APjAAAVdSj4FSEUIMz6WXJeM0v2Rwry6FC/HOyyfBN51+sDY/+nXEHhw a2rm/eNVpcQoY5h4nF8yb0yHulWkFTI= X-Google-Smtp-Source: APXvYqwkEQObKS7sJQO6zxIML2xyzIK5J0zAG6KzWH+yYwoTod0hZze4s/DtGdb683gloYP/639d2g== X-Received: by 2002:a9f:376e:: with SMTP id a43mr8798178uae.57.1558624093591; Thu, 23 May 2019 08:08:13 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Thu, 23 May 2019 11:08:02 -0400 Message-Id: <20190523150803.31504-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190523150803.31504-1-richard.henderson@linaro.org> References: <20190523150803.31504-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::942 Subject: [Qemu-devel] [PATCH 5/6] target/rx: Collect all bytes during disassembly X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ysato@users.sourceforge.jp Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Collected, to be used in the next patch. Signed-off-by: Richard Henderson Reviewed-by: Yoshinori Sato --- target/rx/disas.c | 62 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 20 deletions(-) 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; =20 =20 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 =3D ctx->addr; + + g_assert(ctx->len =3D=3D i); + g_assert(n <=3D ARRAY_SIZE(ctx->bytes)); + while (++i <=3D n) { - ctx->dis->read_memory_func(ctx->addr++, &buf, 1, ctx->dis); - insn |=3D buf << (32 - i * 8); + ctx->dis->read_memory_func(addr++, &ctx->bytes[i - 1], 1, ctx->dis= ); + insn |=3D ctx->bytes[i - 1] << (32 - i * 8); } + ctx->addr =3D addr; + ctx->len =3D n; + return insn; } =20 static int32_t li(DisasContext *ctx, int sz) { - int32_t addr; - bfd_byte buf[4]; - addr =3D ctx->addr; + uint32_t addr =3D ctx->addr; + uintptr_t len =3D ctx->len; =20 switch (sz) { case 1: + g_assert(len + 1 <=3D ARRAY_SIZE(ctx->bytes)); ctx->addr +=3D 1; - ctx->dis->read_memory_func(addr, buf, 1, ctx->dis); - return (int8_t)buf[0]; + ctx->len +=3D 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 <=3D ARRAY_SIZE(ctx->bytes)); ctx->addr +=3D 2; - ctx->dis->read_memory_func(addr, buf, 2, ctx->dis); - return ldsw_le_p(buf); + ctx->len +=3D 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 <=3D ARRAY_SIZE(ctx->bytes)); ctx->addr +=3D 3; - ctx->dis->read_memory_func(addr, buf, 3, ctx->dis); - return (int8_t)buf[2] << 16 | lduw_le_p(buf); + ctx->len +=3D 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 <=3D ARRAY_SIZE(ctx->bytes)); ctx->addr +=3D 4; - ctx->dis->read_memory_func(addr, buf, 4, ctx->dis); - return ldl_le_p(buf); + ctx->len +=3D 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[] =3D { static void rx_index_addr(DisasContext *ctx, char out[8], int ld, int mi) { uint32_t addr =3D ctx->addr; - uint8_t buf[2]; + uintptr_t len =3D ctx->len; uint16_t dsp; =20 switch (ld) { @@ -119,14 +135,18 @@ static void rx_index_addr(DisasContext *ctx, char out= [8], int ld, int mi) out[0] =3D '\0'; return; case 1: + g_assert(len + 1 <=3D ARRAY_SIZE(ctx->bytes)); ctx->addr +=3D 1; - ctx->dis->read_memory_func(addr, buf, 1, ctx->dis); - dsp =3D buf[0]; + ctx->len +=3D 1; + ctx->dis->read_memory_func(addr, ctx->bytes + len, 1, ctx->dis); + dsp =3D ctx->bytes[len]; break; case 2: + g_assert(len + 2 <=3D ARRAY_SIZE(ctx->bytes)); ctx->addr +=3D 2; - ctx->dis->read_memory_func(addr, buf, 2, ctx->dis); - dsp =3D lduw_le_p(buf); + ctx->len +=3D 2; + ctx->dis->read_memory_func(addr, ctx->bytes + len, 2, ctx->dis); + dsp =3D 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 *di= s) DisasContext ctx; uint32_t insn; int i; + ctx.dis =3D dis; ctx.pc =3D ctx.addr =3D addr; + ctx.len =3D 0; =20 insn =3D decode_load(&ctx); if (!decode(&ctx, insn)) { --=20 2.17.1 From nobody Thu May 2 07:10:22 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1558624673; cv=none; d=zoho.com; s=zohoarc; b=crqGUHbAO2WuA/CLrWG1Rydoh/wbCeFuha8jPV7V5YMGlpiwBxSVNjP7WGlxDclyKrWRgRshP9cS/DZrS6127Tv8d6nJssIhn4+PwxCOcL6ZVLcsFaHDO0NEJkcMvc2i91RnVVglw+UfNDD1trGDZBH/mHyzpPljipedgZtjxYA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1558624673; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=xcihCMTg6jd3N0tSpSeDkVUUj/HYgQaaJEhimiQbbQQ=; b=jktMP5U6POayAFaow/aa0o1/vWaygk2cvvuG3jt/EFk6RfuCjBQU+oLI3EL7Uhrcufu+zhnOcTFLqAabEK047P1R2ig+5Y6ma7RqZSFcRXtGc2q9Dr2UmGKsF5bMbboxKSqRlCWK6UndIZzdWwTaKx1ox5/qns5rzsQJksu1l0U= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1558624673502422.0678937045202; Thu, 23 May 2019 08:17:53 -0700 (PDT) Received: from localhost ([127.0.0.1]:38662 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTpTU-0006XE-G4 for importer@patchew.org; Thu, 23 May 2019 11:17:44 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39732) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hTpKL-0007TY-3t for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hTpKK-0001uF-5v for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:17 -0400 Received: from mail-ua1-x943.google.com ([2607:f8b0:4864:20::943]:42749) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hTpKK-0001te-27 for qemu-devel@nongnu.org; Thu, 23 May 2019 11:08:16 -0400 Received: by mail-ua1-x943.google.com with SMTP id e9so2290451uar.9 for ; Thu, 23 May 2019 08:08:15 -0700 (PDT) Received: from localhost.localdomain (ip-173-130-215-183.orldfl.spcsdns.net. [173.130.215.183]) by smtp.gmail.com with ESMTPSA id p70sm4227462vsd.25.2019.05.23.08.08.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 May 2019 08:08:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=xcihCMTg6jd3N0tSpSeDkVUUj/HYgQaaJEhimiQbbQQ=; b=Cdi80Ybw8+jb/EdnRp2dqA8qJI8x0fiYppUCb697NL0GCj84d6jCBwHrmgtoRpeD29 VExKmV3BAGRuusj19+Hb1cQ+8nyXpZwJuU6+P/ayhHBlhFGIthz2FhODYYB3jXxHCRaR iMyeDvt6KZ8P34i+1YueaTvZWVhptTo/2FO6Cl+EPSlCTld57/TuhEbl4CceGYabS0nJ IXANE/KKkmzDdXn5GD4Py6IxYaGWUwt2HqjUylbsq69IG/UiosOELD98CMkJBL/uQwVw 3ZpRKBEMXTuu6/4pkKS9pPVbTY/LMPbmDeNkN2UYRS32vFauhaes6CE6QiQ4zsvSlj/f cLoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=xcihCMTg6jd3N0tSpSeDkVUUj/HYgQaaJEhimiQbbQQ=; b=ccxLgb8T34BLBECF5AnNqt4mYA39nr5XQfMsADrfxI4kPA2uLpN+yHaujyWstUQe5J o3oERcHPnXEQYDsc+N10xZrhP7NEiBqyrIrqXJOV7HeWMkjRx3L6dW6J4HdrdX7bk27R Fb1qVzlXsaXVLbYfTbmAvr4hPre8RiB9EwunlpyRBofrNSvg1U4EHxFYsavVF9t8KNIU /unHhJzZUsoQPVXxIEqPO3rtlQX2pHFuyN1J8k5v1xHAug/prLmrYJyAXW1KZ/8pme8z I1iauwnKMZf6OERk0IIog95qJnAzRXXTzU7HYfBg0/CJtvKxU4bM/BPUVj6o5JLnbAxd Ly9g== X-Gm-Message-State: APjAAAXQZfwDadIHeB1SBgR2fcqHZeUKnebMG8D1Dsv75BtHH4ENbF9d uYSIYYHxcruGxtG8zFc4Emq/b795QyY= X-Google-Smtp-Source: APXvYqxrPmMj0lzKKA4NBIOaOHof6MCg8aKHPue/W9/FpE8wM3qqpChhNeh1vKeowR27MA36vsymog== X-Received: by 2002:ab0:29cc:: with SMTP id i12mr39566731uaq.12.1558624094878; Thu, 23 May 2019 08:08:14 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Thu, 23 May 2019 11:08:03 -0400 Message-Id: <20190523150803.31504-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190523150803.31504-1-richard.henderson@linaro.org> References: <20190523150803.31504-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::943 Subject: [Qemu-devel] [PATCH 6/6] target/rx: Dump bytes for each insn during disassembly X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ysato@users.sourceforge.jp Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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. Signed-off-by: Richard Henderson Reviewed-by: Yoshinori Sato --- target/rx/disas.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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" =20 -#define prt(...) (ctx->dis->fprintf_func)((ctx->dis->stream), __VA_ARGS__) +static void dump_bytes(DisasContext *ctx) +{ + int i, len =3D ctx->len; + + for (i =3D 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) =20 #define RX_MEMORY_BYTE 0 #define RX_MEMORY_WORD 1 --=20 2.17.1