On 8/25/2026 5:29 AM, Paolo Bonzini wrote:
Signed-off-by: Paolo Bonzini <[email protected]>
---
target/i386/tcg/decode-new.h | 3 +++
target/i386/tcg/decode-new.c.inc | 21 ++++++++++-----------
2 files changed, 13 insertions(+), 11 deletions(-)
...
@@ -2972,15 +2972,14 @@ static void disas_insn(DisasContext *s, CPUState *cpu)
goto illegal_op;
}
}
- if (decode.e.check & X86_CHECK_prot_or_vm86) {
- if (!PE(s)) {
- goto illegal_op;
- }
+ if ((decode.e.check & X86_CHECK_prot_or_vm86) && !PE(s)) {
+ goto illegal_op;
}
- if (decode.e.check & X86_CHECK_no_vm86) {
- if (VM86(s)) {
- goto illegal_op;
- }
+ if ((decode.e.check & X86_CHECK_no_vm86) && VM86(s)) {
+ goto illegal_op;
+ }
These folded conditions don't seem directly related to the main point of
this patch. Just saying...
+ if ((decode.e.check & X86_CHECK_no_rex2) && (s->prefix & PREFIX_REX2))
{
+ goto illegal_op;
}
if ((decode.e.check & X86_CHECK_VEX128) && s->vex_l) {
goto illegal_op;
Overall, the change looks quite straightforward and sane to me:
Reviewed-by: Chang S. Bae <[email protected]>