aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2001-02-06 19:09:01 +0000
committerH.J. Lu <hjl.tools@gmail.com>2001-02-06 19:09:01 +0000
commit85b40035ddc3e941faf89252e5a931a802e0e22b (patch)
treec6cac299dd8792e0a8829a959e5bd6e7fd81248d
parent27def10f96de55e218df1ae91c2910db11af7564 (diff)
downloadgdb-85b40035ddc3e941faf89252e5a931a802e0e22b.zip
gdb-85b40035ddc3e941faf89252e5a931a802e0e22b.tar.gz
gdb-85b40035ddc3e941faf89252e5a931a802e0e22b.tar.bz2
2001-02-06 H.J. Lu <hjl@gnu.org>
* config/tc-ia64.h (TC_RELOC_RTSYM_LOC_FIXUP): New. Defined. * config/tc-ia64.c (md_parse_option): Only accept the valid ia64 options on "-axxx".
-rw-r--r--gas/config/tc-ia64.c3
-rw-r--r--gas/config/tc-ia64.h12
2 files changed, 14 insertions, 1 deletions
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index b905095..0b31a55 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -5834,12 +5834,13 @@ md_parse_option (c, arg)
break;
case 'a':
- /* ??? Conflicts with gas' listing option. */
/* indirect=<tgt> Assume unannotated indirect branches behavior
according to <tgt> --
exit: branch out from the current context (default)
labels: all labels in context may be branch targets
*/
+ if (strncmp (arg, "indirect=", 9) != 0)
+ return 0;
break;
case 'x':
diff --git a/gas/config/tc-ia64.h b/gas/config/tc-ia64.h
index fd802de..a3353fc 100644
--- a/gas/config/tc-ia64.h
+++ b/gas/config/tc-ia64.h
@@ -246,3 +246,15 @@ typedef struct unwind_record
unw_x_record x;
} record;
} unwind_record;
+
+/* This expression evaluates to false if the relocation is for a local
+ object for which we still want to do the relocation at runtime.
+ True if we are willing to perform this relocation while building
+ the .o file. This is only used for pcrel relocations. */
+
+#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \
+ ((FIX)->fx_addsy == NULL \
+ || (! S_IS_EXTERNAL ((FIX)->fx_addsy) \
+ && ! S_IS_WEAK ((FIX)->fx_addsy) \
+ && S_IS_DEFINED ((FIX)->fx_addsy) \
+ && ! S_IS_COMMON ((FIX)->fx_addsy)))