tci: Add implementation for INDEX_op_ld16u_i64

This fixes "make check-tcg" on a Debian x86_64 host.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Tested-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190410194838.10123-1-sw@weilnetz.de>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Stefan Weil 2019-04-10 21:48:38 +02:00 committed by Richard Henderson
parent 187f355121
commit 2f160e0f97
1 changed files with 15 additions and 0 deletions

View File

@ -127,6 +127,12 @@ static void tci_write_reg8(tcg_target_ulong *regs, TCGReg index, uint8_t value)
tci_write_reg(regs, index, value);
}
static void
tci_write_reg16(tcg_target_ulong *regs, TCGReg index, uint16_t value)
{
tci_write_reg(regs, index, value);
}
static void
tci_write_reg32(tcg_target_ulong *regs, TCGReg index, uint32_t value)
{
@ -585,6 +591,8 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t *tb_ptr)
tci_write_reg8(regs, t0, *(uint8_t *)(t1 + t2));
break;
case INDEX_op_ld8s_i32:
TODO();
break;
case INDEX_op_ld16u_i32:
TODO();
break;
@ -854,7 +862,14 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t *tb_ptr)
tci_write_reg8(regs, t0, *(uint8_t *)(t1 + t2));
break;
case INDEX_op_ld8s_i64:
TODO();
break;
case INDEX_op_ld16u_i64:
t0 = *tb_ptr++;
t1 = tci_read_r(regs, &tb_ptr);
t2 = tci_read_s32(&tb_ptr);
tci_write_reg16(regs, t0, *(uint16_t *)(t1 + t2));
break;
case INDEX_op_ld16s_i64:
TODO();
break;