--- gcc/config/ns32k/ns32k.h 2018/04/24 18:21:14 1.1.1.3 +++ gcc/config/ns32k/ns32k.h 2018/04/24 18:28:36 1.1.1.4 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. NS32000 version. - Copyright (C) 1988, 1993, 1994 Free Software Foundation, Inc. + Copyright (C) 1988, 1993, 1994, 1995 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GNU CC. @@ -16,7 +16,8 @@ GNU General Public License for more deta 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 @@ -390,6 +391,7 @@ enum reg_class { NO_REGS, GENERAL_REGS, /* 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. @@ -402,7 +404,7 @@ enum reg_class { NO_REGS, GENERAL_REGS, standard Unix calling sequences. If the option is not selected, the caller must always pop the args. */ -#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))) \ @@ -754,7 +756,7 @@ enum reg_class { NO_REGS, GENERAL_REGS, of a trampoline, leaving space for the variable parts. */ /* On the 32k, the trampoline looks like this: - addr .,r2 + addr 0(pc),r2 jump @__trampoline .int STATIC .int FUNCTION @@ -764,7 +766,7 @@ operands on the 32k are stored). */ #define TRAMPOLINE_TEMPLATE(FILE) \ { \ - fprintf (FILE, "\taddr .,r2\n" ); \ + fprintf (FILE, "\taddr 0(pc),r2\n" ); \ fprintf (FILE, "\tjump " ); \ PUT_ABSOLUTE_PREFIX (FILE); \ fprintf (FILE, "__trampoline\n" ); \ @@ -797,9 +799,10 @@ operands on the 32k are stored). */ void \ __transfer_from_trampoline () \ { \ - asm ("___trampoline:"); \ + asm (".globl __trampoline"); \ + asm ("__trampoline:"); \ asm ("movd 16(r2),tos"); \ - asm ("movd 12(r2),r2"); \ + asm ("movd 12(r2),r1"); \ asm ("ret 0"); \ }