On 4/30/21 4:54 PM, Matheus K. Ferst wrote:
The only difference between those two is tcg_gen_addi_tl/tcg_gen_movi_tl and
tcg_gen_add_tl/tcg_gen_mov_tl. We could do this in a single method if we
tcg_const_tl(a->si) in do_ldst_D. I'm not sure about the costs involved, and
we'd need to tcg_temp_free it. If you want to give it a look, I did some tests
on https://github.com/ppc64/qemu/tree/ferst-tcg-decodetree64 .
I guess it works, but it feels ugly with the comparison vs cpu_gpr[0]. Maybe
pass in rt and ra as integers, and only pass in rb/si as TCGv addend?
The upper-case argument names clash with docs/devel/style.rst.
You can use tcg_constant_tl() to grab a hashed constant that need not be freed.
BTW, I thought I had a comment about PLS being used for both MLS and 8LS. I
guess that must have gotten lost at some point. If you go with your renaming
to MLS, you'll want a different comment about PLD et al.
r~