diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/obj-coff.c | 4 | ||||
-rw-r--r-- | gas/config/tc-m68k.h | 29 |
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 |