mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-09-06 18:05:37 +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
|
@ -670,7 +670,6 @@ static void tcg_out_op(TCGContext *s, TCGOpcode opc, const TCGArg *args,
|
||||||
case INDEX_op_shl_i64:
|
case INDEX_op_shl_i64:
|
||||||
case INDEX_op_shr_i64:
|
case INDEX_op_shr_i64:
|
||||||
case INDEX_op_sar_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_rotl_i64: /* Optional (TCG_TARGET_HAS_rot_i64). */
|
||||||
case INDEX_op_rotr_i64: /* Optional (TCG_TARGET_HAS_rot_i64). */
|
case INDEX_op_rotr_i64: /* Optional (TCG_TARGET_HAS_rot_i64). */
|
||||||
tcg_out_r(s, args[0]);
|
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;
|
break;
|
||||||
#if TCG_TARGET_HAS_rot_i64
|
#if TCG_TARGET_HAS_rot_i64
|
||||||
case INDEX_op_rotl_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:
|
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;
|
break;
|
||||||
#endif
|
#endif
|
||||||
#if TCG_TARGET_HAS_deposit_i64
|
#if TCG_TARGET_HAS_deposit_i64
|
||||||
|
|
Loading…
Reference in a new issue