mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-06 07:28:44 +08:00
* config/tc-ppc.c (ppc_elf_suffix): Undo part of last change so that
x@toc+off works.
This commit is contained in:
@ -1,3 +1,8 @@
|
||||
2003-02-06 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* config/tc-ppc.c (ppc_elf_suffix): Undo part of last change so that
|
||||
x@toc+off works.
|
||||
|
||||
2003-02-05 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* config/tc-ppc.c (mapping): Handle new TLS reloc specs.
|
||||
|
@ -1580,31 +1580,29 @@ ppc_elf_suffix (str_p, exp_p)
|
||||
}
|
||||
|
||||
if (!ppc_obj64)
|
||||
if (exp_p->X_add_number != 0
|
||||
&& (reloc == (int) BFD_RELOC_16_GOTOFF
|
||||
|| reloc == (int) BFD_RELOC_LO16_GOTOFF
|
||||
|| reloc == (int) BFD_RELOC_HI16_GOTOFF
|
||||
|| reloc == (int) BFD_RELOC_HI16_S_GOTOFF))
|
||||
as_warn (_("identifier+constant@got means identifier@got+constant"));
|
||||
|
||||
/* Now check for identifier@suffix+constant. */
|
||||
if (*str == '-' || *str == '+')
|
||||
{
|
||||
if (exp_p->X_add_number != 0
|
||||
&& (reloc == (int) BFD_RELOC_16_GOTOFF
|
||||
|| reloc == (int) BFD_RELOC_LO16_GOTOFF
|
||||
|| reloc == (int) BFD_RELOC_HI16_GOTOFF
|
||||
|| reloc == (int) BFD_RELOC_HI16_S_GOTOFF))
|
||||
as_warn (_("identifier+constant@got means identifier@got+constant"));
|
||||
char *orig_line = input_line_pointer;
|
||||
expressionS new_exp;
|
||||
|
||||
/* Now check for identifier@suffix+constant. */
|
||||
if (*str == '-' || *str == '+')
|
||||
input_line_pointer = str;
|
||||
expression (&new_exp);
|
||||
if (new_exp.X_op == O_constant)
|
||||
{
|
||||
char *orig_line = input_line_pointer;
|
||||
expressionS new_exp;
|
||||
|
||||
input_line_pointer = str;
|
||||
expression (&new_exp);
|
||||
if (new_exp.X_op == O_constant)
|
||||
{
|
||||
exp_p->X_add_number += new_exp.X_add_number;
|
||||
str = input_line_pointer;
|
||||
}
|
||||
|
||||
if (&input_line_pointer != str_p)
|
||||
input_line_pointer = orig_line;
|
||||
exp_p->X_add_number += new_exp.X_add_number;
|
||||
str = input_line_pointer;
|
||||
}
|
||||
|
||||
if (&input_line_pointer != str_p)
|
||||
input_line_pointer = orig_line;
|
||||
}
|
||||
*str_p = str;
|
||||
|
||||
|
Reference in New Issue
Block a user