mbox series

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

Message ID 20240620095419.386958-1-pbonzini@redhat.com (mailing list archive)
Headers show
Series target/i386: make decoding entirely table based | expand

Message

Paolo Bonzini June 20, 2024, 9:54 a.m. UTC
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(-)