xref: /aosp_15_r20/external/musl/arch/mips/crt_arch.h (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker __asm__(
2*c9945492SAndroid Build Coastguard Worker ".set push\n"
3*c9945492SAndroid Build Coastguard Worker ".set noreorder\n"
4*c9945492SAndroid Build Coastguard Worker ".text \n"
5*c9945492SAndroid Build Coastguard Worker ".global _" START "\n"
6*c9945492SAndroid Build Coastguard Worker ".global " START "\n"
7*c9945492SAndroid Build Coastguard Worker ".type   _" START ", @function\n"
8*c9945492SAndroid Build Coastguard Worker ".type   " START ", @function\n"
9*c9945492SAndroid Build Coastguard Worker "_" START ":\n"
10*c9945492SAndroid Build Coastguard Worker "" START ":\n"
11*c9945492SAndroid Build Coastguard Worker "	bal 1f \n"
12*c9945492SAndroid Build Coastguard Worker "	 move $fp, $0 \n"
13*c9945492SAndroid Build Coastguard Worker "	.gpword . \n"
14*c9945492SAndroid Build Coastguard Worker "	.gpword " START "_c \n"
15*c9945492SAndroid Build Coastguard Worker ".weak _DYNAMIC \n"
16*c9945492SAndroid Build Coastguard Worker ".hidden _DYNAMIC \n"
17*c9945492SAndroid Build Coastguard Worker "	.gpword _DYNAMIC \n"
18*c9945492SAndroid Build Coastguard Worker "1:	lw $gp, 0($ra) \n"
19*c9945492SAndroid Build Coastguard Worker "	subu $gp, $ra, $gp \n"
20*c9945492SAndroid Build Coastguard Worker "	move $4, $sp \n"
21*c9945492SAndroid Build Coastguard Worker "	lw $5, 8($ra) \n"
22*c9945492SAndroid Build Coastguard Worker "	addu $5, $5, $gp \n"
23*c9945492SAndroid Build Coastguard Worker "	lw $25, 4($ra) \n"
24*c9945492SAndroid Build Coastguard Worker "	addu $25, $25, $gp \n"
25*c9945492SAndroid Build Coastguard Worker "	and $sp, $sp, -8 \n"
26*c9945492SAndroid Build Coastguard Worker "	jalr $25 \n"
27*c9945492SAndroid Build Coastguard Worker "	 subu $sp, $sp, 16 \n"
28*c9945492SAndroid Build Coastguard Worker ".set pop \n"
29*c9945492SAndroid Build Coastguard Worker );
30