mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-07-31 12:28:38 +02:00
72 lines
2.1 KiB
ActionScript
72 lines
2.1 KiB
ActionScript
|
|
|
| $Id: dllprt0.as,v 1.1.2.4 2001/08/01 13:26:17 pierre Exp $
|
|
| This file is part of the Free Pascal run time library.
|
|
| Copyright (c) 2001 by Pierre Muller
|
|
|
|
|
| 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 shared library startup code for Free Pascal
|
|
|
|
|
.file "dllprt0.as"
|
|
.text
|
|
.globl _startlib
|
|
.type _startlib,@function
|
|
_startlib:
|
|
.globl FPC_SHARED_LIB_START
|
|
.type FPC_SHARED_LIB_START,@function
|
|
# This is a normal C function with args (argc,argv,envp)
|
|
FPC_SHARED_LIB_START:
|
|
link.w %a6,#0
|
|
move.l 8(%fp),%d0
|
|
move.l %d0,operatingsystem_parameter_argc
|
|
move.l 12(%fp),%d0
|
|
move.l %d0,operatingsystem_parameter_argv
|
|
move.l 16(%fp),%d0
|
|
move.l %d0,operatingsystem_parameter_envp
|
|
jsr PASCALMAIN
|
|
unlk %a6
|
|
rts
|
|
.size FPC_SHARED_LIB_START,.-FPC_SHARED_LIB_START
|
|
|
|
.globl _haltproc
|
|
.type _haltproc,@function
|
|
_haltproc:
|
|
moveq.l #1,%d0
|
|
move.w operatingsystem_result,%d1
|
|
trap #0
|
|
bra _haltproc
|
|
.size _haltproc,.-_haltproc
|
|
|
|
.data
|
|
.align 4
|
|
.globl ___fpc_brk_addr
|
|
___fpc_brk_addr:
|
|
.long 0
|
|
|
|
.bss
|
|
.type __stkptr,@object
|
|
.size __stkptr,4
|
|
.global __stkptr
|
|
__stkptr:
|
|
.skip 4
|
|
|
|
.type operatingsystem_parameters,@object
|
|
.size operatingsystem_parameters,12
|
|
operatingsystem_parameters:
|
|
.skip 3*4
|
|
|
|
.global operatingsystem_parameter_envp
|
|
.global operatingsystem_parameter_argc
|
|
.global operatingsystem_parameter_argv
|
|
.set operatingsystem_parameter_envp,operatingsystem_parameters+0
|
|
.set operatingsystem_parameter_argc,operatingsystem_parameters+4
|
|
.set operatingsystem_parameter_argv,operatingsystem_parameters+8
|
|
|