diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2016-04-04 21:19:27 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2016-04-04 21:19:27 -0700 |
commit | 5be33403c378ceb9487ad14a1309392dc03a1263 (patch) | |
tree | fe6ab152a83e85bc529ee95ea4091a3e42110075 /gas/config/tc-i386.c | |
parent | 5fdf38727b4381d074dc929fd4b027a8779108fe (diff) | |
download | gdb-5be33403c378ceb9487ad14a1309392dc03a1263.zip gdb-5be33403c378ceb9487ad14a1309392dc03a1263.tar.gz gdb-5be33403c378ceb9487ad14a1309392dc03a1263.tar.bz2 |
Don't use vec_disp8 encoding with the .d32 suffix
Since the .d32 suffix prefers 32-bit displacement in encoding, try
vec_disp8 encoding only if i.disp_encoding != disp_encoding_32bit.
PR gas/19909
* config/tc-i386.c (check_VecOperands): Try vec_disp8 encoding
only if i.disp_encoding != disp_encoding_32bit.
* gas/testsuite/gas/i386/disp32.s: Add tests for vmovdqu64.d32.
* gas/testsuite/gas/i386/x86-64-disp32.s: Likewise.
* gas/testsuite/gas/i386/disp32.d: Updated.
* gas/testsuite/gas/i386/x86-64-disp32.d: Likewise.
Diffstat (limited to 'gas/config/tc-i386.c')
-rw-r--r-- | gas/config/tc-i386.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index ce5304d..f382a73 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -4575,7 +4575,9 @@ check_VecOperands (const insn_template *t) && i.op[op].disps->X_op == O_constant) { offsetT value = i.op[op].disps->X_add_number; - int vec_disp8_ok = fits_in_vec_disp8 (value); + int vec_disp8_ok + = (i.disp_encoding != disp_encoding_32bit + && fits_in_vec_disp8 (value)); if (t->operand_types [op].bitfield.vec_disp8) { if (vec_disp8_ok) |