[PATCH 00/10] target/i386: make decoding entirely table based

Paolo Bonzini posted 10 patches 5 months, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240620095419.386958-1-pbonzini@redhat.com
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, Eduardo Habkost <eduardo@habkost.net>
target/i386/cpu.h                |  13 +-
target/i386/tcg/decode-new.h     |  19 +-
target/i386/tcg/cc_helper.c      |   2 +-
target/i386/tcg/translate.c      | 492 ++++++-------------------------
target/i386/tcg/decode-new.c.inc | 136 ++++++---
target/i386/tcg/emit.c.inc       | 249 +++++++++++++++-
6 files changed, 467 insertions(+), 444 deletions(-)
[PATCH 00/10] target/i386: make decoding entirely table based
Posted by Paolo Bonzini 5 months, 1 week ago
The trailing part of the previous series I sent; with fixes for
BT/BTS/BTR/BTC, plus moving code generation of CMPXCHG8B/CMPXCHG16B to
the new decoder.  This way all LOCKable instructions are converted, and
the patch "target/i386: do not check PREFIX_LOCK in old-style decoder"
is correct.

Sneak in a couple cleanups for CC_OP_POPCNT.  They don't really make
the generated code any more efficient, but they simplify a bit the
logic for the BT/BTS/BTR/BTC flags.

Supersedes: <20240608084113.2770363-1-pbonzini@redhat.com>


Paolo Bonzini (10):
  target/i386: use cpu_cc_dst for CC_OP_POPCNT
  target/i386: give CC_OP_POPCNT low bits corresponding to MO_TL
  target/i386: convert bit test instructions to new decoder
  target/i386: try not to force EFLAGS computation for CC_OP_ADOX/ADCX
  target/i386: decode address before going back to translate.c
  target/i386: convert CMPXCHG8B/CMPXCHG16B to new decoder
  target/i386: do not check PREFIX_LOCK in old-style decoder
  target/i386: list instructions still in translate.c
  target/i386: assert that cc_op* and pc_save are preserved
  target/i386: remove gen_ext_tl

 target/i386/cpu.h                |  13 +-
 target/i386/tcg/decode-new.h     |  19 +-
 target/i386/tcg/cc_helper.c      |   2 +-
 target/i386/tcg/translate.c      | 492 ++++++-------------------------
 target/i386/tcg/decode-new.c.inc | 136 ++++++---
 target/i386/tcg/emit.c.inc       | 249 +++++++++++++++-
 6 files changed, 467 insertions(+), 444 deletions(-)

-- 
2.45.2