[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bug in AS.EXE
From: |
Alan Modra |
Subject: |
Re: bug in AS.EXE |
Date: |
Fri, 5 Oct 2001 03:30:01 +0930 |
User-agent: |
Mutt/1.3.17i |
On Thu, Oct 04, 2001 at 07:15:19PM +0200, address@hidden wrote:
>
> movdqu %xmm8,112(%esi)
>
> cc5rvcBh.s:172: Internal error, aborting at
> /djgpp/gnu/binutl-2.112/gas/config/tc-i386.c line 617 in add_prefix
Here's a fix.
* config/tc-i386.c (parse_register): If not producing code for
x86_64, reject x86_64 register name matches.
(md_assemble): Remove now redundant check for x86_64 regs.
--
Alan Modra
Index: gas/config/tc-i386.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-i386.c,v
retrieving revision 1.104
diff -u -p -r1.104 tc-i386.c
--- tc-i386.c 2001/09/19 05:33:24 1.104
+++ tc-i386.c 2001/10/04 17:54:35
@@ -1935,19 +1935,6 @@ md_assemble (line)
}
}
- if (i.reg_operands && flag_code < CODE_64BIT)
- {
- int op;
- for (op = i.operands; --op >= 0;)
- if ((i.types[op] & Reg)
- && (i.op[op].regs->reg_flags & (RegRex64|RegRex)))
- {
- as_bad (_("Extended register `%%%s' available only in 64bit
mode."),
- i.op[op].regs->reg_name);
- return;
- }
- }
-
/* If matched instruction specifies an explicit instruction mnemonic
suffix, use it. */
if (i.tm.opcode_modifier & (Size16 | Size32 | Size64))
@@ -4529,6 +4516,13 @@ parse_register (reg_string, end_op)
/* We have "%st(" then garbage. */
return (const reg_entry *) NULL;
}
+ }
+
+ if (r != NULL
+ && r->reg_flags & (RegRex64|RegRex)
+ && flag_code != CODE_64BIT)
+ {
+ return (const reg_entry *) NULL;
}
return r;
- bug in AS.EXE, bkausbk, 2001/10/04
- Re: bug in AS.EXE,
Alan Modra <=