diff options
Diffstat (limited to 'gas/config/tc-sh.c')
-rw-r--r-- | gas/config/tc-sh.c | 13 |
1 files changed, 4 insertions, 9 deletions
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 { |