The main things here are a bunch of cleanups to the common logic of
the new decoder, some changes to translate.c that prepare for redoing
one-byte opcodes in the new framework, and the implementation of the
CMPccXADD instruction that is new in Sierra Forest processors.
These are all relatively innocuous changes, and easy to bisect in
case things go wrong.
Paolo
Paolo Bonzini (22):
target/i386: optimize computation of JL and JLE from flags
target/i386: speedup JO/SETO after MUL or IMUL
target/i386: remove unnecessary arguments from raise_interrupt
target/i386: remove unnecessary truncations
target/i386: clean up cpu_cc_compute_all
target/i386: document more deviations from the manual
target/i386: reimplement check for validity of LOCK prefix
target/i386: avoid trunc and ext for MULX and RORX
target/i386: rename zext0/zext2 and make them closer to the manual
target/i386: add X86_SPECIALs for MOVSX and MOVZX
target/i386: do not decode string source/destination into decode->mem
target/i386: do not clobber A0 in POP translation
target/i386: do not clobber T0 on string operations
target/i386: split eflags computation out of gen_compute_eflags
target/i386: do not use s->tmp4 for push
target/i386: do not use s->tmp0 for jumps on ECX ==/!= 0
target/i386: extract gen_far_call/jmp, reordering temporaries
target/i386: prepare for implementation of STOS/SCAS in new decoder
target/i386: move operand load and writeback out of gen_cmovcc1
target/i386: adjust decoding of J operand
target/i386: introduce flags writeback mechanism
target/i386: implement CMPccXADD
target/i386/cpu.c | 2 +-
target/i386/cpu.h | 5 +-
target/i386/tcg/cc_helper.c | 6 +-
target/i386/tcg/decode-new.c.inc | 152 +++++++++++++------
target/i386/tcg/decode-new.h | 29 +++-
target/i386/tcg/emit.c.inc | 224 +++++++++++++++++++++------
target/i386/tcg/excp_helper.c | 7 +-
target/i386/tcg/fpu_helper.c | 10 +-
target/i386/tcg/helper-tcg.h | 3 +-
target/i386/tcg/int_helper.c | 8 +-
target/i386/tcg/misc_helper.c | 4 +-
target/i386/tcg/seg_helper.c | 8 +-
target/i386/tcg/translate.c | 250 ++++++++++++++++++-------------
tests/tcg/i386/Makefile.target | 2 +-
tests/tcg/i386/test-flags.c | 37 +++++
15 files changed, 509 insertions(+), 238 deletions(-)
create mode 100644 tests/tcg/i386/test-flags.c
--
2.43.0