forked from Imagelibrary/binutils-gdb
PR 2512.
* config/tc-i386.c (match_template): Move 64-bit operand tests inside loop.
This commit is contained in:
@@ -1,3 +1,9 @@
|
|||||||
|
2006-04-07 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
PR 2512.
|
||||||
|
* config/tc-i386.c (match_template): Move 64-bit operand tests
|
||||||
|
inside loop.
|
||||||
|
|
||||||
2006-04-06 Carlos O'Donell <carlos@codesourcery.com>
|
2006-04-06 Carlos O'Donell <carlos@codesourcery.com>
|
||||||
|
|
||||||
* po/Make-in: Add install-html target.
|
* po/Make-in: Add install-html target.
|
||||||
|
|||||||
@@ -2263,19 +2263,7 @@ match_template ()
|
|||||||
: (i.suffix == LONG_DOUBLE_MNEM_SUFFIX
|
: (i.suffix == LONG_DOUBLE_MNEM_SUFFIX
|
||||||
? No_xSuf : 0))))));
|
? No_xSuf : 0))))));
|
||||||
|
|
||||||
t = current_templates->start;
|
for (t = current_templates->start; t < current_templates->end; t++)
|
||||||
if (i.suffix == QWORD_MNEM_SUFFIX
|
|
||||||
&& flag_code != CODE_64BIT
|
|
||||||
&& (intel_syntax
|
|
||||||
? !(t->opcode_modifier & IgnoreSize)
|
|
||||||
&& !intel_float_operand (t->name)
|
|
||||||
: intel_float_operand (t->name) != 2)
|
|
||||||
&& (!(t->operand_types[0] & (RegMMX | RegXMM))
|
|
||||||
|| !(t->operand_types[t->operands > 1] & (RegMMX | RegXMM)))
|
|
||||||
&& (t->base_opcode != 0x0fc7
|
|
||||||
|| t->extension_opcode != 1 /* cmpxchg8b */))
|
|
||||||
t = current_templates->end;
|
|
||||||
for (; t < current_templates->end; t++)
|
|
||||||
{
|
{
|
||||||
/* Must have right number of operands. */
|
/* Must have right number of operands. */
|
||||||
if (i.operands != t->operands)
|
if (i.operands != t->operands)
|
||||||
@@ -2287,6 +2275,19 @@ match_template ()
|
|||||||
&& (t->opcode_modifier & IgnoreSize)))
|
&& (t->opcode_modifier & IgnoreSize)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
/* In general, don't allow 64-bit operands in 32-bit mode. */
|
||||||
|
if (i.suffix == QWORD_MNEM_SUFFIX
|
||||||
|
&& flag_code != CODE_64BIT
|
||||||
|
&& (intel_syntax
|
||||||
|
? (!(t->opcode_modifier & IgnoreSize)
|
||||||
|
&& !intel_float_operand (t->name))
|
||||||
|
: intel_float_operand (t->name) != 2)
|
||||||
|
&& (!(t->operand_types[0] & (RegMMX | RegXMM))
|
||||||
|
|| !(t->operand_types[t->operands > 1] & (RegMMX | RegXMM)))
|
||||||
|
&& (t->base_opcode != 0x0fc7
|
||||||
|
|| t->extension_opcode != 1 /* cmpxchg8b */))
|
||||||
|
continue;
|
||||||
|
|
||||||
/* Do not verify operands when there are none. */
|
/* Do not verify operands when there are none. */
|
||||||
else if (!t->operands)
|
else if (!t->operands)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user