aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-mn10300.h
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2003-07-10 03:20:14 +0000
committerAlexandre Oliva <aoliva@redhat.com>2003-07-10 03:20:14 +0000
commitbf6f0d0c2085736c81288c79276533b36ed97196 (patch)
tree98667522affab11c50c4f096c76a7c1f81447428 /gas/config/tc-mn10300.h
parent03a1283107732b92a50c1871ee36f64d88a2877e (diff)
downloadgdb-bf6f0d0c2085736c81288c79276533b36ed97196.zip
gdb-bf6f0d0c2085736c81288c79276533b36ed97196.tar.gz
gdb-bf6f0d0c2085736c81288c79276533b36ed97196.tar.bz2
2003-02-25 Alexandre Oliva <aoliva@redhat.com>
* config/tc-mn10300.c (mn10300_check_fixup): Set GOT_PCREL type for subtracts from GLOBAL_OFFSET_TABLE that could not be simplified. 2002-07-18 Alexandre Oliva <aoliva@redhat.com> * config/tc-mn10300.c (mn10300_check_fixup): Accept subtracts that could not be simplified. (tc_gen_reloc): Turn an absolute fx_subsy into part of fx_offset. 2001-11-04 Alexandre Oliva <aoliva@redhat.com> * config/tc-mn10300.h (TC_RELOC_RTSYM_LOC_FIXUP): Don't adjust BDF_RELOC_MN10300_GOT32. * config/tc-mn10300.c (mn10300_fix_adjustable): If TC_RELOC_RTSYM_LOC_FIXUP doesn't hold, it's not adjustable. 2001-05-09 Alexandre Oliva <aoliva@redhat.com> * config/tc-mn10300.c (mn10300_parse_name): Don't return a symbol if we know its value. 2001-05-09 Alexandre Oliva <aoliva@redhat.com> * config/tc-mn10300.h (GLOBAL_OFFSET_TABLE_NAME): Remove duplicate underscore prefix. 2001-05-09 Alexandre Oliva <aoliva@redhat.com> * config/tc-mn10300.c (mn10300_parse_name): Store relocation type in X_md, not X_add_number. Zero X_add_number. (mn10300_check_fixup): Extract relocation type from X_md. * config/tc-mn10300.h: Update comment. 2001-04-14 Alexandre Oliva <aoliva@redhat.com> * config/tc-mn10300.h (O_GOTOFF, O_PLT, O_GOT): Replace with... (O_PIC_reloc): this. * config/tc-mn10300.c (mn10300_PIC_related_p): Use it. (mn10300_check_fixup): Likewise. (mn10300_parse_name): Set X_add_number to relocation type. * config/tc-mn10300.h (DIFF_EXPR_OK, GLOBAL_OFFSET_TABLE_NAME, TC_RELOC_RTSYM_LOC_FIXUP, md_parse_name, TC_CONS_FIX_NEW, O_GOTOFF, O_PLT, O_GOT): Define. * config/tc-mn10300.c (mn10300_PIC_related_p): New fn. (mn10300_check_fixup): New fn. (md_assemble): Call it. Check for PIC-related relocs. (mn10300_cons_fix_new): Likewise. New fn. (mn10300_end_of_match): New fn. (mn10300_md_parse_name_cont): New fn.
Diffstat (limited to 'gas/config/tc-mn10300.h')
-rw-r--r--gas/config/tc-mn10300.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/gas/config/tc-mn10300.h b/gas/config/tc-mn10300.h
index 736f93b..9551652 100644
--- a/gas/config/tc-mn10300.h
+++ b/gas/config/tc-mn10300.h
@@ -27,6 +27,31 @@
#error MN10300 support requires BFD_ASSEMBLER
#endif
+#define DIFF_EXPR_OK
+#define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_"
+
+#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \
+ ((FIX)->fx_r_type != BFD_RELOC_32_PLT_PCREL \
+ && (FIX)->fx_r_type != BFD_RELOC_MN10300_GOT32 \
+ && (FIX)->fx_r_type != BFD_RELOC_32_GOT_PCREL \
+ && ((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))))
+
+#define md_parse_name(name, exprP, nextcharP) \
+ mn10300_parse_name ((name), (exprP), (nextcharP))
+int mn10300_parse_name PARAMS ((char const *, expressionS *, char *));
+
+#define TC_CONS_FIX_NEW(FRAG, OFF, LEN, EXP) \
+ mn10300_cons_fix_new ((FRAG), (OFF), (LEN), (EXP))
+void mn10300_cons_fix_new PARAMS ((fragS *, int, int, expressionS *));
+
+/* This is used to construct expressions out of @GOTOFF, @PLT and @GOT
+ symbols. The relocation type is stored in X_md. */
+#define O_PIC_reloc O_md1
+
/* The target BFD architecture. */
#define TARGET_ARCH bfd_arch_mn10300