chiark / gitweb /
Initial revision
[ssr] / StraySrc / Libraries / DLLLib / s / extEntry
1 ;
2 ; extentry.s
3 ;
4 ; External entry veneer
5 ;
6 ; © 1994 Straylight
7 ;
8
9 ;----- Standard stuff -------------------------------------------------------
10
11                 GET     libs:header
12                 GET     libs:swis
13
14 ;----- Main code ------------------------------------------------------------
15
16                 AREA    |DLL$$Code|,CODE,READONLY
17
18 ; --- _dll_extentry ---
19
20                 EXPORT  |_dll_extentry|
21 |_dll_extentry| ROUT
22
23                 MOV     a1,lr                   ;Pass current return address
24                 MOV     a2,sl                   ;Pass stack limit pointer
25                 MOV     a3,#0                   ;Indicate we want app space
26                 SWI     DLL_Prologue            ;Execute the DLL prologue
27                 MOV     lr,a1                   ;Insert dummy return address
28                 LDMFD   sp!,{a1-a3}             ;Restore corrupted registers
29                 MOV     pc,ip                   ;Call actual routine
30
31                 LTORG
32
33 ;----- That's all, folks ----------------------------------------------------
34
35                 END