xref: /aosp_15_r20/external/musl/src/signal/powerpc64/sigsetjmp.s (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker	.global sigsetjmp
2*c9945492SAndroid Build Coastguard Worker	.global __sigsetjmp
3*c9945492SAndroid Build Coastguard Worker	.type sigsetjmp,%function
4*c9945492SAndroid Build Coastguard Worker	.type __sigsetjmp,%function
5*c9945492SAndroid Build Coastguard Worker	.hidden __setjmp_toc
6*c9945492SAndroid Build Coastguard Workersigsetjmp:
7*c9945492SAndroid Build Coastguard Worker__sigsetjmp:
8*c9945492SAndroid Build Coastguard Worker	addis 2, 12, .TOC.-__sigsetjmp@ha
9*c9945492SAndroid Build Coastguard Worker	addi  2,  2, .TOC.-__sigsetjmp@l
10*c9945492SAndroid Build Coastguard Worker	ld    5, 24(1)   # load from the TOC slot in the caller's stack frame
11*c9945492SAndroid Build Coastguard Worker	b     1f
12*c9945492SAndroid Build Coastguard Worker
13*c9945492SAndroid Build Coastguard Worker	.localentry sigsetjmp,.-sigsetjmp
14*c9945492SAndroid Build Coastguard Worker	.localentry __sigsetjmp,.-__sigsetjmp
15*c9945492SAndroid Build Coastguard Worker	mr    5,  2
16*c9945492SAndroid Build Coastguard Worker
17*c9945492SAndroid Build Coastguard Worker1:
18*c9945492SAndroid Build Coastguard Worker	cmpwi cr7, 4, 0
19*c9945492SAndroid Build Coastguard Worker	beq-  cr7, __setjmp_toc
20*c9945492SAndroid Build Coastguard Worker
21*c9945492SAndroid Build Coastguard Worker	mflr  6
22*c9945492SAndroid Build Coastguard Worker	std   6, 512(3)
23*c9945492SAndroid Build Coastguard Worker	std   2, 512+16(3)
24*c9945492SAndroid Build Coastguard Worker	std  16, 512+24(3)
25*c9945492SAndroid Build Coastguard Worker	mr   16, 3
26*c9945492SAndroid Build Coastguard Worker
27*c9945492SAndroid Build Coastguard Worker	bl __setjmp_toc
28*c9945492SAndroid Build Coastguard Worker
29*c9945492SAndroid Build Coastguard Worker	mr   4,  3
30*c9945492SAndroid Build Coastguard Worker	mr   3, 16
31*c9945492SAndroid Build Coastguard Worker	ld   5, 512(3)
32*c9945492SAndroid Build Coastguard Worker	mtlr 5
33*c9945492SAndroid Build Coastguard Worker	ld   2, 512+16(3)
34*c9945492SAndroid Build Coastguard Worker	ld  16, 512+24(3)
35*c9945492SAndroid Build Coastguard Worker
36*c9945492SAndroid Build Coastguard Worker.hidden __sigsetjmp_tail
37*c9945492SAndroid Build Coastguard Worker	b __sigsetjmp_tail
38