Message ID | 20210128082331.196801-5-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: <20210128024814.2056958-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 2311aa7d3a..2edb47506e 100644 > --- a/tcg/tci.c > +++ b/tcg/tci.c > @@ -614,7 +614,10 @@ uintptr_t QEMU_DISABLE_CFI tcg_qemu_tb_exec(CPUArchState *env, > TODO(); > break; > case INDEX_op_ld16s_i32: > - TODO(); > + t0 = *tb_ptr++; > + t1 = tci_read_r(regs, &tb_ptr); > + t2 = tci_read_s32(&tb_ptr); > + tci_write_reg(regs, t0, *(int16_t *)(t1 + t2)); > break; > case INDEX_op_ld_i32: > t0 = *tb_ptr++; -- Alex Bennée
diff --git a/tcg/tci.c b/tcg/tci.c index 2311aa7d3a..2edb47506e 100644 --- a/tcg/tci.c +++ b/tcg/tci.c @@ -614,7 +614,10 @@ uintptr_t QEMU_DISABLE_CFI tcg_qemu_tb_exec(CPUArchState *env, TODO(); break; case INDEX_op_ld16s_i32: - TODO(); + t0 = *tb_ptr++; + t1 = tci_read_r(regs, &tb_ptr); + t2 = tci_read_s32(&tb_ptr); + tci_write_reg(regs, t0, *(int16_t *)(t1 + t2)); break; case INDEX_op_ld_i32: t0 = *tb_ptr++;