* config/tc-ppc.c (ppc_elf_suffix): Undo part of last change so that

x@toc+off works.
This commit is contained in:
Alan Modra 2003-02-06 01:24:17 +00:00
parent cbf1e08505
commit 5f6db75ada
2 changed files with 24 additions and 21 deletions

View file

@ -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.

View file

@ -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;