summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/sparc/unified.S
blob: 873a522dfdca33b4fc0ce96d479116a8601541dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <dietfeatures.h>
#include "syscalls.h"

.text
.weak exit
.type exit,function
exit:
.global _exit
.type	_exit,function
_exit:
	mov	__NR_exit, %g1
.global __unified_syscall
__unified_syscall:
	ta	0x10

	bcc	1f
	save	%sp, -104, %sp

	neg	%i0, %i0
1:
	add	%i0, 0xff, %l2
	cmp	%l2, 0xfe
	bgu	2f
	neg	%i0, %l3
#ifdef WANT_THREAD_SAFE
	call	__errno_location
	nop
#else
	sethi	%hi(errno), %o0
	or	%o0, %lo(errno), %o0
#endif
	st	%l3, [ %o0 ]
	mov	-1, %i0
2:
	ret
	restore