From 5f6db75ada83d0ff7f74739da164132215ba359c Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 6 Feb 2003 01:24:17 +0000 Subject: [PATCH] * config/tc-ppc.c (ppc_elf_suffix): Undo part of last change so that x@toc+off works. --- gas/ChangeLog | 5 +++++ gas/config/tc-ppc.c | 42 ++++++++++++++++++++---------------------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 82d1072bdb6..58f3165fbf0 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2003-02-06 Alan Modra + + * config/tc-ppc.c (ppc_elf_suffix): Undo part of last change so that + x@toc+off works. + 2003-02-05 Alan Modra * config/tc-ppc.c (mapping): Handle new TLS reloc specs. diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c index 56af40abfbd..293627e3d84 100644 --- a/gas/config/tc-ppc.c +++ b/gas/config/tc-ppc.c @@ -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")); - - /* Now check for identifier@suffix+constant. */ - if (*str == '-' || *str == '+') + char *orig_line = input_line_pointer; + expressionS new_exp; + + 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; -- 2.30.2