1 /* Subroutines for insn-output.c for Windows NT.
2 Contributed by Douglas Rupp (drupp@cs.washington.edu)
3 Copyright (C) 1995 Free Software Foundation, Inc.
5 This file is part of GNU CC.
7 GNU CC is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2, or (at your option)
12 GNU CC is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GNU CC; see the file COPYING. If not, write to
19 the Free Software Foundation, 59 Temple Place - Suite 330,
20 Boston, MA 02111-1307, USA. */
26 #include "hard-reg-set.h"
31 /* Return string which is the former assembler name modified with a
32 suffix consisting of an atsign (@) followed by the number of bytes of
36 gen_stdcall_suffix (decl)
40 char *asmname = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
43 if (TYPE_ARG_TYPES (TREE_TYPE (decl)))
44 if (TREE_VALUE (tree_last (TYPE_ARG_TYPES (TREE_TYPE (decl))))
47 tree formal_type = TYPE_ARG_TYPES (TREE_TYPE (decl));
49 while (TREE_VALUE (formal_type) != void_type_node)
51 total += TREE_INT_CST_LOW (TYPE_SIZE (TREE_VALUE (formal_type)));
52 formal_type = TREE_CHAIN (formal_type);
56 newsym = xmalloc (strlen (asmname) + 10);
57 sprintf (newsym, "%s@%d", asmname, total/BITS_PER_UNIT);
58 return IDENTIFIER_POINTER (get_identifier (newsym));