+2002-07-12 Alan Modra <amodra@bigpond.net.au>
+
+ * config/tc-i386.c (process_suffix): Merge CODE_64BIT JumpByte
+ case with non CODE_64BIT case. Don't warn on "qword ptr" if
+ not CODE_64BIT.
+
2002-07-11 Alan Modra <amodra@bigpond.net.au>
* config/tc-ppc.c (ppc_elf_frob_symbol): Delete.
size prefix, except for instructions that will ignore this
prefix anyway. */
if (i.suffix != QWORD_MNEM_SUFFIX
- && (i.suffix == LONG_MNEM_SUFFIX) == (flag_code == CODE_16BIT)
- && !(i.tm.opcode_modifier & IgnoreSize))
+ && !(i.tm.opcode_modifier & IgnoreSize)
+ && ((i.suffix == LONG_MNEM_SUFFIX) == (flag_code == CODE_16BIT)
+ || (flag_code == CODE_64BIT
+ && (i.tm.opcode_modifier & JumpByte))))
{
unsigned int prefix = DATA_PREFIX_OPCODE;
if (i.tm.opcode_modifier & JumpByte) /* jcxz, loop */
return 0;
}
- if (i.suffix != QWORD_MNEM_SUFFIX && (flag_code == CODE_64BIT)
- && !(i.tm.opcode_modifier & IgnoreSize)
- && (i.tm.opcode_modifier & JumpByte))
- {
- if (!add_prefix (ADDR_PREFIX_OPCODE))
- return 0;
- }
-
/* Set mode64 for an operand. */
if (i.suffix == QWORD_MNEM_SUFFIX
+ && flag_code == CODE_64BIT
&& (i.tm.opcode_modifier & NoRex64) == 0)
- {
- i.rex |= REX_MODE64;
- if (flag_code < CODE_64BIT)
- {
- as_bad (_("64bit operations available only in 64bit modes."));
- return 0;
- }
- }
+ i.rex |= REX_MODE64;
/* Size floating point instruction. */
if (i.suffix == LONG_MNEM_SUFFIX)