https://sourceware.org/bugzilla/show_bug.cgi?id=23314
Bug ID: 23314
Summary: Displacement values are mis-assembled for vmovdqu64
between registers and memory
Product: binutils
Version: 2.30
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: gas
Assignee: unassigned at sourceware dot org
Reporter: [email protected]
Target Milestone: ---
Detailed description
====================
When using vmovdqu64 to copy between a register and a memory location, the
displacement value of the address is incorrectly assembled when it is a
multiple of the register size.
This is illustrated by the following examples
Example 1 (xmm, incorrect):
vmovdqu64 0x10(,%rbx,8), %xmm0 is assembled to vmovdqu64 0x1(,%rbx,8),%xmm0
Example 2 (xmm, incorrect):
vmovdqu64 0x20(,%rbx,8), %xmm0 is assembled to vmovdqu64 0x2(,%rbx,8),%xmm0
Example 3 (xmm, correct):
vmovdqu64 0x11(,%rbx,8), %xmm0 is assembled to vmovdqu64 0x11(,%rbx,8),%xmm0
Example 4 (ymm, incorrect):
vmovdqu64 0x20(,%rbx,8), %ymm0 is assembled to vmovdqu64 0x1(,%rbx,8),%ymm0
Example 5 (ymm, correct):
vmovdqu64 0x10(,%rbx,8), %ymm0 is assembled to vmovdqu64 0x10(,%rbx,8),%ymm0
Example 6 (zmm, incorrect):
vmovdqu64 0x40(,%rbx,8), %zmm0 is assembled to vmovdqu64 0x1(,%rbx,8),%zmm0
Example 7 (zmm, correct):
vmovdqu64 0x41(,%rbx,8), %zmm0 is assembled to vmovdqu64 0x41(,%rbx,8),%zmm0
The same behaviour happens for the related instructions vmovdqa32, vmovdqa64,
vmovdqu8, vmovdqu16, vmovdqu32.
Steps to reproduce
==================
Assemble any of the above examples, and use objdump to see the produced result.
Build date and hardware
=======================
gas-2.30 on Linux 4.15.0-22-generic #24-Ubuntu SMP Wed May 16 12:15:17 UTC 2018
x86_64 x86_64 x86_64 GNU/Linux
Additional Builds and Platforms
===============================
Does not occur with gas-2.29.1 on the same system.
--
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