gas/
2010-06-22 Jan Beulich <jbeulich@novell.com> PR gas/11732 * config/tc-i386-intel.c (i386_intel_parse_name): Handle pseudo symbols named "$". (i386_intel_operand): Remove bogus handling of pseudo symbols named "$". * expr.c (current_location): Remove 'static' and local declaration. * expr.h (current_location): Declare. gas/testsuite/ 2010-06-22 Jan Beulich <jbeulich@novell.com> PR gas/11732 * gas/i386/jump.d: Adjust. * gas/i386/jump.s: Add check for branch to 2+$.
This commit is contained in:
parent
41b2c92d4c
commit
b7adb16d69
7 changed files with 38 additions and 16 deletions
|
@ -1,3 +1,14 @@
|
|||
2010-06-22 Jan Beulich <jbeulich@novell.com>
|
||||
|
||||
PR gas/11732
|
||||
* config/tc-i386-intel.c (i386_intel_parse_name): Handle pseudo
|
||||
symbols named "$".
|
||||
(i386_intel_operand): Remove bogus handling of pseudo symbols
|
||||
named "$".
|
||||
* expr.c (current_location): Remove 'static' and local
|
||||
declaration.
|
||||
* expr.h (current_location): Declare.
|
||||
|
||||
2010-06-21 Sterling Augustine <sterling@tensilica.com>
|
||||
|
||||
PR gas/11728
|
||||
|
|
|
@ -191,6 +191,12 @@ static int i386_intel_parse_name (const char *name, expressionS *e)
|
|||
{
|
||||
unsigned int j;
|
||||
|
||||
if (! strcmp (name, "$"))
|
||||
{
|
||||
current_location (e);
|
||||
return 1;
|
||||
}
|
||||
|
||||
for (j = 0; i386_types[j].name; ++j)
|
||||
if (strcasecmp(i386_types[j].name, name) == 0)
|
||||
{
|
||||
|
@ -505,11 +511,6 @@ i386_intel_operand (char *operand_string, int got_a_float)
|
|||
saved_input_line_pointer = input_line_pointer;
|
||||
input_line_pointer = buf = xstrdup (operand_string);
|
||||
|
||||
/* A '$' followed by an identifier char is an identifier. Otherwise,
|
||||
it's operator '.' followed by an expression. */
|
||||
if (*buf == '$' && !is_identifier_char (buf[1]))
|
||||
*buf = '.';
|
||||
|
||||
intel_syntax = -1;
|
||||
memset (&exp, 0, sizeof(exp));
|
||||
exp_seg = expression (&exp);
|
||||
|
|
|
@ -45,7 +45,6 @@ static valueT generic_bignum_to_int64 (void);
|
|||
#endif
|
||||
static void integer_constant (int radix, expressionS * expressionP);
|
||||
static void mri_char_constant (expressionS *);
|
||||
static void current_location (expressionS *);
|
||||
static void clean_up_expression (expressionS * expressionP);
|
||||
static segT operand (expressionS *, enum expr_mode);
|
||||
static operatorT operatorf (int *);
|
||||
|
@ -695,7 +694,7 @@ mri_char_constant (expressionS *expressionP)
|
|||
/* Return an expression representing the current location. This
|
||||
handles the magic symbol `.'. */
|
||||
|
||||
static void
|
||||
void
|
||||
current_location (expressionS *expressionp)
|
||||
{
|
||||
if (now_seg == absolute_section)
|
||||
|
|
|
@ -174,6 +174,7 @@ extern segT expr (int, expressionS *, enum expr_mode);
|
|||
extern unsigned int get_single_number (void);
|
||||
extern symbolS *make_expr_symbol (expressionS * expressionP);
|
||||
extern int expr_symbol_where (symbolS *, char **, unsigned int *);
|
||||
extern void current_location (expressionS *);
|
||||
|
||||
extern symbolS *expr_build_uconstant (offsetT);
|
||||
extern symbolS *expr_build_dot (void);
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2010-06-22 Jan Beulich <jbeulich@novell.com>
|
||||
|
||||
PR gas/11732
|
||||
* gas/i386/jump.d: Adjust.
|
||||
* gas/i386/jump.s: Add check for branch to 2+$.
|
||||
|
||||
2010-06-18 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* gas/tic6x/resource-func-unit-1.d,
|
||||
|
|
|
@ -34,22 +34,24 @@ Disassembly of section .text:
|
|||
[ ]*[a-f0-9]+: ff 2b ljmp \*\(%ebx\)
|
||||
[ ]*[a-f0-9]+: eb 00 jmp (0x)?7b( <.text(\+0x7b)?>)?
|
||||
[ ]*[a-f0-9]+: 90 nop
|
||||
[ ]*[a-f0-9]+: eb 00 jmp (0x)?7e( <.text(\+0x7e)?>)?
|
||||
[ ]*[a-f0-9]+: e3 00 jecxz (0x)?7e( <.text(\+0x7e)?>)?
|
||||
[ ]*[a-f0-9]+: 90 nop
|
||||
[ ]*[a-f0-9]+: eb 00 jmp (0x)?81( <.text(\+0x81)?>)?
|
||||
[ ]*[a-f0-9]+: 90 nop
|
||||
[ ]*[a-f0-9]+: 9a 90 90 90 90 90 90 lcall \$0x9090,\$0x90909090
|
||||
[ ]*[a-f0-9]+: 9a 90 90 90 90 90 90 lcall \$0x9090,\$0x90909090
|
||||
[ ]*[a-f0-9]+: 9a 00 00 00 00 90 90 lcall \$0x9090,\$0x0 8e: (R_386_)?(dir)?32 xxx
|
||||
[ ]*[a-f0-9]+: 9a 00 00 00 00 90 90 lcall \$0x9090,\$0x0 95: (R_386_)?(dir)?32 xxx
|
||||
[ ]*[a-f0-9]+: 9a 00 00 00 00 90 90 lcall \$0x9090,\$0x0[ ]+[a-f0-9]+: (R_386_)?(dir)?32 xxx
|
||||
[ ]*[a-f0-9]+: 9a 00 00 00 00 90 90 lcall \$0x9090,\$0x0[ ]+[a-f0-9]+: (R_386_)?(dir)?32 xxx
|
||||
[ ]*[a-f0-9]+: 9a 90 90 90 90 90 90 lcall \$0x9090,\$0x90909090
|
||||
[ ]*[a-f0-9]+: 9a 90 90 90 90 90 90 lcall \$0x9090,\$0x90909090
|
||||
[ ]*[a-f0-9]+: 9a 00 00 00 00 90 90 lcall \$0x9090,\$0x0 aa: (R_386_)?(dir)?32 xxx
|
||||
[ ]*[a-f0-9]+: 9a 00 00 00 00 90 90 lcall \$0x9090,\$0x0 b1: (R_386_)?(dir)?32 xxx
|
||||
[ ]*[a-f0-9]+: 9a 00 00 00 00 90 90 lcall \$0x9090,\$0x0[ ]+[a-f0-9]+: (R_386_)?(dir)?32 xxx
|
||||
[ ]*[a-f0-9]+: 9a 00 00 00 00 90 90 lcall \$0x9090,\$0x0[ ]+[a-f0-9]+: (R_386_)?(dir)?32 xxx
|
||||
[ ]*[a-f0-9]+: ea 90 90 90 90 90 90 ljmp \$0x9090,\$0x90909090
|
||||
[ ]*[a-f0-9]+: ea 90 90 90 90 90 90 ljmp \$0x9090,\$0x90909090
|
||||
[ ]*[a-f0-9]+: ea 00 00 00 00 90 90 ljmp \$0x9090,\$0x0 c6: (R_386_)?(dir)?32 xxx
|
||||
[ ]*[a-f0-9]+: ea 00 00 00 00 90 90 ljmp \$0x9090,\$0x0 cd: (R_386_)?(dir)?32 xxx
|
||||
[ ]*[a-f0-9]+: ea 00 00 00 00 90 90 ljmp \$0x9090,\$0x0[ ]+[a-f0-9]+: (R_386_)?(dir)?32 xxx
|
||||
[ ]*[a-f0-9]+: ea 00 00 00 00 90 90 ljmp \$0x9090,\$0x0[ ]+[a-f0-9]+: (R_386_)?(dir)?32 xxx
|
||||
[ ]*[a-f0-9]+: ea 90 90 90 90 90 90 ljmp \$0x9090,\$0x90909090
|
||||
[ ]*[a-f0-9]+: ea 90 90 90 90 90 90 ljmp \$0x9090,\$0x90909090
|
||||
[ ]*[a-f0-9]+: ea 00 00 00 00 90 90 ljmp \$0x9090,\$0x0 e2: (R_386_)?(dir)?32 xxx
|
||||
[ ]*[a-f0-9]+: ea 00 00 00 00 90 90 ljmp \$0x9090,\$0x0 e9: (R_386_)?(dir)?32 xxx
|
||||
[ ]*[a-f0-9]+: ea 00 00 00 00 90 90 ljmp \$0x9090,\$0x0[ ]+[a-f0-9]+: (R_386_)?(dir)?32 xxx
|
||||
[ ]*[a-f0-9]+: ea 00 00 00 00 90 90 ljmp \$0x9090,\$0x0[ ]+[a-f0-9]+: (R_386_)?(dir)?32 xxx
|
||||
#pass
|
||||
|
|
|
@ -33,6 +33,8 @@
|
|||
jmp fword ptr [ebx]
|
||||
jmp $+2
|
||||
nop
|
||||
jecxz 2+$
|
||||
nop
|
||||
jmp .+2
|
||||
nop
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue