[PATCH] x86/Intel: don't swap operands of MONITOR and MWAIT
Jan Beulich
JBeulich@suse.com
Tue Jul 24 14:49:00 GMT 2012
Generally, the documentation doesn't allow for any explicit operands
to be specified with MONITOR/MWAIT. To permit the more legible
overriding of the address size via specifying operands, the option is
being retained even in Intel mode, but operand swapping is being
suppressed by this patch. This is both because it makes no sense here
(all of the operands are inputs) and since not doing so would require
a more intrusive fix to process_immext() (as it currently mis-numbers
the operands in the diagnostic when in Intel mode).
2012-07-24 Jan Beulich <jbeulich@suse.com>
* config/tc-i386.c (md_assemble): Also suppress operand
swapping for MONITOR and MWAIT.
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -3100,6 +3100,8 @@ md_assemble (char *line)
&& i.operands > 1
&& (strcmp (mnemonic, "bound") != 0)
&& (strcmp (mnemonic, "invlpga") != 0)
+ && (strcmp (mnemonic, "monitor") != 0)
+ && (strcmp (mnemonic, "mwait") != 0)
&& !(operand_type_check (i.types[0], imm)
&& operand_type_check (i.types[1], imm)))
swap_operands ();
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: binutils-mainline-x86-intel-monitor-no-swap.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20120724/200879e7/attachment.ksh>
More information about the Binutils
mailing list