diff options
author | Ian Lance Taylor <ian@airs.com> | 1993-07-15 16:02:21 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1993-07-15 16:02:21 +0000 |
commit | c978e704a9a21709c255feb5aa49ead641ee158e (patch) | |
tree | a6d3b8fb3970b2e99ac2c35a5a9dcdf782b95aef /gas/config/tc-m88k.h | |
parent | f09aae8404ef1d9ed3a677c59c418162060c35a9 (diff) | |
download | gdb-c978e704a9a21709c255feb5aa49ead641ee158e.zip gdb-c978e704a9a21709c255feb5aa49ead641ee158e.tar.gz gdb-c978e704a9a21709c255feb5aa49ead641ee158e.tar.bz2 |
* Preliminary support for m88k-coff.
* configure.in (m88k-*-coff*): New target. Use coffbfd and
m88kcoff.
* config/m88kcoff.mt: New file.
* read.c (lex_type): New macro LEX_AT to set lex type of '@'.
(pseudo_set): Handle difference of symbols in different fragments
by saving the entire expression as the value of the symbol.
* symbols.c (resolve_symbol_value): Resolve difference
expressions.
* config/obj-coffbfd.c (obj_pseudo_table): If TC_M88K, accept
"sdef" as a synonym for "def".
* config/obj-coffbfd.h: If TC_M88K, include coff/m88k.h and set
TARGET_FORMAT.
(S_IS_LOCAL): Any symbol which includes \001 in the name is local.
* config/tc-m88k.c, config/tc-m88k.h: Numerous changes to bring
m88k port up to date, and to add COFF support.
Diffstat (limited to 'gas/config/tc-m88k.h')
-rw-r--r-- | gas/config/tc-m88k.h | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/gas/config/tc-m88k.h b/gas/config/tc-m88k.h index 677cdb7..eaec784 100644 --- a/gas/config/tc-m88k.h +++ b/gas/config/tc-m88k.h @@ -20,6 +20,14 @@ You should have received a copy of the GNU General Public License along with GAS; see the file COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ +#define TC_M88K + +#ifdef M88KCOFF +#define COFF_MAGIC MC88OMAGIC +#define BFD_ARCH bfd_arch_m88k +#define COFF_FLAGS F_AR32W +#endif + #define NEED_FX_R_TYPE /* different type of relocation available in the m88k */ @@ -47,11 +55,33 @@ struct reloc_info_m88k #define relocation_info reloc_info_m88k -#define LOCAL_LABEL(name) (name[0] =='@' \ - && ( name [1] == 'L' || name [1] == '.' )) +/* The m88k uses '@' to start local labels. */ +#define LEX_AT (LEX_BEGIN_NAME | LEX_NAME) +#define LOCAL_LABEL(name) \ + ((name[0] =='@' && (name [1] == 'L' || name [1] == '.')) \ + || (name[0] == 'L' && name[1] == '0' && name[2] == '\001')) #ifndef BFD_ASSEMBLER #define md_convert_frag(h,f) {as_fatal ("m88k convert_frag\n");} #else #define md_convert_frag(b,s,f) {as_fatal ("m88k convert_frag\n");} #endif + +/* We don't need to do anything special for undefined symbols. */ +#define md_undefined_symbol(s) 0 + +/* We have no special operand handling. */ +#define md_operand(e) + +#ifdef M88KCOFF + +/* Whether a reloc should be output. */ +#define TC_COUNT_RELOC(fixp) ((fixp)->fx_addsy != NULL) + +/* Get the BFD reloc type to use for a gas fixS structure. */ +#define TC_COFF_FIX2RTYPE(fixp) tc_coff_fix2rtype (fixp) + +/* No special hook needed for symbols. */ +#define tc_coff_symbol_emit_hook(s) + +#endif /* M88KCOFF */ |