mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-08 00:48:10 +02:00
77 lines
2.0 KiB
ActionScript
77 lines
2.0 KiB
ActionScript
|
|
|
| This file is part of the Free Pascal run time library.
|
|
| Copyright (c) 2001 by Free Pascal Core Team
|
|
|
|
|
| See the file COPYING.FPC, included in this distribution,
|
|
| for details about the copyright.
|
|
|
|
|
| This program is distributed in the hope that it will be useful,
|
|
| but WITHOUT ANY WARRANTY;without even the implied warranty of
|
|
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
|
|**********************************************************************}
|
|
|
|
|
| Linux m68k ELF startup code with profiling support for Free Pascal
|
|
| Note: Needs linking with -lgmon and -lc
|
|
|
|
|
.file "gprt0.as"
|
|
.text
|
|
.globl _start
|
|
.type _start,@function
|
|
_start:
|
|
.globl __entry
|
|
.type __entry,@function
|
|
__entry:
|
|
move.l 8(%sp),%d0
|
|
move.l %d0,U_SYSLINUX_ENVP
|
|
move.l %d0,__environ
|
|
move.l 4(%sp),%d0
|
|
move.l %d0,U_SYSLINUX_ARGV
|
|
move.l (%sp),%d0
|
|
move.l %d0,U_SYSLINUX_ARGC
|
|
| Initialize gmon
|
|
| Should this be done before or after __libc_init call ??
|
|
|
|
|
move.l _etext,-(%sp) /* Initialize gmon */
|
|
move.l _start,-(%sp)
|
|
jsr monstartup
|
|
addq.l #8,%sp
|
|
move.l _mcleanup,-(%sp)
|
|
jsr atexit
|
|
addq.l #4,%sp
|
|
|
|
|
|
| The arguments should be in correct order for
|
|
| calling __libc_init
|
|
| This code is untested for now PM
|
|
jsr __libc_init
|
|
| insert _fini in atexit chain
|
|
move.l _fini,-(%sp)
|
|
jsr atexit
|
|
addq.l #4,%sp
|
|
| call _init function
|
|
jsr _init
|
|
|
|
jsr PASCALMAIN
|
|
|
|
| Used by System_exit procedure
|
|
.globl _haltproc
|
|
_haltproc:
|
|
| Call C exit function
|
|
move.w U_SYSLINUX_EXITCODE,%d1
|
|
move.l %d1,-(%sp)
|
|
jsr exit
|
|
moveq.l #1,%d0
|
|
move.l (%sp)+,%d1
|
|
trap #0
|
|
bra _haltproc
|
|
|
|
|
|
| Is this still needed ??
|
|
| .data
|
|
| .align 4
|
|
| .globl ___fpc_brk_addr
|
|
|___fpc_brk_addr:
|
|
| .long 0
|
|
|