https://sourceware.org/bugzilla/show_bug.cgi?id=24626
Bug ID: 24626
Summary: gas/objdump does not check for reserved vex.vvvv bits.
Product: binutils
Version: 2.32
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: gas
Assignee: unassigned at sourceware dot org
Reporter: hgreving at google dot com
Target Milestone: ---
gas and objdump don't seem to check the vex.vvvv and evex.vvvv bits if their
encoding is reserved:
main.s:
.byte 0xc4
.byte 0xe2
.byte 0x1
.byte 0x1c
.byte 0x41
.byte 0x37
as-new --64 main.s
objdump -d a.out
[..]
c4 e2 01 1c 41 37 vpabsb 0x37(%rcx),%xmm0
Intel's manual states that "VEX.vvvv and EVEX.vvvv are reserved and must be
1111b otherwise instructions will #UD." I suppose this means the inverted
version of the vvvv bits.
llvm-mc for example is correct:
echo '0xc4 0xe2 0x1 0x1c 0x41 0x37' | llvm-mc-7 --disassemble -triple=x86_64
.text
<stdin>:1:1: warning: invalid instruction encoding
0xc4 0xe2 0x1 0x1c 0x41 0x37
^
echo '0xc4 0xe2 0x79 0x1c 0x41 0x37' | llvm-mc-7 --disassemble -triple=x86_64
.text
vpabsb 55(%rcx), %xmm0
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-binutils