* configure.in: Define DEFAULT_ARCH for i386.

* tc-i386.c (md_assemble): Return after the error message;
	move testing for 64bit operands to proper place.

	* i386.exp: Add tests for presence of 32bit versus 64bit output
	format; run both 64bit and 32bit tests when format is available;
	add x86_64 test.
	* x86_64.s: New file.
	* x86_64.d: New file.
This commit is contained in:
Jan Hubicka
2001-01-06 12:36:04 +00:00
parent 55b6267185
commit b96d3a207a
8 changed files with 521 additions and 174 deletions

View File

@ -1863,8 +1863,11 @@ md_assemble (line)
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);
{
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
@ -2006,8 +2009,6 @@ md_assemble (line)
else if (i.suffix == QWORD_MNEM_SUFFIX)
{
int op;
if (flag_code < CODE_64BIT)
as_bad (_("64bit operations available only in 64bit modes."));
for (op = i.operands; --op >= 0; )
/* Reject eight bit registers, except where the template
@ -2197,7 +2198,14 @@ md_assemble (line)
/* Set mode64 for an operand. */
if (i.suffix == QWORD_MNEM_SUFFIX
&& !(i.tm.opcode_modifier & NoRex64))
{
i.rex.mode64 = 1;
if (flag_code < CODE_64BIT)
{
as_bad (_("64bit operations available only in 64bit modes."));
return;
}
}
/* Size floating point instruction. */
if (i.suffix == LONG_MNEM_SUFFIX)