Fix DecodedInstruction's handling of VEX/XOP prefixes
commit6da8da641b6c88c6dc5afdff856213b076df6d59
authorBrett Simmers <bsimmers@fb.com>
Thu, 18 Dec 2014 21:33:05 +0000 (18 13:33 -0800)
committerJoelMarcey <joelm@fb.com>
Fri, 19 Dec 2014 01:15:51 +0000 (18 17:15 -0800)
tree05b20701c319cc2c2d525743b896c7c62a034064
parent3662e95bf5817e896fbffd3c058fa9822f92fc10
Fix DecodedInstruction's handling of VEX/XOP prefixes

Summary: A 2 byte VEX prefix implies that m_map_select should be set to 1. I
also added back support for decoding XOP prefixes, with a check to make sure
it's not just an 0x8f one-byte opcode. This allows us to tell LLVM to emit code
for the current CPU without tripping up the decoding we need to do after LLVM
codegen.

Reviewed By: @markw65

Differential Revision: D1748309

Signature: t1:1748309:1418919894:121ed5c97e54b74d9799712ef56efbb4fdd653ca
hphp/runtime/vm/jit/vasm-llvm.cpp
hphp/util/asm-x64.cpp