xed-ild.c: mask VEX map with 0x3 to require imm8 byte

* Masking of the VEX map with 0x3 to match an undocumented
    implementation convention that can (and most likely will) change
    as architectural map usage evolves.

Change-Id: I0a0494049884f94b3770d8f105d353e7b3a45070
(cherry picked from commit eac755ab42dc6e0f9bf187689fba70bb48428a6b)
This commit is contained in:
Mark Charney
2017-03-03 09:28:20 -05:00
committed by Mark Charney
parent c81ea657ed
commit 1504ed618a

View File

@@ -430,7 +430,10 @@ static void vex_c4_scanner(xed_decoded_inst_t* d)
xed3_operand_set_map(d,c4byte1.s.map);
if (c4byte1.s.map == XED_ILD_MAP3)
// FIXME: 2017-03-03 this masking of the VEX map with 0x3 an attempt
// at matching an undocumented implementation convention that can and
// most likely will change as architectural map usage evolves.
if ((c4byte1.s.map & 0x3) == XED_ILD_MAP3)
xed3_operand_set_imm_width(d, bytes2bits(1));
// this is a success indicator for downstreaam decoding