summaryrefslogtreecommitdiff
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
commit2dc782f67fd7b32fae0e7e7d0ed4ed6052fabcb5 (patch)
tree87ae51cf445b3477611ba4b04c5fa46c7e410d81 /gas/config/tc-mn10300.h
parent6b931460e3a91a81ee10f4221075b8c22bda0756 (diff)
downloadbinutils-redhat-2dc782f67fd7b32fae0e7e7d0ed4ed6052fabcb5.tar.gz
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 736f93b299..955165236d 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