aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2021-10-23 07:37:33 -0700
committerH.J. Lu <hjl.tools@gmail.com>2021-10-25 10:38:04 -0700
commitb3a9fe6f51fd3922ce7978b6ba5ce0cbdf33885e (patch)
treec54c0934db19b16741de0580e2bfb1d6bdc793d2 /gas/config
parent9de46719da07a439af59088d69cb4dd70c030612 (diff)
downloadfsf-binutils-gdb-b3a9fe6f51fd3922ce7978b6ba5ce0cbdf33885e.zip
fsf-binutils-gdb-b3a9fe6f51fd3922ce7978b6ba5ce0cbdf33885e.tar.gz
fsf-binutils-gdb-b3a9fe6f51fd3922ce7978b6ba5ce0cbdf33885e.tar.bz2
x86: Also handle stores for -muse-unaligned-vector-move
* config/tc-i386.c (encode_with_unaligned_vector_move): Also handle stores. * testsuite/gas/i386/unaligned-vector-move.s: Add stores. * testsuite/gas/i386/unaligned-vector-move.d: Updated. * testsuite/gas/i386/x86-64-unaligned-vector-move.d: Likewise.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-i386.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index ef30a6b..320ea7e 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -4083,13 +4083,15 @@ encode_with_unaligned_vector_move (void)
{
switch (i.tm.base_opcode)
{
- case 0x28:
+ case 0x28: /* Load instructions. */
+ case 0x29: /* Store instructions. */
/* movaps/movapd/vmovaps/vmovapd. */
if (i.tm.opcode_modifier.opcodespace == SPACE_0F
&& i.tm.opcode_modifier.opcodeprefix <= PREFIX_0X66)
- i.tm.base_opcode = 0x10;
+ i.tm.base_opcode = 0x10 | (i.tm.base_opcode & 1);
break;
- case 0x6f:
+ case 0x6f: /* Load instructions. */
+ case 0x7f: /* Store instructions. */
/* movdqa/vmovdqa/vmovdqa64/vmovdqa32. */
if (i.tm.opcode_modifier.opcodespace == SPACE_0F
&& i.tm.opcode_modifier.opcodeprefix == PREFIX_0X66)