From patchwork Fri Oct 2 01:22:37 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chen Gang X-Patchwork-Id: 525358 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 6955A1400B7 for ; Fri, 2 Oct 2015 11:23:20 +1000 (AEST) Received: from localhost ([::1]:56939 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zhp49-0002rd-Ko for incoming@patchwork.ozlabs.org; Thu, 01 Oct 2015 21:23:17 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46708) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zhp3s-0002ZK-Mj for qemu-devel@nongnu.org; Thu, 01 Oct 2015 21:23:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zhp3n-0006Hs-Me for qemu-devel@nongnu.org; Thu, 01 Oct 2015 21:23:00 -0400 Received: from smtpproxy15.qq.com ([184.105.206.85]:44149) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zhp3n-0006Gv-EK for qemu-devel@nongnu.org; Thu, 01 Oct 2015 21:22:55 -0400 X-QQ-mid: esmtp31t1443748960t460t03058 Received: from localhost.localdomain.localdoma (unknown [223.72.67.83]) by esmtp4.qq.com (ESMTP) with id ; Fri, 02 Oct 2015 09:22:39 +0800 (CST) X-QQ-SSF: 01000000000000F0FH800F00002000H X-QQ-FEAT: C/t56zITej6/V47S7IJ3CrZzv77d9k+TAeVgZeQjftbHXj7aXDk+uVTfo8v93 JYymvMLF4fC2MU4RMwtBJZm/KdLRAVRM42jmduCQIAk7DR/+8LyKrRucecWdGGX1Xrpr2sq VcTDOpeMeocVsoyA5jvoyuyA19BGPztMn0UX+VY6OfVXX7eys3Z5cNhrUmNK8UJ8w5tIKyt /FyG+r1wonC2PAY2raeHaaYRYZZoiRQHJERE4vG4sgjRJ462t0Z6l X-QQ-GoodBg: 0 X-QQ-CSender: gang.chen.5i5j@qq.com From: gang.chen.5i5j@gmail.com To: peter.maydell@linaro.org, rth@twiddle.net Date: Fri, 2 Oct 2015 09:22:37 +0800 Message-Id: <1443748957-2640-1-git-send-email-gang.chen.5i5j@gmail.com> X-Mailer: git-send-email 1.9.3 X-QQ-SENDSIZE: 520 X-QQ-FName: 1A856B8388E74A1EB9E81AE38E4F3F30 X-QQ-LocalIP: 163.177.66.155 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x X-Received-From: 184.105.206.85 Cc: cmetcalf@ezchip.com, qemu-devel@nongnu.org, xili_gchen_5257@hotmail.com, Chen Gang Subject: [Qemu-devel] [PATCH] target-tilegx: Implement v2sh* instructions X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Chen Gang It is just according to v1sh* instructions implementation. Signed-off-by: Chen Gang --- target-tilegx/translate.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/target-tilegx/translate.c b/target-tilegx/translate.c index f711c18..03c8e76 100644 --- a/target-tilegx/translate.c +++ b/target-tilegx/translate.c @@ -1769,11 +1769,29 @@ static TileExcp gen_rri_opcode(DisasContext *dc, unsigned opext, break; case OE_SH(V2SHLI, X0): case OE_SH(V2SHLI, X1): + tdest = dest_gr(dc, dest); + i2 = imm & 15; + i3 = 0xffff >> i2; + tcg_gen_andi_tl(tdest, tsrca, V2_IMM(i3)); + tcg_gen_shli_tl(tdest, tdest, i2); + mnemonic = "v2shli"; + break; case OE_SH(V2SHRSI, X0): case OE_SH(V2SHRSI, X1): + t0 = tcg_const_tl(imm & 15); + gen_helper_v2shrs(TDEST, tsrca, t0); + tcg_temp_free(t0); + mnemonic = "v2shrsi"; + break; case OE_SH(V2SHRUI, X0): case OE_SH(V2SHRUI, X1): - return TILEGX_EXCP_OPCODE_UNIMPLEMENTED; + tdest = dest_gr(dc, dest); + i2 = imm & 15; + i3 = (0xffff << i2) & 0xffff; + tcg_gen_andi_tl(tdest, tsrca, V2_IMM(i3)); + tcg_gen_shri_tl(tdest, tdest, i2); + mnemonic = "v2shrui"; + break; case OE(ADDLI_OPCODE_X0, 0, X0): case OE(ADDLI_OPCODE_X1, 0, X1):