summaryrefslogtreecommitdiffstats
path: root/usr/klibc/arch/s390/crt0.S
blob: fd9237ea5a30bf1fcfc2630818c3baa61fdcbdf5 (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
#
# arch/s390/crt0.S
#
# Does arch-specific initialization and invokes __libc_init
# with the appropriate arguments.
#
# See __static_init.c or __shared_init.c for the expected
# arguments.
#
	.text
	.align 4
	.type _start,@function
	.globl _start

#ifndef __s390x__

_start:
	lr	%r2,%r15
	lhi	%r3,0
	ahi	%r15,-96
	bras	%r1,.L0
.L0:
	l	%r1,.L1-.L0(%r1)
	br	%r1
.L1:
	.long	__libc_init
#else

_start:
	lgr	%r2,%r15
	lghi	%r3,0
	aghi	%r15,-160
	jg	__libc_init
#endif
	.size _start,.-_start