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