[llvm-dev] X86 disassembler fails to handle 0x66 prefix?
Jun Koi via llvm-dev
llvm-dev at lists.llvm.org
Sun May 7 00:22:34 PDT 2017
Hello,
I have seen this bug for quite a while, and even in the latest code it
is still there: that is X86 disassembler does not handle 0x66 prefix
properly, if it is put behind 0xF3 prefix.
The below commands should return the same output, but not.
$ echo "0xf3 0x66 0xa5"|./build/bin/llvm-mc --disassemble
-triple=x86_64 -output-asm-variant=1
.text
rep
movsw word ptr es:[rdi], word ptr [rsi]
$ echo "0x66 0xf3 0xa6"|./build/bin/llvm-mc --disassemble
-triple=x86_64 -output-asm-variant=1
.text
cmpsb byte ptr [rsi], byte ptr es:[rdi]
You can see just by exchanging the order of 0xf3 & 0x66, we get
different result. F3 in this case is not really a prefix for REP I
think.
Is there any solution to fix this?
Thanks.
Jun
More information about the llvm-dev
mailing list