;->s.excall
;
;


R0 RN 0
R1 RN 1
R2 RN 2
R3 RN 3
R4 RN 4
R5 RN 5
R6 RN 6
R7 RN 7
R8 RN 8
R9 RN 9
R10 RN 10
R11 RN 11
R12 RN 12
R13 RN 13
R14 RN 14
R15 RN 15
PC  RN 15


a1 RN 0
a2 RN 1
a3 RN 2
a4 RN 3
v1 RN 4
v2 RN 5
v3 RN 6
v4 RN 7
v5 RN 8
v6 RN 9
sl RN 10
fp RN 11
ip RN 12
sp RN 13
lk RN 14
lr RN 14
pc RN 15

f0 FN 0
f1 FN 1
f2 FN 2
f3 FN 3
f4 FN 4
f5 FN 5
f6 FN 6
f7 FN 7



 AREA  SRASM, REL, CODE


exfnblock DCD 0

; ****************************************************************************


excallset

 MOV   ip,sp
 STMFD sp!,{v1-v6,fp,ip,lk,pc}
 SUB   fp,ip,#4

 STR    a1,exfnblock

 LDMEA fp,{v1-v6,fp,sp,pc}^


excalllo

 MOV   ip,sp
 STMFD sp!,{v1-v6,fp,ip,lk,pc}
 SUB   fp,ip,#4

 LDR   v1,exfnblock

 ADR   lk,excalllox
 MOV   pc,v1

excalllox

 LDMEA fp,{v1-v6,fp,sp,pc}^


 EXPORT excalllo
 EXPORT excallset

 END


