[LLVMbugs] [Bug 10806] New: [x86 disassembler] vldmxcsr disassembled incorrectly
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Mon Aug 29 15:01:08 PDT 2011
http://llvm.org/bugs/show_bug.cgi?id=10806
Summary: [x86 disassembler] vldmxcsr disassembled incorrectly
Product: libraries
Version: trunk
Platform: PC
OS/Version: All
Status: NEW
Severity: normal
Priority: P
Component: Backend: X86
AssignedTo: unassignedbugs at nondot.org
ReportedBy: kkhoo at perfwizard.com
CC: llvmbugs at cs.uiuc.edu
According to the "Intel® 64 and IA-32 Architectures Software Developer’s Manual
Volume 2 (2A & 2B): Instruction Set Reference, A-Z", p. 3-571:
VEX.LZ.0F.WIG AE /2
VLDMXCSR m32
"LZ" in the above spec is defined on p. 3-5:
If VEX.LZ is present in the opcode column: The VEX.L must be encoded to be 0B,
an #UD occurs if VEX.L is not zero.
$ echo '0xc5 0xf0 0xae 0x11'| ./llvm-mc -disassemble -triple="x86_64"
-x86-asm-syntax=intel
ldmxcsr DWORD PTR [RCX]
$ echo '0xc4 0xc1 0x70 0xae 0x11'| ./llvm-mc -disassemble -triple="x86_64"
-x86-asm-syntax=intel
ldmxcsr DWORD PTR [R9]
When the 'L' bit is not set, the disassembler (using trunk r138250) is showing
"ldmxcsr" instead of the expected "vldmxcsr".
With the 'L' bit set, the mnemonic shows the leading 'v', but this should be
undefined according to the Intel spec:
$ echo '0xc5 0xf4 0xae 0x11'| ./llvm-mc -disassemble -triple="x86_64"
-x86-asm-syntax=intel
vldmxcsr DWORD PTR [RCX]
$ echo '0xc4 0xc1 0x74 0xae 0x11'| ./llvm-mc -disassemble -triple="x86_64"
-x86-asm-syntax=intel
vldmxcsr DWORD PTR [R9]
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list