76 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
/ $Header$
 | 
						|
	.globl  LINO_AD,FILN_AD
 | 
						|
	.globl  ERANGE,ESET,EHEAP,EILLINS,ECASE
 | 
						|
	.globl  hol0,trppc~,trpim~,reghp~
 | 
						|
 | 
						|
rti     = 2
 | 
						|
stst    = 170300 ^ tst
 | 
						|
 | 
						|
.float  = 1             / this should be parameterized somehow
 | 
						|
.hardfp = 1             / only relevant if .float on
 | 
						|
 | 
						|
LINO_AD = 0.
 | 
						|
FILN_AD = 4.
 | 
						|
 | 
						|
ERANGE  = 1.
 | 
						|
ESET    = 2.
 | 
						|
EFOVFL  = 4.
 | 
						|
EFUNFL  = 5.
 | 
						|
EFDIVZ  = 7.
 | 
						|
EFUND   = 9.
 | 
						|
ECONV   = 10.
 | 
						|
EHEAP   = 17.
 | 
						|
EILLINS = 18.
 | 
						|
ECASE   = 20.
 | 
						|
 | 
						|
.if .float
 | 
						|
/       .globl  fltused;        fltused:
 | 
						|
.if 1 - .hardfp
 | 
						|
/	sys     48.;4.;fptrap	/ if not commented it will appear as undefined
 | 
						|
.endif
 | 
						|
	sys     48.;8.;sig8
 | 
						|
	ldfps   $7600
 | 
						|
.endif
 | 
						|
	mov     2(sp),r0
 | 
						|
	clr     -2(r0)
 | 
						|
	mov     sp,r0
 | 
						|
	sub     $4,sp
 | 
						|
	mov     4(sp),(sp)
 | 
						|
	tst     (r0)+
 | 
						|
	mov     r0,2(sp)
 | 
						|
1:
 | 
						|
	tst     (r0)+
 | 
						|
	bne     1b
 | 
						|
	cmp     r0,*2(sp)
 | 
						|
	blo     1f
 | 
						|
	tst     -(r0)
 | 
						|
1:
 | 
						|
	mov     r0,4(sp)
 | 
						|
	jsr     pc,_m_a_i_n
 | 
						|
/ next two lines for as long as tail needs printf
 | 
						|
/	mov     r0,-(sp)
 | 
						|
/	jsr     pc,*$_exit
 | 
						|
	sys     1.
 | 
						|
 | 
						|
	.data
 | 
						|
hol0:   0;0     / line no
 | 
						|
	0;0     / file
 | 
						|
trppc~: 0
 | 
						|
trpim~: 0
 | 
						|
reghp~: _end
 | 
						|
 | 
						|
	.text
 | 
						|
sig8:
 | 
						|
.if .float
 | 
						|
	mov     r0,-(sp)
 | 
						|
	stst    r0
 | 
						|
	mov     1f(r0),-(sp)
 | 
						|
	jsr     pc,trp~
 | 
						|
	sys     48.;8.;sig8
 | 
						|
	mov     (sp)+,r0
 | 
						|
	rti
 | 
						|
 | 
						|
	.data
 | 
						|
1:      EILLINS; EILLINS; EFDIVZ; ECONV; EFOVFL; EFUNFL; EFUND; EILLINS
 | 
						|
	.text
 | 
						|
.endif
 |