aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-03-27 21:26:27 +0000
committerRichard Stallman <rms@gnu.org>1992-03-27 21:26:27 +0000
commit87c06c0d81aa4bf96a83d1bb8ea4946a25ac318f (patch)
tree7bc2aed63e2330743e24db8e6cef898faa3939b4 /gcc
parente2f088306fb40c833a9cda9ec288f9f8984f2854 (diff)
downloadgcc-87c06c0d81aa4bf96a83d1bb8ea4946a25ac318f.zip
gcc-87c06c0d81aa4bf96a83d1bb8ea4946a25ac318f.tar.gz
gcc-87c06c0d81aa4bf96a83d1bb8ea4946a25ac318f.tar.bz2
Initial revision
From-SVN: r597
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/m68k/dpx2.h161
1 files changed, 161 insertions, 0 deletions
diff --git a/gcc/config/m68k/dpx2.h b/gcc/config/m68k/dpx2.h
new file mode 100644
index 0000000..4943823
--- /dev/null
+++ b/gcc/config/m68k/dpx2.h
@@ -0,0 +1,161 @@
+/*
+ * dpx2.h - Bull DPX/2 200 and 300 systems (m68k, SysVr3)
+ *
+ * $Id: dpx2.h,v 1.1 1992/03/11 04:21:30 sjg Exp sjg $
+ */
+
+#include "m68k.h"
+#undef SELECT_RTX_SECTION
+#include "svr3.h"
+
+/* See m68k.h. 7 means 68020 with 68881.
+ * We really have 68030, but this will get us going.
+ */
+#ifndef TARGET_DEFAULT
+#define TARGET_DEFAULT 7
+#endif
+
+#define OBJECT_FORMAT_COFF
+#define NO_SYS_SIGLIST
+
+#ifdef CPP_PREDEFINES
+#undef CPP_PREDEFINES
+#endif
+/*
+ * define all the things the compiler should
+ */
+#ifdef ncl_mr
+# define CPP_PREDEFINES "-Dunix -Dbull -DDPX2 -DSVR3 -Dmc68000 -Dmc68020 -Dncl_mr=1"
+#else
+# ifdef ncl_el
+# define CPP_PREDEFINES "-Dunix -Dbull -DDPX2 -DSVR3 -Dmc68000 -Dmc68020 -Dncl_el"
+# else
+# define CPP_PREDEFINES "-Dunix -Dbull -DDPX2 -DSVR3 -Dmc68000 -Dmc68020"
+# endif
+#endif
+
+#undef CPP_SPEC
+/*
+ * use -ansi to imply POSIX and XOPEN and BULL source
+ * no -ansi implies _SYSV
+ */
+# define CPP_SPEC "%{ansi:-D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BULL_SOURCE}\
+ %{!ansi:-D_SYSV}"
+
+#undef ASM_LONG
+#define ASM_LONG "\t.long"
+
+#define HAVE_ATEXIT
+#undef DO_GLOBAL_CTORS_BODY /* don't use svr3.h version */
+#undef DO_GLOBAL_DTORS_BODY
+
+#if 0 /* def DEBUG */
+/*
+ * find out where cc1 aborts
+ */
+#define abort() do { fprintf(stderr, "%s: aborting at line %d\n", \
+ __FILE__, __LINE__); \
+ kill(getpid(), 6); } while (0)
+#endif
+
+/*
+ * svr3.h says to use BSS_SECTION_FUNCTION
+ * but no one appears to, and there is
+ * no definition for m68k.
+ */
+#ifndef BSS_SECTION_FUNCTION
+# undef EXTRA_SECTION_FUNCTIONS
+# define EXTRA_SECTION_FUNCTIONS \
+ CONST_SECTION_FUNCTION \
+ INIT_SECTION_FUNCTION \
+ FINI_SECTION_FUNCTION
+#endif
+
+#ifndef USE_GAS
+/*
+ * handle the native assembler.
+ * this does NOT yet work, there is much left to do.
+ * use GAS for now...
+ */
+#undef ASM_OUTPUT_SOURCE_FILENAME
+#define ASM_OUTPUT_SOURCE_FILENAME(FILE, NA) \
+ do { fprintf ((FILE), "\t.file\t'%s'\n", (NA)); } while (0)
+
+#undef LOCAL_LABEL_PREFIX
+#define LOCAL_LABEL_PREFIX "."
+/*
+ * we don't seem to support any of:
+ * .globl
+ * .even
+ * .align
+ * .ascii
+ */
+#undef ASM_GLOBALIZE_LABEL
+#define ASM_GLOBALIZE_LABEL(FILE,NAME) while (0)
+#undef ASM_OUTPUT_ALIGN
+#define ASM_OUTPUT_ALIGN(asm_out_file, align) while (0)
+#define STRING_LIMIT (0)
+#undef ASM_APP_ON
+#define ASM_APP_ON ""
+#undef ASM_APP_OFF
+#define ASM_APP_OFF ""
+/*
+ * dc.b 'hello, world!'
+ * dc.b 10,0
+ * is how we have to output "hello, world!\n"
+ */
+#undef ASM_OUTPUT_ASCII
+#define ASM_OUTPUT_ASCII(asm_out_file, p, thissize) \
+ do { register int i, c, f=0; \
+ for (i = 0; i < thissize; i++) { \
+ c = p[i]; \
+ if (c == '\'' || c < ' ' || c > 127) { \
+ switch(f) { \
+ case 0: /* need to output dc.b etc */ \
+ fprintf(asm_out_file, "\tdc.b %d", c); \
+ f=1; \
+ break; \
+ case 1: \
+ fprintf(asm_out_file, ",%d", c); \
+ break; \
+ default: \
+ /* close a string */ \
+ fprintf(asm_out_file, "'\n\tdc.b %d", c); \
+ f=1; \
+ break; \
+ } \
+ } else { \
+ switch(f) { \
+ case 0: \
+ fprintf(asm_out_file, "\tdc.b '%c", c); \
+ f=2; \
+ break; \
+ case 2: \
+ fprintf(asm_out_file, "%c", c); \
+ break; \
+ default: \
+ fprintf(asm_out_file, "\n\tdc.b '%c", c); \
+ f=2; \
+ break; \
+ } \
+ } \
+ } \
+ if (f==2) \
+ putc('\'', asm_out_file); \
+ putc('\n', asm_out_file); } while (0)
+
+/* This is how to output an insn to push a register on the stack.
+ It need not be very fast code. */
+
+#undef ASM_OUTPUT_REG_PUSH
+#define ASM_OUTPUT_REG_PUSH(FILE,REGNO) \
+ fprintf (FILE, "\tmove.l %s,-(sp)\n", reg_names[REGNO])
+
+/* This is how to output an insn to pop a register from the stack.
+ It need not be very fast code. */
+
+#undef ASM_OUTPUT_REG_POP
+#define ASM_OUTPUT_REG_POP(FILE,REGNO) \
+ fprintf (FILE, "\tmove.l (sp)+,%s\n", reg_names[REGNO])
+
+#endif /* ! use gas */