+2000-10-15 Diego Novillo <dnovillo@cygnus.com>
+
+ * config/tc-i386.c (i386_operand_modifier): Only match
+ modifiers SHORT and FLAT if they are followed by a space.
+ (parse_register): When `allow_naked_reg' is set, do not confuse
+ identifiers that start with a register name with a register.
+
2000-10-12 Kazu Hirata <kazu@hxi.com>
* app.c: Fix formatting.
return XWORD_PTR;
}
- else if (!strncasecmp (*op_string, "SHORT", 5))
+ /* Compare with space separator to avoid confusing identifier `short_var'
+ with attribute `short'. */
+ else if (!strncasecmp (*op_string, "SHORT ", 6))
{
*op_string += 5;
return SHORT;
return OFFSET_FLAT;
}
- else if (!strncasecmp (*op_string, "FLAT", 4))
+ /* Compare with space separator to avoid confusing identifier `flat_var'
+ with attribute `flat'. */
+ else if (!strncasecmp (*op_string, "FLAT ", 5))
{
*op_string += 4;
return FLAT;
s++;
}
+ /* For naked regs, make sure that we are not dealing with an identifier.
+ This prevents confusing an identifier like `eax_var' with register
+ `eax'. */
+ if (allow_naked_reg && identifier_chars[(unsigned char) *s])
+ return (const reg_entry *) NULL;
+
*end_op = s;
r = (const reg_entry *) hash_find (reg_hash, reg_name_given);
+2000-10-15 Diego Novillo <dnovillo@cygnus.com>
+
+ * intel.s, intel.d: Add new tests for naked registers using intel
+ syntax.
+
2000-09-29 Hans-Peter Nilsson <hp@axis.com>
* gas/cris/regprefix-err-1.s, gas/cris/rd-regprefix-1.s,
9b8: 66 0f bd 90 90 90 90 90 [ ]*bsr 0x90909090\(%eax\),%dx
9c0: 66 0f be 90 90 90 90 90 [ ]*movsbw 0x90909090\(%eax\),%dx
9c8: 66 0f c1 90 90 90 90 90 [ ]*xadd %dx,0x90909090\(%eax\)
+
+000009d0 <gs_foo>:
+ 9d0: c3 [ ]*ret
+
+000009d1 <short_foo>:
+ 9d1: c3 [ ]*ret
+
+000009d2 <bar>:
+ 9d2: e8 f9 ff ff ff [ ]*call 9d0 <gs_foo>
+ 9d7: e8 f5 ff ff ff [ ]*call 9d1 <short_foo>