Mercurial > emacs
diff src/ecrt0.c @ 108444:8ce523466531
Merge from mainline.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Sat, 03 Apr 2010 12:47:25 +0000 |
parents | ede3c4156432 |
children | 992e676c0285 |
line wrap: on
line diff
--- a/src/ecrt0.c Fri Apr 02 14:34:08 2010 +0000 +++ b/src/ecrt0.c Sat Apr 03 12:47:25 2010 +0000 @@ -59,9 +59,7 @@ int data_start = 0; -#ifndef MSDOS char **environ; -#endif #ifndef static /* On systems where the static storage class is usable, this function @@ -100,70 +98,7 @@ and optimize it out. */ (void) &start1; } -#else /* not CRT0_DUMMIES */ - -/* This is a kludge. Now that the CRT0_DUMMIES mechanism above exists, - most of these machines could use the vax code above - with some suitable definition of CRT0_DUMMIES. - Then the symbol m68k could be flushed. - But I don't want to risk breaking these machines - in a version 17 patch release, so that change is being put off. */ - -#ifdef m68k /* Can't do it all from C */ - asm (" global _start"); - asm (" text"); - asm ("_start:"); - asm (" comm splimit%,4"); - asm (" global exit"); - asm (" text"); - asm (" mov.l %d0,splimit%"); - asm (" jsr start1"); - asm (" mov.l %d0,(%sp)"); - asm (" jsr exit"); - asm (" mov.l &1,%d0"); /* d0 = 1 => exit */ - asm (" trap &0"); - -/* ignore takes care of skipping the a6 value pushed in start. */ -static -start1 (argc, xargv) - int argc; - char *xargv; -{ - register char **argv = &xargv; - environ = argv + argc + 1; - - if ((char *)environ == xargv) - environ--; - exit (main (argc, argv, environ)); -} - -#endif /* m68k */ - -#endif /* not CRT0_DUMMIES */ - -#ifdef __sparc__ -asm (".global __start"); -asm (".text"); -asm ("__start:"); -asm (" mov 0, %fp"); -asm (" ld [%sp + 64], %o0"); -asm (" add %sp, 68, %o1"); -asm (" sll %o0, 2, %o2"); -asm (" add %o2, 4, %o2"); -asm (" add %o1, %o2, %o2"); -asm (" sethi %hi(_environ), %o3"); -asm (" st %o2, [%o3+%lo(_environ)]"); -asm (" andn %sp, 7, %sp"); -asm (" call _main"); -asm (" sub %sp, 24, %sp"); -asm (" call __exit"); -asm (" nop"); - -#endif /* __sparc__ */ - -#if __FreeBSD__ == 2 -char *__progname; -#endif +#endif /* CRT0_DUMMIES */ /* arch-tag: 4025c2fb-d6b1-4d29-b1b6-8100b6bd1e74 (do not change this comment) */