44 lines
		
	
	
		
			649 B
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			649 B
		
	
	
	
		
			ArmAsm
		
	
	
	
| #if __SH5__
 | |
| 	.mode	SHmedia
 | |
| #if __SH5__ == 32 && __SHMEDIA__
 | |
| 	.section	.text..SHmedia32, "ax"
 | |
| #else
 | |
| 	.text
 | |
| #endif
 | |
| 	.global ___trap34
 | |
| ___trap34:
 | |
| 	movi	34, r0
 | |
| 	trapa	r0
 | |
| 	pt/l	ret, tr1
 | |
| 	ptabs/l	r18, tr0
 | |
| 	beqi	r1, 0, tr1
 | |
| #if __SH5__ == 64
 | |
| 	movi	((_errno >> 48) & 65535), r0
 | |
| 	shori	((_errno >> 32) & 65535), r0
 | |
| 	shori	((_errno >> 16) & 65535), r0
 | |
| #else
 | |
| 	movi	((_errno >> 16) & 65535), r0
 | |
| #endif
 | |
| 	shori	(_errno & 65535), r0
 | |
| 	stx.l	r0, r63, r1
 | |
| ret:
 | |
| 	blink	tr0, r63
 | |
| 	
 | |
| #else
 | |
| 	.text
 | |
| 	.global	___trap34
 | |
| ___trap34:
 | |
| 	trapa	#34
 | |
| 	tst	r1,r1	! r1 is errno
 | |
| 	bt	ret
 | |
| 	mov.l	perrno,r2
 | |
| 	mov.l	r1,@r2
 | |
| ret:
 | |
| 	rts
 | |
| 	nop
 | |
| 	
 | |
| 	.align	2
 | |
| perrno:
 | |
| 	.long	_errno
 | |
| #endif /* ! __SH5__ */
 |