On 6/8/24 01:41, Paolo Bonzini wrote:
There are now relatively few unconverted opcodes in translate.c (there
are 13 of them including 8 for x87), and all of them have the same
format with a mod/rm byte and no immediate.  A good next step is
to remove the early bail out to disas_insn_x87/disas_insn_old,
instead giving these legacy translator functions the same prototype
as the other gen_* functions.

To do this, the X86DecodeInsn can be passed down to the places that
used to fetch address bytes from the instruction stream.  To make
sure that everything is done cleanly, the CPUX86State* argument is
removed.

As part of the unification, the gen_lea_modrm() name is now free,
so rename gen_load_ea() to gen_lea_modrm().  This is as good a name
and it makes the changes to translate.c easier to review.

Signed-off-by: Paolo Bonzini<pbonz...@redhat.com>
---
  target/i386/tcg/decode-new.h     |  14 ++-
  target/i386/tcg/translate.c      | 152 +++++++++++++------------------
  target/i386/tcg/decode-new.c.inc |  44 ++++-----
  target/i386/tcg/emit.c.inc       |   2 +-
  4 files changed, 94 insertions(+), 118 deletions(-)

Reviewed-by: Richard Henderson <richard.hender...@linaro.org>

r~

Reply via email to