24 lines
		
	
	
	
		
			259 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
	
		
			259 B
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
.define _lock
 | 
						|
.sect .text
 | 
						|
.sect .rom
 | 
						|
.sect .data
 | 
						|
.sect .bss
 | 
						|
.sect .text
 | 
						|
.extern _lock
 | 
						|
.sect .text
 | 
						|
_lock:
 | 
						|
enter[], 0
 | 
						|
movd 8(fp),tos
 | 
						|
movd 53,tos
 | 
						|
jsr @.mon
 | 
						|
cmpqd 0,tos
 | 
						|
bne I0011
 | 
						|
movd 0,r4
 | 
						|
exit []
 | 
						|
ret 0
 | 
						|
I0011:
 | 
						|
movd tos,r7
 | 
						|
movd r7,@_errno
 | 
						|
movd -1,r4
 | 
						|
exit []
 | 
						|
ret 0
 |