The decoding tables do not use "L,x", because the only instructions that take a register from the upper 4 bits of an immediate (VBLENDVPS, VBLENDVPD and VPBLENDVB) use it for a fourth operand that, as far as the decoder is concerned, is always an 8-bit immediate. Therefore, X86_TYPE_L is dead code - remove it.
Signed-off-by: Paolo Bonzini <[email protected]> --- target/i386/tcg/decode-new.h | 1 - target/i386/tcg/decode-new.c.inc | 4 ---- 2 files changed, 5 deletions(-) diff --git a/target/i386/tcg/decode-new.h b/target/i386/tcg/decode-new.h index d8cab8d92d0..f18c7afca87 100644 --- a/target/i386/tcg/decode-new.h +++ b/target/i386/tcg/decode-new.h @@ -32,7 +32,6 @@ typedef enum X86OpType { X86_TYPE_H, /* For AVX, VEX.vvvv selects an XMM/YMM register */ X86_TYPE_I, /* Immediate */ X86_TYPE_J, /* Relative offset for a jump */ - X86_TYPE_L, /* The upper 4 bits of the immediate select a 128-bit register */ X86_TYPE_M, /* modrm byte selects a memory operand */ X86_TYPE_N, /* R/M in the modrm byte selects an MMX register */ X86_TYPE_O, /* Absolute address encoded in the instruction */ diff --git a/target/i386/tcg/decode-new.c.inc b/target/i386/tcg/decode-new.c.inc index d3352b17fdf..fa0a5b1f4c3 100644 --- a/target/i386/tcg/decode-new.c.inc +++ b/target/i386/tcg/decode-new.c.inc @@ -2717,10 +2717,6 @@ static bool decode_op(DisasContext *s, CPUX86State *env, X86DecodedInsn *decode, decode->immediate = op->imm = insn_get(env, s, op->ot); break; - case X86_TYPE_L: /* The upper 4 bits of the immediate select a 128-bit register */ - op->n = insn_get(env, s, op->ot) >> 4; - break; - case X86_TYPE_2op: *op = decode->op[0]; break; -- 2.56.0
