From 87c06c0d81aa4bf96a83d1bb8ea4946a25ac318f Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Fri, 27 Mar 1992 21:26:27 +0000 Subject: [PATCH] Initial revision From-SVN: r597 --- gcc/config/m68k/dpx2.h | 161 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 gcc/config/m68k/dpx2.h diff --git a/gcc/config/m68k/dpx2.h b/gcc/config/m68k/dpx2.h new file mode 100644 index 00000000000..49438234013 --- /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 */ -- 2.30.2