From: Jan Beulich Date: Thu, 16 Nov 2017 11:28:06 +0000 (+0100) Subject: ix86/Intel: don't require memory operand size specifier for PTWRITE X-Git-Tag: users/ARM/embedded-binutils-master-2017q4~204 X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fbinutils-gdb.git;a=commitdiff_plain;h=c2b9da16088f8c500ab93e9a4e3001ab7393cb38 ix86/Intel: don't require memory operand size specifier for PTWRITE Other than in 64-bit mode, in 32- and 16-bit modes operand size isn't ambiguous. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index eae7a295155..e1aacffd964 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,12 @@ +2017-11-16 Jan Beulich + + * config/tc-i386.c (process_suffix): Ignore .no_qsuf outside of + 64-bit mode. + * testsuite/gas/i386/ptwrite.s: Add test for memory operand + without DWORD PTR. + * testsuite/gas/i386/ptwrite.d, + testsuite/gas/i386/ptwrite-intel.d: Adjust expectations. + 2017-11-15 H.J. Lu * testsuite/gas/i386/noextreg.s: Replace .code64/.code32 and diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index f20be8ef9dc..5a7066c1dd6 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -5565,7 +5565,7 @@ process_suffix (void) suffixes |= 1 << 3; if (!i.tm.opcode_modifier.no_ssuf) suffixes |= 1 << 4; - if (!i.tm.opcode_modifier.no_qsuf) + if (flag_code == CODE_64BIT && !i.tm.opcode_modifier.no_qsuf) suffixes |= 1 << 5; /* There are more than suffix matches. */ diff --git a/gas/testsuite/gas/i386/ptwrite-intel.d b/gas/testsuite/gas/i386/ptwrite-intel.d index d39609aef7d..f0f2aad2f9e 100644 --- a/gas/testsuite/gas/i386/ptwrite-intel.d +++ b/gas/testsuite/gas/i386/ptwrite-intel.d @@ -15,4 +15,5 @@ Disassembly of section \.text: +[a-f0-9]+: f3 0f ae 21 ptwrite DWORD PTR \[ecx\] +[a-f0-9]+: f3 0f ae e1 ptwrite ecx +[a-f0-9]+: f3 0f ae 21 ptwrite DWORD PTR \[ecx\] + +[a-f0-9]+: f3 0f ae 21 ptwrite DWORD PTR \[ecx\] #pass diff --git a/gas/testsuite/gas/i386/ptwrite.d b/gas/testsuite/gas/i386/ptwrite.d index 399c7404293..31552bce915 100644 --- a/gas/testsuite/gas/i386/ptwrite.d +++ b/gas/testsuite/gas/i386/ptwrite.d @@ -15,4 +15,5 @@ Disassembly of section \.text: +[a-f0-9]+: f3 0f ae 21 ptwritel \(%ecx\) +[a-f0-9]+: f3 0f ae e1 ptwrite %ecx +[a-f0-9]+: f3 0f ae 21 ptwritel \(%ecx\) + +[a-f0-9]+: f3 0f ae 21 ptwritel \(%ecx\) #pass diff --git a/gas/testsuite/gas/i386/ptwrite.s b/gas/testsuite/gas/i386/ptwrite.s index 3aa4be7c847..61efd7e1283 100644 --- a/gas/testsuite/gas/i386/ptwrite.s +++ b/gas/testsuite/gas/i386/ptwrite.s @@ -9,4 +9,5 @@ _start: .intel_syntax noprefix ptwrite ecx + ptwrite [ecx] ptwrite DWORD PTR [ecx]