summaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJoern Rennecke <joern.rennecke@embecosm.com>2002-06-07 10:24:56 +0000
committerJoern Rennecke <joern.rennecke@embecosm.com>2002-06-07 10:24:56 +0000
commitdbb4348d4ac828d47e267f077b3ac1c5ad36affb (patch)
treea0cd688b31e7d58175c174a0ef91f7e9f1d44f67 /gas
parent3fad3c7c229b6bd595eb5a562ca866600e905389 (diff)
downloadbinutils-gdb-dbb4348d4ac828d47e267f077b3ac1c5ad36affb.tar.gz
Add comment for last change.
Diffstat (limited to 'gas')
-rw-r--r--gas/config/tc-sh.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c
index cd6f90c861a..f7aa62515d8 100644
--- a/gas/config/tc-sh.c
+++ b/gas/config/tc-sh.c
@@ -1383,6 +1383,21 @@ parse_at (src, op)
}
else if (mode == A_PC)
{
+ /* We want @(expr, pc) to uniformly address . + expr,
+ no matter if expr is a constant, or a more complex
+ expression, e.g. sym-. or sym1-sym2.
+ However, we also used to accept @(sym,pc)
+ as adressing sym, i.e. meaning the same as plain sym.
+ Some existing code does use the @(sym,pc) syntax, so
+ we give it the old semantics for now, but warn about
+ its use, so that users have some time to fix their code.
+
+ Note that due to this backward compatibility hack,
+ we'll get unexpected results when @(offset, pc) is used,
+ and offset is a symbol that is set later to an an address
+ difference, or an external symbol that is set to an
+ address difference in another source file, so we want to
+ eventually remove it. */
if (op->immediate.X_op == O_symbol)
{
op->type = A_DISP_PC;