aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/obj-coff.c4
-rw-r--r--gas/config/tc-m68k.h29
3 files changed, 35 insertions, 4 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index f525cfc..d878d82 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -9,6 +9,12 @@ Fri Jan 3 17:10:33 1997 Richard Henderson <rth@tamu.edu>
Fri Jan 3 12:09:24 1997 Ian Lance Taylor <ian@cygnus.com>
+ * config/obj-coff.c (yank_symbols): If tc_frob_coff_symbol is
+ defined, call it.
+ * config/tc-m68k.c (tc_frob_symbol): Check whether text label is
+ aligned to odd boundary.
+ (tc_frob_coff_symbol): Define.
+
* doc/as.texinfo (Set): Change parenthesized @xref to @pxref.
* macro.c (macro_expand_body): In MRI mode, just copy a single &.
diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c
index 695647a..86e9a82 100644
--- a/gas/config/obj-coff.c
+++ b/gas/config/obj-coff.c
@@ -2722,6 +2722,10 @@ yank_symbols ()
} /* no one points at the first .file symbol */
} /* if debug or tag or eos or file */
+#ifdef tc_frob_coff_symbol
+ tc_frob_coff_symbol (symbolP);
+#endif
+
/* We must put the external symbols apart. The loader
does not bomb if we do not. But the references in
the endndx field for a .bb symbol are not corrected
diff --git a/gas/config/tc-m68k.h b/gas/config/tc-m68k.h
index 85fb20c..38957af 100644
--- a/gas/config/tc-m68k.h
+++ b/gas/config/tc-m68k.h
@@ -124,8 +124,17 @@ extern int m68k_conditional_pseudoop PARAMS ((pseudo_typeS *));
#ifdef BFD_ASSEMBLER
-#define tc_frob_symbol(sym,punt) \
- if (S_GET_SEGMENT (sym) == reg_section) punt = 1
+#define tc_frob_symbol(sym,punt) \
+do \
+ { \
+ if (S_GET_SEGMENT (sym) == reg_section) \
+ punt = 1; \
+ if (S_GET_SEGMENT (sym) == text_section \
+ && (S_GET_VALUE (sym) & 1) != 0) \
+ as_warn ("text label `%s' aligned to odd boundary", \
+ S_GET_NAME (sym)); \
+ } \
+while (0)
#define NO_RELOC BFD_RELOC_NONE
@@ -146,9 +155,21 @@ extern int m68k_conditional_pseudoop PARAMS ((pseudo_typeS *));
#define tc_fix_adjustable(X) tc_m68k_fix_adjustable(X)
#endif
-#else
+#else /* ! BFD_ASSEMBLER */
+
+#define tc_frob_coff_symbol(sym) \
+do \
+ { \
+ if (S_GET_SEGMENT (sym) == text_section \
+ && (S_GET_VALUE (sym) & 1) != 0) \
+ as_warn ("text label `%s' aligned to odd boundary", \
+ S_GET_NAME (sym)); \
+ } \
+while (0)
+
#define NO_RELOC 0
-#endif
+
+#endif /* ! BFD_ASSEMBLER */
#define DIFF_EXPR_OK