mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
tci: Add implementation of rotl_i64, rotr_i64
It is used by qemu-ppc64 when running Debian's busybox-static. Cc: qemu-stable <qemu-stable@nongnu.org> Signed-off-by: Stefan Weil <sw@weilnetz.de> Reviewed-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
f828a4c8fa
commit
d285bf784b
2 changed files with 9 additions and 2 deletions
|
@ -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]);
|
||||
|
|
10
tci.c
10
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
|
||||
|
|
Loading…
Reference in a new issue