1#include "asm-x86_64.h"
2	TEXT()
3	P2ALIGN(4,15)
4	DECLARE_FUNCTION(callback_receiver)
5FUNBEGIN(callback_receiver)
6L(FB0):
7	INSN1(push,q	,R(rbp))
8L(CFI0):
9	INSN2(mov,q	,R(rsp), R(rbp))
10L(CFI1):
11	INSN2(sub,q	,NUM(144), R(rsp))
12	INSN2(mov,q	,R(rcx),X8 MEM_DISP(rbp,16))
13	INSN2(lea,q	,X8 MEM_DISP(rbp,16), R(rcx))
14	INSN2(mov,q	,R(rdx),X8 MEM_DISP(rbp,24))
15	INSN2(mov,q	,R(r8),X8 MEM_DISP(rbp,32))
16	INSN2(lea,q	,X8 MEM_DISP(rbp,-112), R(rdx))
17	INSN2(mov,q	,R(r9),X8 MEM_DISP(rbp,40))
18	INSN2(mov,q	,R(rcx),X8 MEM_DISP(rbp,-88))
19	INSN2S(movs,s	,R(xmm0),X4 MEM_DISP(rbp,-52))
20	INSN2(mov,l	,NUM(0),X4 MEM_DISP(rbp,-112))
21	INSN2S(movs,s	,R(xmm1),X4 MEM_DISP(rbp,-48))
22	INSN2(mov,q	,NUM(0),X8 MEM_DISP(rbp,-80))
23	INSN2(mov,l	,NUM(0),X4 MEM_DISP(rbp,-72))
24	INSN2S(movs,s	,R(xmm2),X4 MEM_DISP(rbp,-44))
25	INSN2(mov,l	,NUM(0),X4 MEM_DISP(rbp,-56))
26	INSN2S(movs,s	,R(xmm3),X4 MEM_DISP(rbp,-40))
27	INSN2(mov,q	,X8 MEM_DISP(r10,8), R(rcx))
28	INSN2S(movs,d	,R(xmm0),X8 MEM_DISP(rbp,-32))
29	INSN2S(movs,d	,R(xmm1),X8 MEM_DISP(rbp,-24))
30	INSN2S(movs,d	,R(xmm2),X8 MEM_DISP(rbp,-16))
31	INSN2S(movs,d	,R(xmm3),X8 MEM_DISP(rbp,-8))
32	INSN1(call,_	,INDIR(X8 MEM(r10)))
33	INSN2(mov,l	,X4 MEM_DISP(rbp,-72), R(edx))
34	INSN2(test,l	,R(edx), R(edx))
35	INSN1(je,_	,L(1))
36	INSN2(cmp,l	,NUM(1), R(edx))
37	INSN1(je,_	,L(34))
38	INSN2(cmp,l	,NUM(2), R(edx))
39	INSN1(je,_	,L(34))
40	INSN2(cmp,l	,NUM(3), R(edx))
41	INSN1(je,_	,L(37))
42	INSN2(cmp,l	,NUM(4), R(edx))
43	INSN1(je,_	,L(38))
44	INSN2(cmp,l	,NUM(5), R(edx))
45	INSN1(je,_	,L(39))
46	INSN2(cmp,l	,NUM(6), R(edx))
47	INSN1(je,_	,L(40))
48	INSN2(cmp,l	,NUM(7), R(edx))
49	INSN1(je,_	,L(41))
50	INSN2(cmp,l	,NUM(8), R(edx))
51	INSN1(je,_	,L(35))
52	INSN2(cmp,l	,NUM(9), R(edx))
53	INSN1(je,_	,L(35))
54	INSN2(cmp,l	,NUM(10), R(edx))
55	INSN1(je,_	,L(35))
56	INSN2(cmp,l	,NUM(11), R(edx))
57	INSN1(je,_	,L(35))
58	INSN2(cmp,l	,NUM(12), R(edx))
59	INSN1(je,_	,L(42))
60	INSN2(cmp,l	,NUM(13), R(edx))
61	INSN1(je,_	,L(43))
62	INSN2(cmp,l	,NUM(14), R(edx))
63	INSN1(je,_	,L(35))
64	INSN2(cmp,l	,NUM(15), R(edx))
65	INSN1(jne,_	,L(1))
66	INSN2(test,b	,NUM(4),X1 MEM_DISP(rbp,-111))
67	INSN1(je,_	,L(17))
68	INSN2(mov,q	,X8 MEM_DISP(rbp,-64), R(rdx))
69	INSN2(lea,q	,X8 MEM_DISP(rdx,-4), R(rcx))
70	INSN2(test,q	,NUM(-5), R(rcx))
71	INSN1(je,_	,L(20))
72	INSN2(lea,q	,X8 MEM_DISP(rdx,-1), R(rcx))
73	INSN2(cmp,q	,NUM(1), R(rcx))
74	INSN1(ja,_	,L(1))
75L(20):
76	INSN2(mov,q	,X8 MEM_DISP(rbp,-80), R(r8))
77	INSN2(mov,q	,R(r8), R(r9))
78	INSN2(and,l	,NUM(7), R(r8d))
79	INSN2(add,q	,R(r8), R(rdx))
80	INSN2(and,q	,NUM(-8), R(r9))
81	INSN2(cmp,q	,NUM(8), R(rdx))
82	INSN1(ja,_	,L(19))
83	INSN2(lea,l	,X4 MEM_DISP_SHINDEX0(-1,rdx,8), R(ecx))
84	INSN2(mov,l	,NUM(2), R(edx))
85	INSN2(sal,q	,R(cl), R(rdx))
86	INSN2(lea,l	,X4 MEM_DISP_SHINDEX0(0,r8,8), R(ecx))
87	INSN2(sub,q	,NUM(1), R(rdx))
88	INSN2(and,q	,X8 MEM(r9), R(rdx))
89	INSN2(sar,q	,R(cl), R(rdx))
90	INSN2(mov,q	,R(rdx), R(rax))
91L(1):
92	leave
93L(CFI2):
94	ret
95	P2ALIGN(4,10)
96	P2ALIGN(3,7)
97L(34):
98L(CFI3):
99	INSN2MOVXQ(movs,b,X1 MEM_DISP(rbp,-104), R(rax))
100	leave
101L(CFI4):
102	ret
103	P2ALIGN(4,10)
104	P2ALIGN(3,7)
105L(35):
106L(CFI5):
107	INSN2(mov,q	,X8 MEM_DISP(rbp,-104), R(rax))
108	leave
109L(CFI6):
110	ret
111	P2ALIGN(4,10)
112	P2ALIGN(3,7)
113L(37):
114L(CFI7):
115	INSN2MOVXL(movz,b,X1 MEM_DISP(rbp,-104), R(eax))
116	leave
117L(CFI8):
118	ret
119	P2ALIGN(4,10)
120	P2ALIGN(3,7)
121L(38):
122L(CFI9):
123	INSN2MOVXQ(movs,w,X2 MEM_DISP(rbp,-104), R(rax))
124	leave
125L(CFI10):
126	ret
127	P2ALIGN(4,10)
128	P2ALIGN(3,7)
129L(39):
130L(CFI11):
131	INSN2MOVXL(movz,w,X2 MEM_DISP(rbp,-104), R(eax))
132	leave
133L(CFI12):
134	ret
135	P2ALIGN(4,10)
136	P2ALIGN(3,7)
137L(40):
138L(CFI13):
139	INSN2MOVXLQ(movs,l,X4 MEM_DISP(rbp,-104), R(rax))
140	leave
141L(CFI14):
142	ret
143	P2ALIGN(4,10)
144	P2ALIGN(3,7)
145L(42):
146L(CFI15):
147	INSN2S(movs,s	,X4 MEM_DISP(rbp,-104), R(xmm0))
148	leave
149L(CFI16):
150	ret
151	P2ALIGN(4,10)
152	P2ALIGN(3,7)
153L(41):
154L(CFI17):
155	INSN2(mov,l	,X4 MEM_DISP(rbp,-104), R(eax))
156	leave
157L(CFI18):
158	ret
159L(43):
160L(CFI19):
161	INSN2S(movs,d	,X8 MEM_DISP(rbp,-104), R(xmm0))
162	leave
163L(CFI20):
164	ret
165L(17):
166L(CFI21):
167	INSN2(mov,q	,X8 MEM_DISP(rbp,-80), R(rax))
168	leave
169L(CFI22):
170	ret
171L(19):
172L(CFI23):
173	INSN2(lea,l	,X4 MEM_DISP_SHINDEX0(-65,rdx,8), R(ecx))
174	INSN2(mov,l	,NUM(2), R(edx))
175	INSN2(sal,q	,R(cl), R(rdx))
176	INSN2(mov,l	,R(r8d), R(ecx))
177	INSN2(sub,q	,NUM(1), R(rdx))
178	INSN2(and,q	,X8 MEM_DISP(r9,8), R(rdx))
179	INSN1(neg,l	,R(ecx))
180	INSN2(lea,l	,X4 MEM_DISP_SHINDEX0(64,rcx,8), R(ecx))
181	INSN2(sal,q	,R(cl), R(rdx))
182	INSN2(lea,l	,X4 MEM_DISP_SHINDEX0(0,r8,8), R(ecx))
183	INSN2(mov,q	,X8 MEM(r9), R(r8))
184	leave
185L(CFI24):
186	INSN2(sar,q	,R(cl), R(r8))
187	INSN2(or,q	,R(r8), R(rdx))
188	INSN2(mov,q	,R(rdx), R(rax))
189	ret
190L(FE0):
191	FUNEND(callback_receiver, .-callback_receiver)
192	P2ALIGN(4,15)
193	GLOBL(C(callback_get_receiver))
194	DECLARE_FUNCTION(callback_get_receiver)
195FUNBEGIN(callback_get_receiver)
196L(FB1):
197	INSN1(push,q	,R(rbp))
198L(CFI25):
199	INSN2(lea,q	,ADDR_PCRELATIVE(C(callback_receiver)), R(rax))
200	INSN2(mov,q	,R(rsp), R(rbp))
201L(CFI26):
202	INSN1(pop,q	,R(rbp))
203L(CFI27):
204	ret
205L(FE1):
206	FUNEND(callback_get_receiver, .-callback_get_receiver)
207#if !(defined __sun || (defined __APPLE__ && defined __MACH__) || (defined _WIN32 || defined __CYGWIN__))
208	.section	EH_FRAME_SECTION
209L(frame1):
210	.long	L(ECIE1)-.LSCIE1
211L(SCIE1):
212	.long	0
213	.byte	0x3
214	.string	"zR"
215	.uleb128 0x1
216	.sleb128 -8
217	.uleb128 0x10
218	.uleb128 0x1
219	.byte	0x1b
220	.byte	0xc
221	.uleb128 0x7
222	.uleb128 0x8
223	.byte	0x90
224	.uleb128 0x1
225	.align 8
226L(ECIE1):
227L(SFDE1):
228	.long	L(EFDE1)-.LASFDE1
229L(ASFDE1):
230	.long	L(ASFDE1)-.Lframe1
231	.long	L(FB0)-.
232	.long	L(FE0)-.LFB0
233	.uleb128 0
234	.byte	0x4
235	.long	L(CFI0)-.LFB0
236	.byte	0xe
237	.uleb128 0x10
238	.byte	0x86
239	.uleb128 0x2
240	.byte	0x4
241	.long	L(CFI1)-.LCFI0
242	.byte	0xd
243	.uleb128 0x6
244	.byte	0x4
245	.long	L(CFI2)-.LCFI1
246	.byte	0xa
247	.byte	0xc6
248	.byte	0xc
249	.uleb128 0x7
250	.uleb128 0x8
251	.byte	0x4
252	.long	L(CFI3)-.LCFI2
253	.byte	0xb
254	.byte	0x4
255	.long	L(CFI4)-.LCFI3
256	.byte	0xa
257	.byte	0xc6
258	.byte	0xc
259	.uleb128 0x7
260	.uleb128 0x8
261	.byte	0x4
262	.long	L(CFI5)-.LCFI4
263	.byte	0xb
264	.byte	0x4
265	.long	L(CFI6)-.LCFI5
266	.byte	0xa
267	.byte	0xc6
268	.byte	0xc
269	.uleb128 0x7
270	.uleb128 0x8
271	.byte	0x4
272	.long	L(CFI7)-.LCFI6
273	.byte	0xb
274	.byte	0x4
275	.long	L(CFI8)-.LCFI7
276	.byte	0xa
277	.byte	0xc6
278	.byte	0xc
279	.uleb128 0x7
280	.uleb128 0x8
281	.byte	0x4
282	.long	L(CFI9)-.LCFI8
283	.byte	0xb
284	.byte	0x4
285	.long	L(CFI10)-.LCFI9
286	.byte	0xa
287	.byte	0xc6
288	.byte	0xc
289	.uleb128 0x7
290	.uleb128 0x8
291	.byte	0x4
292	.long	L(CFI11)-.LCFI10
293	.byte	0xb
294	.byte	0x4
295	.long	L(CFI12)-.LCFI11
296	.byte	0xa
297	.byte	0xc6
298	.byte	0xc
299	.uleb128 0x7
300	.uleb128 0x8
301	.byte	0x4
302	.long	L(CFI13)-.LCFI12
303	.byte	0xb
304	.byte	0x4
305	.long	L(CFI14)-.LCFI13
306	.byte	0xa
307	.byte	0xc6
308	.byte	0xc
309	.uleb128 0x7
310	.uleb128 0x8
311	.byte	0x4
312	.long	L(CFI15)-.LCFI14
313	.byte	0xb
314	.byte	0x4
315	.long	L(CFI16)-.LCFI15
316	.byte	0xa
317	.byte	0xc6
318	.byte	0xc
319	.uleb128 0x7
320	.uleb128 0x8
321	.byte	0x4
322	.long	L(CFI17)-.LCFI16
323	.byte	0xb
324	.byte	0x4
325	.long	L(CFI18)-.LCFI17
326	.byte	0xa
327	.byte	0xc6
328	.byte	0xc
329	.uleb128 0x7
330	.uleb128 0x8
331	.byte	0x4
332	.long	L(CFI19)-.LCFI18
333	.byte	0xb
334	.byte	0x4
335	.long	L(CFI20)-.LCFI19
336	.byte	0xa
337	.byte	0xc6
338	.byte	0xc
339	.uleb128 0x7
340	.uleb128 0x8
341	.byte	0x4
342	.long	L(CFI21)-.LCFI20
343	.byte	0xb
344	.byte	0x4
345	.long	L(CFI22)-.LCFI21
346	.byte	0xa
347	.byte	0xc6
348	.byte	0xc
349	.uleb128 0x7
350	.uleb128 0x8
351	.byte	0x4
352	.long	L(CFI23)-.LCFI22
353	.byte	0xb
354	.byte	0x4
355	.long	L(CFI24)-.LCFI23
356	.byte	0xc6
357	.byte	0xc
358	.uleb128 0x7
359	.uleb128 0x8
360	.align 8
361L(EFDE1):
362L(SFDE3):
363	.long	L(EFDE3)-.LASFDE3
364L(ASFDE3):
365	.long	L(ASFDE3)-.Lframe1
366	.long	L(FB1)-.
367	.long	L(FE1)-.LFB1
368	.uleb128 0
369	.byte	0x4
370	.long	L(CFI25)-.LFB1
371	.byte	0xe
372	.uleb128 0x10
373	.byte	0x86
374	.uleb128 0x2
375	.byte	0x4
376	.long	L(CFI26)-.LCFI25
377	.byte	0xd
378	.uleb128 0x6
379	.byte	0x4
380	.long	L(CFI27)-.LCFI26
381	.byte	0xc6
382	.byte	0xc
383	.uleb128 0x7
384	.uleb128 0x8
385	.align 8
386L(EFDE3):
387#endif
388#if defined __linux__ || defined __FreeBSD__ || defined __FreeBSD_kernel__ || defined __DragonFly__
389	.section .note.GNU-stack,"",@progbits
390#endif
391