#include /* Get generic NetBSD definitions. */ #include /* See m68k.h. 7 means 68020 with 68881. */ #define TARGET_DEFAULT 7 /* Define __HAVE_68881__ in preprocessor, unless -msoft-float is specified. This will control the use of inline 68881 insns in certain macros. */ #undef CPP_SPEC #define CPP_SPEC "%{!msoft-float:-D__HAVE_68881__ -D__HAVE_FPU__} %{posix:-D_POSIX_SOURCE}" #undef ASM_SPEC #define ASM_SPEC " %| %{m68030} %{m68040} %{m68060} %{fpic:-k} %{fPIC:-k -K}" /* Names to predefine in the preprocessor for this target machine. */ #define CPP_PREDEFINES "-Dunix -Dm68k -Dmc68000 -Dmc68020 -D__NetBSD__ -D__KPRINTF_ATTRIBUTE__ -Asystem(unix) -Asystem(NetBSD) -Acpu(m68k) -Amachine(m68k)" /* Make gcc agree with */ #undef SIZE_TYPE #define SIZE_TYPE "unsigned int" #undef PTRDIFF_TYPE #define PTRDIFF_TYPE "int" #undef WCHAR_TYPE #define WCHAR_TYPE "int" #undef WCHAR_UNSIGNED #define WCHAR_UNSIGNED 0 #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE 32 /* Every structure or union's size must be a multiple of 2 bytes. */ #define STRUCTURE_SIZE_BOUNDARY 16 /* This is BSD, so it wants DBX format. */ #define DBX_DEBUGGING_INFO /* Do not break .stabs pseudos into continuations. */ #define DBX_CONTIN_LENGTH 0 /* This is the char to use for continuation (in case we need to turn continuation back on). */ #define DBX_CONTIN_CHAR '?' /* Don't default to pcc-struct-return, because gcc is the only compiler, and we want to retain compatibility with older gcc versions. */ #define DEFAULT_PCC_STRUCT_RETURN 0 /* Finalize the trampoline by flushing the insn cache. */ #undef FINALIZE_TRAMPOLINE #define FINALIZE_TRAMPOLINE(TRAMP) \ emit_library_call (gen_rtx (SYMBOL_REF, Pmode, "__cachectl"), \ 0, VOIDmode, 2, TRAMP, Pmode, \ GEN_INT(TRAMPOLINE_SIZE), SImode); #undef TRANSFER_FROM_TRAMPOLINE #define TRANSFER_FROM_TRAMPOLINE \ asm ( \ GLOBAL_ASM_OP " ___cachectl; \ ___cachectl: \ movel sp@(4),a1; \ movel sp@(8),d1; \ movel #0x80000004,d0; \ trap #12; \ rts"); \ \ void \ __transfer_from_trampoline () \ { \ register char *a0 asm ("%a0"); \ asm (GLOBAL_ASM_OP " ___trampoline"); \ asm ("___trampoline:"); \ asm volatile ("move%.l %0,%@" : : "m" (a0[22])); \ asm volatile ("move%.l %1,%0" : "=a" (a0) : "m" (a0[18])); \ asm ("rts":); \ }