aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-m88k.h
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1993-07-15 16:02:21 +0000
committerIan Lance Taylor <ian@airs.com>1993-07-15 16:02:21 +0000
commitc978e704a9a21709c255feb5aa49ead641ee158e (patch)
treea6d3b8fb3970b2e99ac2c35a5a9dcdf782b95aef /gas/config/tc-m88k.h
parentf09aae8404ef1d9ed3a677c59c418162060c35a9 (diff)
downloadgdb-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.h34
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 */