1#include "asm-hppa.h"
2	.LEVEL 1.1
3	IMPORT_MILLICODE($$dyncall)
4	TEXT1()
5	TEXT2()
6	.align 4
7		DECLARE_FUNCTION(callback_receiver)
8DEF(callback_receiver)
9	.PROC
10	.CALLINFO FRAME=192,CALLS,SAVE_RP,SAVE_SP,ENTRY_GR=5
11	.ENTRY
12	copy %r3,%r1
13	stw %r2,-20(%r30)
14	copy %r30,%r3
15	stwm %r1,192(%r30)
16	ldo -32(%r3),%r2
17	ldo 16(%r3),%r21
18	ldo 88(%r3),%r20
19	stw %r5,96(%r3)
20	sub %r21,%r2,%r31
21	copy %r19,%r5
22	stw %r4,100(%r3)
23	ldo 80(%r31),%r4
24	ldo 64(%r31),%r31
25	stw %r19,-32(%r30)
26	stw %r25,-40(%r3)
27	copy %r21,%r25
28	ldo 80(%r3),%r21
29	fstds %fr5,0(%r20)
30	ldo 76(%r3),%r20
31	fstws %fr4L,0(%r20)
32	ldo 68(%r3),%r20
33	stw %r0,36(%r3)
34	stw %r28,48(%r3)
35	fstds %fr7,0(%r21)
36	ldo 72(%r3),%r21
37	fstws %fr5L,0(%r21)
38	ldo 64(%r3),%r21
39	fstws %fr6L,0(%r20)
40	ldo -48(%r3),%r20
41	stw %r26,-36(%r3)
42	fstws %fr7L,0(%r21)
43	ldw 0(%r29),%r22
44	stw %r20,52(%r3)
45	stw %r31,56(%r3)
46	stw %r4,60(%r3)
47	stw %r24,-44(%r3)
48	stw %r23,-48(%r3)
49	stw %r0,16(%r3)
50	stw %r2,32(%r3)
51	stw %r0,40(%r3)
52	ldw 4(%r29),%r26
53	.CALL	ARGW0=GR
54	bl $$dyncall,%r31
55	copy %r31,%r2
56	ldw 40(%r3),%r21
57	comib,= 0,%r21,L(1)
58	copy %r5,%r19
59	comib,= 1,%r21,L(48)
60	ldb 24(%r3),%r20
61	comib,=,n 2,%r21,L(48)
62	comib,=,n 3,%r21,L(43)
63	comib,=,n 4,%r21,L(44)
64	comib,=,n 5,%r21,L(45)
65	comib,=,n 6,%r21,L(41)
66	comib,=,n 7,%r21,L(41)
67	comib,=,n 8,%r21,L(41)
68	comib,= 9,%r21,L(41)
69	ldo -10(%r21),%r20
70	comib,<<,n 1,%r20,L(22)
71	ldw 24(%r3),%r28
72DEF(L(40))
73	ldw 28(%r3),%r29
74DEF(L(1))
75	ldw -20(%r3),%r2
76DEF(L(49))
77DEF(L(50))
78	ldw 96(%r3),%r5
79	ldw 100(%r3),%r4
80	ldo 64(%r3),%r30
81	bv %r0(%r2)
82	ldwm -64(%r30),%r3
83DEF(L(22))
84	comib,= 12,%r21,L(46)
85	ldo 24(%r3),%r20
86	comib,=,n 13,%r21,L(47)
87	comib,=,n 14,%r21,L(1)
88	ldw 24(%r3),%r28
89	comib,<> 15,%r21,L(49)
90	ldw -20(%r3),%r2
91	ldw 16(%r3),%r20
92	bb,>= %r20,30,L(49)
93	ldw 44(%r3),%r4
94	ldo -1(%r4),%r20
95	comib,<< 7,%r20,L(50)
96	ldw 36(%r3),%r20
97	extru %r20,31,2,%r31
98	copy %r20,%r2
99	depi 0,31,2,%r2
100	comib,<< 4,%r4,L(33)
101	addl %r31,%r4,%r5
102	zdep %r31,28,29,%r31
103	mtsar %r31
104	zvdepi 2,32,%r20
105	comib,<< 4,%r5,L(34)
106	ldo -1(%r20),%r31
107	ldw 0(%r2),%r20
108	zdep %r5,28,29,%r21
109	ldo -1(%r21),%r21
110	and %r20,%r31,%r20
111	mtsar %r21
112	vextrs %r20,32,%r20
113	movb,tr %r20,%r28,L(49)
114	ldw -20(%r3),%r2
115DEF(L(34))
116	ldw 0(%r2),%r20
117	zdep %r5,28,29,%r22
118	ldw 4(%r2),%r21
119	and %r20,%r31,%r20
120	ldo -33(%r22),%r2
121	subi 63,%r22,%r22
122	mtsar %r22
123	zvdep %r20,32,%r20
124	mtsar %r2
125	vextrs %r21,32,%r21
126DEF(L(39))
127	b L(1)
128	or %r21,%r20,%r28
129DEF(L(33))
130	zdep %r31,28,29,%r31
131	mtsar %r31
132	zvdepi 2,32,%r20
133	comib,<< 8,%r5,L(37)
134	ldo -1(%r20),%r4
135	ldw 0(%r2),%r22
136	zdep %r5,29,30,%r20
137	and %r22,%r4,%r22
138	ldw 4(%r2),%r31
139	subi 47,%r20,%r4
140	zdep %r5,28,29,%r20
141	mtsar %r4
142	ldo -33(%r20),%r20
143	zvdep %r22,32,%r21
144	zvdep %r21,32,%r21
145	mtsar %r20
146	vextrs %r31,32,%r31
147	vextrs %r22,32,%r22
148	movb,tr %r22,%r28,L(1)
149	or %r21,%r31,%r29
150DEF(L(37))
151	ldw 0(%r2),%r21
152	zdep %r5,28,29,%r31
153	ldw 8(%r2),%r22
154	and %r21,%r4,%r21
155	ldo -65(%r31),%r4
156	ldw 4(%r2),%r20
157	mtsar %r4
158	subi 95,%r31,%r2
159	vextrs %r22,32,%r22
160	mtsar %r2
161	zvdep %r20,32,%r31
162	zvdep %r21,32,%r21
163	or %r31,%r22,%r29
164	mtsar %r4
165	b L(39)
166	vextrs %r20,32,%r20
167DEF(L(41))
168	b L(1)
169	ldw 24(%r3),%r28
170DEF(L(47))
171	ldw 24(%r3),%r28
172	b L(40)
173	fldds 0(%r20),%fr4
174DEF(L(46))
175	ldw 24(%r3),%r28
176	b L(1)
177	fldws 0(%r20),%fr4L
178DEF(L(45))
179	b L(1)
180	ldh 24(%r3),%r28
181DEF(L(44))
182	ldh 24(%r3),%r20
183	b L(1)
184	extrs %r20,31,16,%r28
185DEF(L(43))
186	b L(1)
187	ldb 24(%r3),%r28
188DEF(L(48))
189	b L(1)
190	extrs %r20,31,8,%r28
191	.EXIT
192	.PROCEND
193DEF(L(fe1))
194	FUNEND(callback_receiver)
195	.data
196	.align 4
197DEF(L(C0))
198	.word	P%callback_receiver
199	TEXT1()
200	TEXT2()
201	.align 4
202GLOBL(callback_get_receiver)
203		DECLARE_FUNCTION(callback_get_receiver)
204DEF(callback_get_receiver)
205	.PROC
206	.CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3
207	.ENTRY
208	copy %r3,%r1
209	copy %r30,%r3
210	stwm %r1,64(%r30)
211	addil LT!L(C0),%r19
212	stw %r19,-32(%r30)
213	ldw RT!L(C0)(%r1),%r1
214	ldw 0(%r1),%r28
215	ldo 64(%r3),%r30
216	bv %r0(%r2)
217	ldwm -64(%r30),%r3
218	.EXIT
219	.PROCEND
220DEF(L(fe2))
221	FUNEND(callback_get_receiver)
222#if defined __linux__ || defined __FreeBSD__ || defined __FreeBSD_kernel__ || defined __DragonFly__
223	.section .note.GNU-stack,"",@progbits
224#endif
225