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 <s...@weilnetz.de> > --- > > 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