x86: handle f2/f3 prefix for 16bit. see issue #452
This commit is contained in:
parent
9b1b3871d3
commit
36fb9a2fff
|
@ -1238,9 +1238,9 @@ static int getID(struct InternalInstruction *insn)
|
||||||
attrMask |= ATTR_OPSIZE;
|
attrMask |= ATTR_OPSIZE;
|
||||||
} else if (isPrefixAtLocation(insn, 0x67, insn->necessaryPrefixLocation)) {
|
} else if (isPrefixAtLocation(insn, 0x67, insn->necessaryPrefixLocation)) {
|
||||||
attrMask |= ATTR_ADSIZE;
|
attrMask |= ATTR_ADSIZE;
|
||||||
} else if (isPrefixAtLocation(insn, 0xf3, insn->necessaryPrefixLocation)) {
|
} else if (insn->mode != MODE_16BIT && isPrefixAtLocation(insn, 0xf3, insn->necessaryPrefixLocation)) {
|
||||||
attrMask |= ATTR_XS;
|
attrMask |= ATTR_XS;
|
||||||
} else if (isPrefixAtLocation(insn, 0xf2, insn->necessaryPrefixLocation)) {
|
} else if (insn->mode != MODE_16BIT && isPrefixAtLocation(insn, 0xf2, insn->necessaryPrefixLocation)) {
|
||||||
attrMask |= ATTR_XD;
|
attrMask |= ATTR_XD;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1260,6 +1260,7 @@ static int getID(struct InternalInstruction *insn)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* JCXZ/JECXZ need special handling for 16-bit mode because the meaning
|
* JCXZ/JECXZ need special handling for 16-bit mode because the meaning
|
||||||
* of the AdSize prefix is inverted w.r.t. 32-bit mode.
|
* of the AdSize prefix is inverted w.r.t. 32-bit mode.
|
||||||
|
|
Loading…
Reference in New Issue