|
From: Julian S. <js...@ac...> - 2012-01-20 13:21:14
|
With vex r2243 a few minutes ago, I imported from branches/AVX,
an overhaul of the x86_64 instruction decoding framework that is
a prerequisite for supporting AVX. This commit doesn't change any
functionality. Instead it gets rid of ridiculous long chains of
if statements used to identify instructions, and replaces them
with a shallow tree of switch statements.
This is a big, mechanical change, that affects thousands of lines
of code. I think I have got it right. But if anyone sees any
wierdness in x86_64/amd64 instruction decoding, please speak up.
All other front ends, including 32-bit x86, are unaffected.
A few instructions have not yet been re-enabled in the new framework,
because I could not find any test case that exercises them. If
you run across one of them, please yell. They are:
0F AE /7 = CLFLUSH -- flush cache line
0xC2: /* RET imm16 */
0xCD: { /* INT imm8 */
/* 0F 0D /0 -- prefetch mem8 */
/* 0F 0D /1 -- prefetchw mem8 */
0xC0: { /* XADD Gb,Eb */
J
|