Message ID | 20210128082331.196801-1-richard.henderson@linaro.org |
---|---|
Headers | show |
Series | TCI fixes and cleanups | expand |
Richard Henderson <richard.henderson@linaro.org> writes: > The first patch I believe is queued by Paolo, but is not yet > upstream; copied here for convenience. Then, fill in all of > the TODO blanks in TCI. > > The tci_write_reg* functions are redundant with tcg_write_reg. > Just pass in the properly truncated result to begin. In the > cases of the loads, we've automatically done that with the > type of the indirection. For all of the other arithmetic, > we don't actually have to do anything -- the value is either > right, or the high bits are undefined. And in fact will > currently be ignored by the extension on read. FWIW aside from the regression with 2/23 I've been testing this in TCI mode all day on hackbox. So far ffmpeg has encoded a whole 153 frames of video which is the furthest it has ever got in one of my tests ;-) So for the TCI part itself: Tested-by: Alex Bennée <alex.bennee@linaro.org> > > > r~ > > > Richard Henderson (21): > configure: Fix --enable-tcg-interpreter > tcg: Manage splitwx in tc_ptr_to_region_tree by hand > exec: Make tci_tb_ptr thread-local > tcg/tci: Inline tci_write_reg32s into the only caller > tcg/tci: Inline tci_write_reg8 into its callers > tcg/tci: Inline tci_write_reg16 into the only caller > tcg/tci: Inline tci_write_reg32 into all callers > tcg/tci: Inline tci_write_reg64 into 64-bit callers > tcg/tci: Merge INDEX_op_ld8u_{i32,i64} > tcg/tci: Merge INDEX_op_ld8s_{i32,i64} > tcg/tci: Merge INDEX_op_ld16u_{i32,i64} > tcg/tci: Merge INDEX_op_ld16s_{i32,i64} > tcg/tci: Merge INDEX_op_{ld_i32,ld32u_i64} > tcg/tci: Merge INDEX_op_st8_{i32,i64} > tcg/tci: Merge INDEX_op_st16_{i32,i64} > tcg/tci: Move stack bounds check to compile-time > tcg/tci: Merge INDEX_op_{st_i32,st32_i64} > tcg/tci: Use g_assert_not_reached > tcg/tci: Remove dead code for TCG_TARGET_HAS_div2_* > tcg/tci: Implement 64-bit division > tcg/tci: Remove TODO as unused > > Stefan Weil (2): > tcg/tci: Implement INDEX_op_ld16s_i32 > tcg/tci: Implement INDEX_op_ld8s_i64 > > configure | 5 +- > include/exec/exec-all.h | 2 +- > tcg/tci/tcg-target.h | 4 +- > tcg/tcg-common.c | 2 +- > tcg/tcg.c | 23 +++- > tcg/tci.c | 283 +++++++++++++++------------------------ > tcg/tci/tcg-target.c.inc | 41 +++--- > 7 files changed, 154 insertions(+), 206 deletions(-) -- Alex Bennée
Richard Henderson <richard.henderson@linaro.org> writes: > The first patch I believe is queued by Paolo, but is not yet > upstream; copied here for convenience. Then, fill in all of > the TODO blanks in TCI. > > The tci_write_reg* functions are redundant with tcg_write_reg. > Just pass in the properly truncated result to begin. In the > cases of the loads, we've automatically done that with the > type of the indirection. For all of the other arithmetic, > we don't actually have to do anything -- the value is either > right, or the high bits are undefined. And in fact will > currently be ignored by the extension on read. Hmm it also failed CI pretty hard: https://gitlab.com/stsquad/qemu/-/pipelines/248074046/failures -- Alex Bennée