* config/obj-coff.c (yank_symbols): If tc_frob_coff_symbol is
authorIan Lance Taylor <ian@airs.com>
Fri, 3 Jan 1997 22:41:26 +0000 (22:41 +0000)
committerIan Lance Taylor <ian@airs.com>
Fri, 3 Jan 1997 22:41:26 +0000 (22:41 +0000)
defined, call it.
* config/tc-m68k.c (tc_frob_symbol): Check whether text label is
aligned to odd boundary.
(tc_frob_coff_symbol): Define.

gas/ChangeLog
gas/config/obj-coff.c
gas/config/tc-m68k.h

index f525cfc760e43310ceda22f221f1df4c6d127391..d878d82a3f787065669d932df0087c6338a0b1b8 100644 (file)
@@ -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 &.
index 695647a7e3596d2e375a7b741cc6bb6602b0f092..86e9a82e761943980ee8d53da4b3388a019a45a0 100644 (file)
@@ -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
index 85fb20c56bb3e8debcca66c2a43863b4707cef0d..38957af484ea9d1e0de54a54db7c07b05631efbd 100644 (file)
@@ -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