From: Richard Stallman Date: Tue, 31 Mar 1992 22:46:19 +0000 (+0000) Subject: entered into RCS X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b18135da4e035ff2e10348590781d8bd37d18964;p=gcc.git entered into RCS From-SVN: r651 --- diff --git a/gcc/config/m68k/apollo68.h b/gcc/config/m68k/apollo68.h index 4365a8ddab4..e8cdc081600 100644 --- a/gcc/config/m68k/apollo68.h +++ b/gcc/config/m68k/apollo68.h @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. Apollo 680X0 version. - Copyright (C) 1989 Free Software Foundation, Inc. + Copyright (C) 1989,1992 Free Software Foundation, Inc. This file is part of GNU CC. @@ -90,13 +90,10 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #define DOLLARS_IN_IDENTIFIERS 2 -/* -m68000 requires special flags to the assembler. - The -C flag is passed to a modified GNU assembler to cause COFF - modules to be produced. Remove it if you're not using this. - (See vasta@apollo.com.) */ +/* -m68000 requires special flags to the assembler. */ #define ASM_SPEC \ - "-C %{m68000:-mc68010}%{mc68000:-mc68010}%{!mc68000:%{!m68000:-mc68020}}" + "%{m68000:-mc68010}%{mc68000:-mc68010}%{!mc68000:%{!m68000:-mc68020}}" /* STARTFILE_SPEC Note that includes knowledge of the default specs for gcc, ie. no @@ -122,27 +119,25 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #undef DBX_DEBUGGING_INFO #undef SDB_DEBUGGING_INFO +/* We have atexit(2). So C++ can use it for global destructors. */ + +#define HAVE_ATEXIT + /* Every structure or union's size must be a multiple of 2 bytes. */ #define STRUCTURE_SIZE_BOUNDARY 16 +/* Boundary (in *bits*) on which stack pointer should be aligned. */ +#undef STACK_BOUNDARY +#define STACK_BOUNDARY 32 + /* Functions which return large structures get the address - to place the wanted value at offset 8 from the frame. */ + to place the wanted value from a hidden parameter. */ #undef PCC_STATIC_STRUCT_RETURN #undef STRUCT_VALUE_REGNUM - -/* Caller treats address of return area like a parm. */ #define STRUCT_VALUE 0 - -#define STRUCT_VALUE_INCOMING \ - gen_rtx (MEM, Pmode, \ - gen_rtx (PLUS, SImode, frame_pointer_rtx, \ - gen_rtx (CONST_INT, VOIDmode, 8))) - -/* Boundary (in *bits*) on which stack pointer should be aligned. */ -#undef STACK_BOUNDARY -#define STACK_BOUNDARY 32 +#define STRUCT_VALUE_INCOMING 0 /* Specify how to pad function arguments. Arguments are not padded at all; the stack is kept aligned on long @@ -150,13 +145,9 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #define FUNCTION_ARG_PADDING(mode, size) none -/* Short integral argument prototype promotion is not done */ - -#undef PROMOTE_PROTOTYPES - /* The definition of this macro imposes a limit on the size of an aggregate object which can be treated as if it were a scalar - object. */ + object. */ #define MAX_FIXED_MODE_SIZE BITS_PER_WORD @@ -169,12 +160,49 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #define RETURN_IN_MEMORY(type) \ (GET_MODE_SIZE (TYPE_MODE (type)) > UNITS_PER_WORD) -/* This is how to output a reference to a user-level label named NAME. - In order to link to Apollo libraries, no underscore is prepended to names. - `assemble_name' uses this. */ +/* In order to link with Apollo libraries, we can't prefix external + symbols with an underscore. */ + +#undef USER_LABEL_PREFIX + +/* Use a prefix for local labels, just to be on the save side. */ + +#undef LOCAL_LABEL_PREFIX +#define LOCAL_LABEL_PREFIX "." + +/* Use a register prefix to avoid clashes with external symbols (classic + example: `extern char PC;' in termcap). */ + +#undef REGISTER_PREFIX +#define REGISTER_PREFIX "%" + +/* In the machine description we can't use %R, because it will not be seen + by ASM_FPRINTF. (Isn't that a design bug?). */ + +#undef REGISTER_PREFIX_MD +#define REGISTER_PREFIX_MD "%%" + +/* config/m68k.md has an explicit reference to the program counter, + prefix this by the register prefix. */ + +#define ASM_RETURN_CASE_JUMP return "jmp %%pc@(2,%0:w)" -#undef ASM_OUTPUT_LABELREF -#define ASM_OUTPUT_LABELREF(FILE,NAME) \ - fprintf (FILE, "%s", NAME) +/* Here are the new register names. */ +#undef REGISTER_NAMES +#ifndef SUPPORT_SUN_FPA +#define REGISTER_NAMES \ +{"%d0", "%d1", "%d2", "%d3", "%d4", "%d5", "%d6", "%d7", \ + "%a0", "%a1", "%a2", "%a3", "%a4", "%a5", "%a6", "%sp", \ + "%fp0", "%fp1", "%fp2", "%fp3", "%fp4", "%fp5", "%fp6", "%fp7" } +#else /* SUPPORTED_SUN_FPA */ +#define REGISTER_NAMES \ +{"%d0", "%d1", "%d2", "%d3", "%d4", "%d5", "%d6", "%d7", \ + "%a0", "%a1", "%a2", "%a3", "%a4", "%a5", "%a6", "%sp", \ + "%fp0", "%fp1", "%fp2", "%fp3", "%fp4", "%fp5", "%fp6", "%fp7", \ + "%fpa0", "%fpa1", "%fpa2", "%fpa3", "%fpa4", "%fpa5", "%fpa6", "%fpa7", \ + "%fpa8", "%fpa9", "%fpa10", "%fpa11", "%fpa12", "%fpa13", "%fpa14", "%fpa15", \ + "%fpa16", "%fpa17", "%fpa18", "%fpa19", "%fpa20", "%fpa21", "%fpa22", "%fpa23", \ + "%fpa24", "%fpa25", "%fpa26", "%fpa27", "%fpa28", "%fpa29", "%fpa30", "%fpa31" } +#endif /* defined SUPPORT_SUN_FPA */ diff --git a/gcc/config/m68k/x-apollo68 b/gcc/config/m68k/x-apollo68 index 9ae7c05af49..958259ac7e6 100644 --- a/gcc/config/m68k/x-apollo68 +++ b/gcc/config/m68k/x-apollo68 @@ -1,4 +1,17 @@ +# x-apollo68 -- 680x0 based Apollos as host system + # vasta@apollo.com says this is how to compile on an Apollo (SR10.x). # Use a Berkeley environment. CC=cc -g -A nansi -A cpu,3000 -A runtype,bsd4.3 -A systype,any -DSHORT_ENUM_BUG OLDCC=cc -g -A nansi -A cpu,3000 -A runtype,bsd4.3 -A systype,any -DSHORT_ENUM_BUG + +# Makefile.in has debugging turned on: +# +# CFLAGS = -g +# LIBGCC2_CFLAGS = -O2 $(GCC_CFLAGS) -g1 +# +# but that's not supported on the Apollo yet, so we'd better avoid +# the warnings. + +CFLAGS = +LIBGCC2_CFLAGS = -O2 $(GCC_CFLAGS)