--- gcc/config/gmicro/gmicro.h 2018/04/24 18:10:26 1.1.1.1 +++ gcc/config/gmicro/gmicro.h 2018/04/24 18:30:29 1.1.1.4 @@ -1,9 +1,8 @@ /* Definitions of target machine for GNU compiler. Gmicro (TRON) version. - Ported by Masanobu Yuhara, Fujitsu Laboratories LTD. + Copyright (C) 1987, 1988, 1989, 1995 Free Software Foundation, Inc. + Contributed by Masanobu Yuhara, Fujitsu Laboratories LTD. (yuhara@flab.fujitsu.co.jp) - Copyright (C) 1987, 1988, 1989 Free Software Foundation, Inc. - This file is part of GNU CC. GNU CC is free software; you can redistribute it and/or modify @@ -16,13 +15,10 @@ but WITHOUT ANY WARRANTY; without even t MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -Among other things, the copyright -notice and this notice must be preserved on all copies. - You should have received a copy of the GNU General Public License along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ /* Note that some other tm.h files include this one and then override @@ -31,7 +27,7 @@ the Free Software Foundation, 675 Mass A /* Names to predefine in the preprocessor for this target machine. */ -#define CPP_PREDEFINES "-Dgmicro" +#define CPP_PREDEFINES "-Dgmicro -Acpu(tron) -Amachine(tron)" /* #define CPP_SPEC ** currently not defined **/ @@ -168,7 +164,7 @@ extern int target_flags; #define BIGGEST_ALIGNMENT 32 /* Set this non-zero if move instructions will actually fail to work - when given unaligned data. */ + when given unaligned data. Unaligned data is allowed on Gmicro, though the access is slow. */ #define STRICT_ALIGNMENT 1 @@ -448,6 +444,7 @@ extern enum reg_class regno_reg_class[]; /* Value is the number of byte of arguments automatically popped when returning from a subroutine call. + FUNDECL is the declaration node of the function (as a tree), FUNTYPE is the data type of the function (as a tree), or for a library call it is an identifier node for the subroutine name. SIZE is the number of bytes of arguments passed on the stack. @@ -462,7 +459,7 @@ extern enum reg_class regno_reg_class[]; On the m68k this is an RTD option, so I use the same name for the Gmicro. The option name may be changed in the future. */ -#define RETURN_POPS_ARGS(FUNTYPE,SIZE) \ +#define RETURN_POPS_ARGS(FUNDECL,FUNTYPE,SIZE) \ ((TARGET_RTD && TREE_CODE (FUNTYPE) != IDENTIFIER_NODE \ && (TYPE_ARG_TYPES (FUNTYPE) == 0 \ || (TREE_VALUE (tree_last (TYPE_ARG_TYPES (FUNTYPE))) \ @@ -1584,7 +1581,7 @@ myprcode(GET_CODE(X)); */ \ ASM_OUTPUT_FLOAT_OPERAND (FILE, u1.f); \ else \ fprintf (FILE, "#h'%x", u1.i); } \ - else if (GET_CODE (X) == CONST_DOUBLE && GET_MODE (X) != DImode) \ + else if (GET_CODE (X) == CONST_DOUBLE && GET_MODE (X) == DFmode) \ { union { double d; int i[2]; } u; \ u.i[0] = CONST_DOUBLE_LOW (X); u.i[1] = CONST_DOUBLE_HIGH (X); \ ASM_OUTPUT_DOUBLE_OPERAND (FILE, u.d); } \