aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/config/tc-i386.c20
1 files changed, 4 insertions, 16 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 1e580b9..69b2670 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -9867,10 +9867,9 @@ check_long_reg (void)
/* Reject eight bit registers, except where the template requires
them. (eg. movzb) */
else if (i.types[op].bitfield.byte
- && (i.tm.operand_types[op].bitfield.class == Reg
- || i.tm.operand_types[op].bitfield.instance == Accum)
&& (i.tm.operand_types[op].bitfield.word
- || i.tm.operand_types[op].bitfield.dword))
+ || i.tm.operand_types[op].bitfield.dword
+ || i.tm.operand_types[op].bitfield.qword))
{
as_bad (_("`%s%s' not allowed with `%s%c'"),
register_prefix,
@@ -9883,8 +9882,6 @@ check_long_reg (void)
prefix on a general reg is present. */
else if ((i.types[op].bitfield.word
|| i.types[op].bitfield.qword)
- && (i.tm.operand_types[op].bitfield.class == Reg
- || i.tm.operand_types[op].bitfield.instance == Accum)
&& i.tm.operand_types[op].bitfield.dword)
{
as_bad (_("incorrect register `%s%s' used with `%c' suffix"),
@@ -9907,8 +9904,6 @@ check_qword_reg (void)
/* Reject eight bit registers, except where the template requires
them. (eg. movzb) */
else if (i.types[op].bitfield.byte
- && (i.tm.operand_types[op].bitfield.class == Reg
- || i.tm.operand_types[op].bitfield.instance == Accum)
&& (i.tm.operand_types[op].bitfield.word
|| i.tm.operand_types[op].bitfield.dword
|| i.tm.operand_types[op].bitfield.qword))
@@ -9923,12 +9918,8 @@ check_qword_reg (void)
/* Error if the r prefix on a general reg is missing. */
else if ((i.types[op].bitfield.word
|| i.types[op].bitfield.dword)
- && (i.tm.operand_types[op].bitfield.class == Reg
- || i.tm.operand_types[op].bitfield.instance == Accum)
&& i.tm.operand_types[op].bitfield.qword)
{
- /* Prohibit these changes in the 64bit mode, since the
- lowering is more complicated. */
as_bad (_("incorrect register `%s%s' used with `%c' suffix"),
register_prefix, i.op[op].regs->reg_name, i.suffix);
return 0;
@@ -9947,10 +9938,9 @@ check_word_reg (void)
/* Reject eight bit registers, except where the template requires
them. (eg. movzb) */
else if (i.types[op].bitfield.byte
- && (i.tm.operand_types[op].bitfield.class == Reg
- || i.tm.operand_types[op].bitfield.instance == Accum)
&& (i.tm.operand_types[op].bitfield.word
- || i.tm.operand_types[op].bitfield.dword))
+ || i.tm.operand_types[op].bitfield.dword
+ || i.tm.operand_types[op].bitfield.qword))
{
as_bad (_("`%s%s' not allowed with `%s%c'"),
register_prefix,
@@ -9962,8 +9952,6 @@ check_word_reg (void)
/* Error if the e or r prefix on a general reg is present. */
else if ((i.types[op].bitfield.dword
|| i.types[op].bitfield.qword)
- && (i.tm.operand_types[op].bitfield.class == Reg
- || i.tm.operand_types[op].bitfield.instance == Accum)
&& i.tm.operand_types[op].bitfield.word)
{
as_bad (_("incorrect register `%s%s' used with `%c' suffix"),