From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48726) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VHK3c-0004Kw-F4 for qemu-devel@nongnu.org; Wed, 04 Sep 2013 16:52:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VHK3W-0007hL-Bn for qemu-devel@nongnu.org; Wed, 04 Sep 2013 16:52:08 -0400 Received: from [2a03:4000:1::4e2f:c7ac:d] (port=44762 helo=v220110690675601.yourvserver.net) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VHK3W-0007h6-4u for qemu-devel@nongnu.org; Wed, 04 Sep 2013 16:52:02 -0400 Message-ID: <52279D6A.6040302@weilnetz.de> Date: Wed, 04 Sep 2013 22:51:54 +0200 From: Stefan Weil MIME-Version: 1.0 References: <1378327754-8415-1-git-send-email-sw@weilnetz.de> In-Reply-To: <1378327754-8415-1-git-send-email-sw@weilnetz.de> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] tci: Add implementation of rotl_i64, rotr_i64 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-stable@nongnu.org Cc: qemu-devel , Richard Henderson Am 04.09.2013 22:49, schrieb Stefan Weil: > It is used by qemu-ppc64 when running Debian's busybox-static. > > Signed-off-by: Stefan Weil > --- > > This patch is also useful for QEMU 1.6. ... so I should have added qemu-stable. Done now. > > tcg/tci/tcg-target.c | 1 - > tci.c | 10 +++++++++- > 2 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/tcg/tci/tcg-target.c b/tcg/tci/tcg-target.c > index 233ab3b..4976bec 100644 > --- a/tcg/tci/tcg-target.c > +++ b/tcg/tci/tcg-target.c > @@ -670,7 +670,6 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, const TCGArg *args, > case INDEX_op_shl_i64: > case INDEX_op_shr_i64: > case INDEX_op_sar_i64: > - /* TODO: Implementation of rotl_i64, rotr_i64 missing in tci.c. */ > case INDEX_op_rotl_i64: /* Optional (TCG_TARGET_HAS_rot_i64). */ > case INDEX_op_rotr_i64: /* Optional (TCG_TARGET_HAS_rot_i64). */ > tcg_out_r(s, args[0]); > diff --git a/tci.c b/tci.c > index 18c888e..94b7851 100644 > --- a/tci.c > +++ b/tci.c > @@ -952,8 +952,16 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t *tb_ptr) > break; > #if TCG_TARGET_HAS_rot_i64 > case INDEX_op_rotl_i64: > + t0 = *tb_ptr++; > + t1 = tci_read_ri64(&tb_ptr); > + t2 = tci_read_ri64(&tb_ptr); > + tci_write_reg64(t0, (t1 << t2) | (t1 >> (64 - t2))); > + break; > case INDEX_op_rotr_i64: > - TODO(); > + t0 = *tb_ptr++; > + t1 = tci_read_ri64(&tb_ptr); > + t2 = tci_read_ri64(&tb_ptr); > + tci_write_reg64(t0, (t1 >> t2) | (t1 << (64 - t2))); > break; > #endif > #if TCG_TARGET_HAS_deposit_i64