Message ID | 20210128082331.196801-6-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | TCI fixes and cleanups | expand |
Richard Henderson <richard.henderson@linaro.org> writes: > From: Stefan Weil <sw@weilnetz.de> > > That TCG opcode is used by debian-buster (arm64) running ffmpeg: > > qemu-aarch64 /usr/bin/ffmpeg -i theora.mkv theora.webm > > Reported-by: Alex Bennée <alex.bennee@linaro.org> > Signed-off-by: Stefan Weil <sw@weilnetz.de> > Message-Id: <20210128020425.2055454-1-sw@weilnetz.de> > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Tested-by: Alex Bennée <alex.bennee@linaro.org> > --- > tcg/tci.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/tcg/tci.c b/tcg/tci.c > index 2edb47506e..0e1b8e8383 100644 > --- a/tcg/tci.c > +++ b/tcg/tci.c > @@ -882,7 +882,10 @@ uintptr_t QEMU_DISABLE_CFI tcg_qemu_tb_exec(CPUArchState *env, > tci_write_reg8(regs, t0, *(uint8_t *)(t1 + t2)); > break; > case INDEX_op_ld8s_i64: > - TODO(); > + t0 = *tb_ptr++; > + t1 = tci_read_r(regs, &tb_ptr); > + t2 = tci_read_s32(&tb_ptr); > + tci_write_reg(regs, t0, *(int8_t *)(t1 + t2)); > break; > case INDEX_op_ld16u_i64: > t0 = *tb_ptr++; -- Alex Bennée
diff --git a/tcg/tci.c b/tcg/tci.c index 2edb47506e..0e1b8e8383 100644 --- a/tcg/tci.c +++ b/tcg/tci.c @@ -882,7 +882,10 @@ uintptr_t QEMU_DISABLE_CFI tcg_qemu_tb_exec(CPUArchState *env, tci_write_reg8(regs, t0, *(uint8_t *)(t1 + t2)); break; case INDEX_op_ld8s_i64: - TODO(); + t0 = *tb_ptr++; + t1 = tci_read_r(regs, &tb_ptr); + t2 = tci_read_s32(&tb_ptr); + tci_write_reg(regs, t0, *(int8_t *)(t1 + t2)); break; case INDEX_op_ld16u_i64: t0 = *tb_ptr++;