1#include "asm-x86_64.h"
2	TEXT()
3	P2ALIGN(4,15)
4	DECLARE_FUNCTION(callback_receiver)
5FUNBEGIN(callback_receiver)
6L(FB2):
7	INSN1(push,q	,R(rbp))
8L(CFI0):
9	INSN2(mov,q	,R(rsp), R(rbp))
10L(CFI1):
11	INSN1(push,q	,R(r13))
12L(CFI2):
13	INSN1(push,q	,R(r12))
14L(CFI3):
15	INSN2(sub,q	,NUM(192), R(rsp))
16L(CFI4):
17	INSN2(mov,q	,R(rcx),X8 MEM_DISP(rbp,-48))
18	INSN2(lea,q	,X8 MEM_DISP(rbp,16), R(rcx))
19	INSN2(mov,q	,R(rdi),X8 MEM_DISP(rbp,-72))
20	INSN2(mov,q	,R(rsi),X8 MEM_DISP(rbp,-64))
21	INSN2S(movs,d	,R(xmm0),X8 MEM_DISP(rbp,-144))
22	INSN2(mov,q	,R(rcx),X8 MEM_DISP(rbp,-184))
23	INSN2(mov,q	,NUM(0),X8 MEM_DISP(rbp,-176))
24	INSN2S(movs,d	,R(xmm1),X8 MEM_DISP(rbp,-136))
25	INSN2(mov,q	,R(rdx),X8 MEM_DISP(rbp,-56))
26	INSN2S(movs,d	,R(xmm2),X8 MEM_DISP(rbp,-128))
27	INSN2(lea,q	,X8 MEM_DISP(rbp,-208), R(rsi))
28	INSN2(mov,q	,R(r8),X8 MEM_DISP(rbp,-40))
29	INSN2S(movs,d	,R(xmm3),X8 MEM_DISP(rbp,-120))
30	INSN2(mov,q	,R(r9),X8 MEM_DISP(rbp,-32))
31	INSN2S(movs,d	,R(xmm4),X8 MEM_DISP(rbp,-112))
32	INSN2S(movs,d	,R(xmm5),X8 MEM_DISP(rbp,-104))
33	INSN2(mov,l	,NUM(0),X4 MEM_DISP(rbp,-208))
34	INSN2S(movs,d	,R(xmm6),X8 MEM_DISP(rbp,-96))
35	INSN2(mov,l	,NUM(0),X4 MEM_DISP(rbp,-168))
36	INSN2S(movs,d	,R(xmm7),X8 MEM_DISP(rbp,-88))
37	INSN2(mov,l	,NUM(0),X4 MEM_DISP(rbp,-80))
38	INSN2(mov,l	,NUM(0),X4 MEM_DISP(rbp,-152))
39	INSN2(mov,q	,X8 MEM_DISP(r10,8), R(rdi))
40	INSN1(call,_	,INDIR(X8 MEM(r10)))
41	INSN2(mov,l	,X4 MEM_DISP(rbp,-168), R(ecx))
42	INSN2(test,l	,R(ecx), R(ecx))
43	INSN1(je,_	,L(41))
44	INSN2(cmp,l	,NUM(1), R(ecx))
45	INSN1(je,_	,L(42))
46	INSN2(cmp,l	,NUM(2), R(ecx))
47	INSN1(je,_	,L(42))
48	INSN2(cmp,l	,NUM(3), R(ecx))
49	P2ALIGN(4,5)
50	INSN1(je,_	,L(48))
51	INSN2(cmp,l	,NUM(4), R(ecx))
52	P2ALIGN(4,5)
53	INSN1(je,_	,L(49))
54	INSN2(cmp,l	,NUM(5), R(ecx))
55	P2ALIGN(4,5)
56	INSN1(je,_	,L(50))
57	INSN2(cmp,l	,NUM(6), R(ecx))
58	P2ALIGN(4,5)
59	INSN1(je,_	,L(51))
60	INSN2(cmp,l	,NUM(7), R(ecx))
61	P2ALIGN(4,5)
62	INSN1(je,_	,L(52))
63	INSN2(cmp,l	,NUM(8), R(ecx))
64	P2ALIGN(4,5)
65	INSN1(je,_	,L(46))
66	INSN2(cmp,l	,NUM(9), R(ecx))
67	P2ALIGN(4,5)
68	INSN1(je,_	,L(46))
69	INSN2(cmp,l	,NUM(10), R(ecx))
70	P2ALIGN(4,5)
71	INSN1(je,_	,L(46))
72	INSN2(cmp,l	,NUM(11), R(ecx))
73	P2ALIGN(4,5)
74	INSN1(je,_	,L(46))
75	INSN2(cmp,l	,NUM(12), R(ecx))
76	P2ALIGN(4,5)
77	INSN1(je,_	,L(53))
78	INSN2(cmp,l	,NUM(13), R(ecx))
79	P2ALIGN(4,5)
80	INSN1(je,_	,L(54))
81	INSN2(cmp,l	,NUM(14), R(ecx))
82	P2ALIGN(4,5)
83	INSN1(je,_	,L(46))
84	INSN2(cmp,l	,NUM(15), R(ecx))
85	P2ALIGN(4,5)
86	INSN1(jne,_	,L(41))
87	INSN2(test,b	,NUM(4),X1 MEM_DISP(rbp,-207))
88	P2ALIGN(4,2)
89	INSN1(je,_	,L(41))
90	INSN2(mov,q	,X8 MEM_DISP(rbp,-160), R(rsi))
91	INSN2(lea,q	,X8 MEM_DISP(rsi,-1), R(rcx))
92	INSN2(cmp,q	,NUM(15), R(rcx))
93	INSN1(ja,_	,L(41))
94	INSN2(mov,q	,X8 MEM_DISP(rbp,-176), R(rcx))
95	INSN2(mov,q	,R(rcx), R(r12))
96	INSN2(mov,q	,R(rcx), R(r8))
97	INSN2(and,l	,NUM(7), R(r8d))
98	INSN2(and,q	,NUM(-8), R(r12))
99	INSN2(cmp,q	,NUM(8), R(rsi))
100	INSN2(lea,q	,X8 MEM_INDEX(rsi,r8), R(r11))
101	INSN1(ja,_	,L(35))
102	INSN2(cmp,q	,NUM(8), R(r11))
103	INSN1(ja,_	,L(37))
104	INSN2(lea,l	,X4 MEM_DISP_SHINDEX0(-1,r11,8), R(ecx))
105	INSN2(mov,l	,NUM(2), R(esi))
106	INSN2(sal,q	,R(cl), R(rsi))
107	INSN2(lea,l	,X4 MEM_DISP_SHINDEX0(0,r8,8), R(ecx))
108	INSN1(dec,q	,R(rsi))
109	INSN2(and,q	,X8 MEM(r12), R(rsi))
110	INSN2(mov,q	,R(rsi), R(rax))
111	INSN2(sar,q	,R(cl), R(rax))
112	P2ALIGN(4,7)
113L(41):
114	INSN2(add,q	,NUM(192), R(rsp))
115	INSN1(pop,q	,R(r12))
116	INSN1(pop,q	,R(r13))
117	leave
118	ret
119	P2ALIGN(4,7)
120L(42):
121	INSN2MOVXQ(movs,b,X1 MEM_DISP(rbp,-200),R(rax))
122	INSN2(add,q	,NUM(192), R(rsp))
123	INSN1(pop,q	,R(r12))
124	INSN1(pop,q	,R(r13))
125	leave
126	ret
127L(49):
128	INSN2MOVXQ(movs,w,X2 MEM_DISP(rbp,-200),R(rax))
129	INSN1(jmp,_	,L(41))
130L(48):
131	INSN2MOVXQ(movz,b,X1 MEM_DISP(rbp,-200), R(rax))
132	INSN1(jmp,_	,L(41))
133L(46):
134	INSN2(mov,q	,X8 MEM_DISP(rbp,-200), R(rax))
135	INSN1(jmp,_	,L(41))
136L(50):
137	INSN2MOVXQ(movz,w,X2 MEM_DISP(rbp,-200), R(rax))
138	INSN1(jmp,_	,L(41))
139L(51):
140	INSN2MOVXLQ(movs,l,X4 MEM_DISP(rbp,-200),R(rax))
141	INSN1(jmp,_	,L(41))
142L(52):
143	INSN2(mov,l	,X4 MEM_DISP(rbp,-200), R(eax))
144	INSN1(jmp,_	,L(41))
145L(53):
146	INSN2S(movs,s	,X4 MEM_DISP(rbp,-200), R(xmm0))
147	INSN1(jmp,_	,L(41))
148L(54):
149	INSN2(movlp,d	,X8 MEM_DISP(rbp,-200), R(xmm0))
150	INSN1(jmp,_	,L(41))
151L(35):
152	INSN2(cmp,q	,NUM(16), R(r11))
153	INSN1(ja,_	,L(39))
154	INSN2(lea,l	,X4 MEM_DISP_SHINDEX0(-65,r11,8), R(ecx))
155	INSN2(mov,l	,NUM(2), R(esi))
156	INSN2(lea,l	,X4 MEM_DISP_SHINDEX0(0,r8,8), R(r9d))
157	INSN2(mov,l	,NUM(32), R(edi))
158	INSN2(sal,q	,R(cl), R(rsi))
159	INSN2(lea,q	,X8 MEM_DISP_SHINDEX0(0,r8,4), R(rcx))
160	INSN2(mov,q	,X8 MEM(r12), R(r8))
161	INSN1(dec,q	,R(rsi))
162	INSN2(and,q	,X8 MEM_DISP(r12,8), R(rsi))
163	INSN2(sub,l	,R(ecx), R(edi))
164	INSN2(mov,l	,R(r9d), R(ecx))
165	INSN2(sar,q	,R(cl), R(r8))
166	INSN2(mov,l	,R(edi), R(ecx))
167	INSN2(mov,q	,R(r8), R(rax))
168	INSN2(mov,q	,R(rsi), R(r11))
169	INSN2(mov,q	,R(rsi), R(rdx))
170	INSN2(sal,q	,R(cl), R(r11))
171	INSN2(sal,q	,R(cl), R(r11))
172	INSN2(mov,l	,R(r9d), R(ecx))
173	INSN2(or,q	,R(r11), R(rax))
174	INSN2(sar,q	,R(cl), R(rdx))
175	INSN1(jmp,_	,L(41))
176L(37):
177	INSN2(mov,q	,X8 MEM(r12), R(rdi))
178	INSN2(lea,l	,X4 MEM_DISP_SHINDEX0(-65,r11,8), R(esi))
179	INSN2(sal,q	,NUM(3), R(r8))
180	INSN2(mov,l	,R(r8d), R(ecx))
181	INSN2(mov,l	,NUM(2), R(r11d))
182	INSN2(sar,q	,R(cl), R(rdi))
183	INSN2(mov,l	,R(esi), R(ecx))
184	INSN2(mov,l	,NUM(64), R(esi))
185	INSN2(sal,q	,R(cl), R(r11))
186	INSN2(sub,l	,R(r8d), R(esi))
187	INSN2(mov,q	,R(rdi), R(rax))
188	INSN1(dec,q	,R(r11))
189	INSN2(and,q	,X8 MEM_DISP(r12,8), R(r11))
190	INSN2(mov,l	,R(esi), R(ecx))
191	INSN2(sal,q	,R(cl), R(r11))
192	INSN2(or,q	,R(r11), R(rax))
193	INSN1(jmp,_	,L(41))
194L(39):
195	INSN2(lea,q	,X8 MEM_DISP_SHINDEX0(0,r8,8), R(rcx))
196	INSN2(mov,q	,X8 MEM(r12), R(r13))
197	INSN2(mov,q	,X8 MEM_DISP(r12,8), R(r8))
198	INSN2(mov,l	,NUM(64), R(edi))
199	INSN2(sub,l	,R(ecx), R(edi))
200	INSN2(mov,l	,R(ecx), R(r9d))
201	INSN2(sar,q	,R(cl), R(r13))
202	INSN2(mov,q	,R(r8), R(rsi))
203	INSN2(mov,l	,R(edi), R(ecx))
204	INSN2(sal,q	,R(cl), R(rsi))
205	INSN2(mov,q	,R(r13), R(rax))
206	INSN2(mov,l	,R(r9d), R(ecx))
207	INSN2(or,q	,R(rsi), R(rax))
208	INSN2(lea,l	,X4 MEM_DISP_SHINDEX0(-129,r11,8), R(esi))
209	INSN2(sar,q	,R(cl), R(r8))
210	INSN2(mov,l	,NUM(2), R(r9d))
211	INSN2(mov,q	,R(r8), R(rdx))
212	INSN2(mov,l	,R(esi), R(ecx))
213	INSN2(sal,q	,R(cl), R(r9))
214	INSN2(mov,l	,R(edi), R(ecx))
215	INSN2(lea,q	,X8 MEM_DISP(r9,-1), R(rsi))
216	INSN2(and,q	,X8 MEM_DISP(r12,16), R(rsi))
217	INSN2(sal,q	,R(cl), R(rsi))
218	INSN2(or,q	,R(rsi), R(rdx))
219	INSN1(jmp,_	,L(41))
220L(FE2):
221	FUNEND(callback_receiver, .-callback_receiver)
222	P2ALIGN(4,15)
223GLOBL(C(callback_get_receiver))
224	DECLARE_FUNCTION(callback_get_receiver)
225FUNBEGIN(callback_get_receiver)
226L(FB3):
227	INSN1(push,q	,R(rbp))
228L(CFI5):
229	INSN2(lea,q	,ADDR_PCRELATIVE(C(callback_receiver)), R(rax))
230	INSN2(mov,q	,R(rsp), R(rbp))
231L(CFI6):
232	leave
233	ret
234L(FE3):
235	FUNEND(callback_get_receiver, .-callback_get_receiver)
236#if !(defined __sun || (defined __APPLE__ && defined __MACH__) || (defined _WIN32 || defined __CYGWIN__))
237	.section	EH_FRAME_SECTION
238L(frame1):
239	.long	L(ECIE1)-.LSCIE1
240L(SCIE1):
241	.long	0x0
242	.byte	0x1
243	.string	"zR"
244	.uleb128 0x1
245	.sleb128 -8
246	.byte	0x10
247	.uleb128 0x1
248	.byte	0x1b
249	.byte	0xc
250	.uleb128 0x7
251	.uleb128 0x8
252	.byte	0x90
253	.uleb128 0x1
254	.align 8
255L(ECIE1):
256L(SFDE1):
257	.long	L(EFDE1)-.LASFDE1
258L(ASFDE1):
259	.long	L(ASFDE1)-.Lframe1
260	.long	L(FB2)-.
261	.long	L(FE2)-.LFB2
262	.uleb128 0x0
263	.byte	0x4
264	.long	L(CFI0)-.LFB2
265	.byte	0xe
266	.uleb128 0x10
267	.byte	0x86
268	.uleb128 0x2
269	.byte	0x4
270	.long	L(CFI1)-.LCFI0
271	.byte	0xd
272	.uleb128 0x6
273	.byte	0x4
274	.long	L(CFI4)-.LCFI1
275	.byte	0x8c
276	.uleb128 0x4
277	.byte	0x8d
278	.uleb128 0x3
279	.align 8
280L(EFDE1):
281L(SFDE3):
282	.long	L(EFDE3)-.LASFDE3
283L(ASFDE3):
284	.long	L(ASFDE3)-.Lframe1
285	.long	L(FB3)-.
286	.long	L(FE3)-.LFB3
287	.uleb128 0x0
288	.byte	0x4
289	.long	L(CFI5)-.LFB3
290	.byte	0xe
291	.uleb128 0x10
292	.byte	0x86
293	.uleb128 0x2
294	.byte	0x4
295	.long	L(CFI6)-.LCFI5
296	.byte	0xd
297	.uleb128 0x6
298	.align 8
299L(EFDE3):
300#endif
301#if defined __linux__ || defined __FreeBSD__ || defined __FreeBSD_kernel__ || defined __DragonFly__
302	.section .note.GNU-stack,"",@progbits
303#endif
304