123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- .file "dllprt0.as"
- .text
- .globl _startlib
- .type _startlib,#function
- _startlib:
- .globl FPC_SHARED_LIB_START
- .type FPC_SHARED_LIB_START,#function
- FPC_SHARED_LIB_START:
- mov ip, sp
- stmfd sp!,{fp, ip, lr, pc}
- sub fp, ip, #4
- /* a1 contains argc, a2 contains argv and a3 contains envp */
- ldr ip, =operatingsystem_parameter_argc
- str a1, [ip]
- ldr ip, =operatingsystem_parameter_argv
- str a2, [ip]
- ldr ip, =operatingsystem_parameter_envp
- str a3, [ip]
- /* save initial stackpointer */
- ldr ip, =__stklen
- str sp, [ip]
- ldr ip, =TC_SYSTEM_ISLIBRARY
- mov a1, #1
- str a1, [ip]
- /* call main and exit normally */
- bl PASCALMAIN
- ldmdb fp, {fp, sp, pc}
- .globl _haltproc
- .type _haltproc,#function
- _haltproc:
- /* r0 contains exitcode */
- swi 0x900001
- b _haltproc
- .globl _haltproc_eabi
- .type _haltproc_eabi,#function
- _haltproc_eabi:
- /* r0 contains exitcode */
- mov r7,#248
- swi 0x0
- b _haltproc_eabi
- .data
- .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
- .bss
- .comm __stkptr,4
|