aboutsummaryrefslogtreecommitdiff
path: root/tci.c
diff options
context:
space:
mode:
Diffstat (limited to 'tci.c')
-rw-r--r--tci.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/tci.c b/tci.c
index 6d64891557..cc5aefd532 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