diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 3 | ||||
-rw-r--r-- | gas/config/tc-sh.c | 13 |
2 files changed, 7 insertions, 9 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 76413b6..944108b 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,8 @@ 2002-02-06 Alexandre Oliva <aoliva@redhat.com> + * config/tc-sh.c (parse_at): Install the correct version of + 2002-02-04's patch. + * config/tc-sh.c (md_apply_fix3) <BFD_RELOC_32_PLT_PCREL>: Don't assume fixP->fx_subsy is non-NULL. diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c index b266b80..80ff037 100644 --- a/gas/config/tc-sh.c +++ b/gas/config/tc-sh.c @@ -981,15 +981,10 @@ parse_at (src, op) } else if (mode == A_PC) { - /* Turn a plain @(4,pc) into @(.+4,pc). */ - if (op->immediate.X_op == O_constant) - { - op->immediate.X_add_symbol = dot (); - op->immediate.X_op = O_symbol; - op->type = A_DISP_PC; - } - else - op->type = A_DISP_PC_ABS; + op->type = A_DISP_PC_ABS; + /* Such operands don't get corrected for PC==.+4, so + make the correction here. */ + op->immediate.X_add_number -= 4; } else { |