Restore definition of STRUCT_VALUE_REGNUM,
[official-gcc.git] / gcc / config / m68k / mot3300-crt0.S
blob3574a72962a939d35ba0c42ac9f2c663b31d291d
1 /* The start module crt0.s for the SysV68 Motorola 3300 Delta Series.
2    Copyright (C) 1996 Free Software Foundation, Inc.
3    Contributed by Manfred Hollstein (manfred@lts.sel.alcatel.de).
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)
10 any later version.
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.  */
22 #ifdef MOTOROLA
23 # define COMM           comm
24 # define DATA           data
25 # define EVEN           even
26 # define FILE(n)        file    n
27 # define GLOBAL_SYM(s)  global  s
28 # define LOCAL_LABEL(l) L%##l
29 # define IDENT(s)       ident   s
30 # define TEXT           text
31 #else /* Assume we are using GNU as.  */
32 # define COMM           .comm
33 # define DATA           .data
34 # define EVEN           .even
35 # define FILE(name)     .file   name
36 # define GLOBAL_SYM(s)  .globl  s
37 # define LOCAL_LABEL(l) .L.##l
38 # define IDENT(s)       .section .comment;.asciz s
39 # define TEXT           .text
40 #endif
42         FILE ("crt0.s")
43         TEXT
44         GLOBAL_SYM (_start)
45 _start: mov.l   %d0,splimit%
46         subq.w  &8,%sp
47         mov.l   8(%sp),(%sp)
48         lea     12(%sp),%a0
49         mov.l   %a0,4(%sp)
50         mov.l   %a0,%a1
51 LOCAL_LABEL(0):
52         tst.l   (%a0)+
53         bne.b   LOCAL_LABEL(0)
54 #ifdef SGS_CMP_ORDER
55         cmpa.l  %a0,(%a1)
56 #else
57         cmpa.l  (%a1),%a0
58 #endif
59         blt.b   LOCAL_LABEL(1)
60         subq.w  &4,%a0
61 LOCAL_LABEL(1):
62         mov.l   %a0,8(%sp)
63         mov.l   %a0,environ
64         jsr     initfpu
65         
66         subq.w  &8,%sp
67         clr.l   %d0             /* if (! isatty (fileno (stderr))) */
68         mov.b   _iob+27,%d0
69         mov.l   %d0,-(%sp)
70         jsr     isatty
71         addq.w  &4,%sp
72         tst.l   %d0
73         bne.b   LOCAL_LABEL(isatty)
74         clr.l   -(%sp)          /*      setbuf (stderr, NULL) */
75         pea     _iob+28
76         jsr     setbuf
77         addq.w  &8,%sp
78 LOCAL_LABEL(isatty):
79         addq.w  &8,%sp
81         jsr     main
82         mov.l   %d0,(%sp)
83         jsr     exit
84         moveq.l &1,%d0
85         trap    &0
86         nop
88         GLOBAL_SYM (__stop_monitor)
89 __stop_monitor:
90         rts
91         EVEN
93         COMM    splimit%,4
94         COMM    environ,4
96         IDENT ("$Id: mot3300-crt0.S,v 1.1.1.2 1998/01/14 19:39:06 law Exp $")
97         IDENT ("Contributed by Manfred Hollstein (manfred@lts.sel.alcatel.de)")
98         IDENT ("Corrections by Philippe De Muyter (phdm@macqel.be)")