📄 dpx2.h
字号:
/* * dpx2.h - Bull DPX/2 200 and 300 systems (m68k, SysVr3) */#include "m68k.h"#undef SELECT_RTX_SECTION#include "svr3.h"/* See m68k.h. 7 means 68020 with 68881. * We really have 68030 and 68882, * 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 *//* * you can't get a DPX/2 without a 68882 but allow it * to be ignored... */#if 0# define CPP_SPEC "%{ansi:-D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BULL_SOURCE}\ %{!ansi:-D_SYSV}"#else# define __HAVE_68881__ 1# define CPP_SPEC "%{!msoft-float:-D__HAVE_68881__ }\ %{ansi:-D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BULL_SOURCE}\ %{!ansi:-D_SYSV}"#endif#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 /* Should be no need now that svr3.h defines BSS_SECTION_FUNCTION. *//* * 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#endif /* 0 */#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)/* * 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 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -