1#include "asm-m68k.h"
2	.text
3	.even
4FUNBEGIN(callback_receiver)
5	link $a6,#-32
6	moveml #0x3030,$sp@-
7	clrl $a6@(-32)
8	lea $a6@(8),$a2
9	movel $a2,$a6@(-20)
10	clrl $a6@(-16)
11	clrl $a6@(-12)
12	movel $a1,$a6@(-4)
13	pea $a6@(-32)
14	movel $a0@(4),$sp@-
15	movel $a0@,$a2
16	jsr $a2@
17	addql #8,$sp
18	movel $a6@(-12),$a3
19	tstl $a3
20	jeq L(1)
21	moveq #1,$d2
22	cmpl $a3,$d2
23	jeq L(46)
24	moveq #2,$d3
25	cmpl $a3,$d3
26	jeq L(46)
27	moveq #3,$d2
28	cmpl $a3,$d2
29	jeq L(47)
30	moveq #4,$d3
31	cmpl $a3,$d3
32	jeq L(48)
33	moveq #5,$d2
34	cmpl $a3,$d2
35	jeq L(49)
36	moveq #6,$d3
37	cmpl $a3,$d3
38	jeq L(45)
39	moveq #7,$d2
40	cmpl $a3,$d2
41	jeq L(45)
42	moveq #8,$d3
43	cmpl $a3,$d3
44	jeq L(45)
45	moveq #9,$d2
46	cmpl $a3,$d2
47	jeq L(45)
48	lea $a3@(-10),$a2
49	moveq #1,$d3
50	cmpl $a2,$d3
51	jcs L(22)
52	movel $a6@(-28),$d0
53	movel $a6@(-24),$d1
54	jra L(1)
55	.even
56L(22):
57	moveq #12,$d2
58	cmpl $a3,$d2
59	jeq L(50)
60	moveq #13,$d2
61	cmpl $a3,$d2
62	jeq L(51)
63	moveq #14,$d3
64	cmpl $a3,$d3
65	jeq L(52)
66	moveq #15,$d2
67	cmpl $a3,$d2
68	jne L(1)
69	btst #2,$a6@(-30)
70	jeq L(1)
71	movel $a6@(-8),$d2
72	moveq #1,$d3
73	cmpl $d2,$d3
74	jeq L(53)
75	moveq #2,$d3
76	cmpl $d2,$d3
77	jeq L(54)
78	moveq #4,$d3
79	cmpl $d2,$d3
80	jeq L(55)
81	moveq #8,$d3
82	cmpl $d2,$d3
83	jne L(1)
84	movel $a6@(-16),$a2
85	movel $a2@,$d0
86	movel $a2@(4),$d1
87	jra L(1)
88	.even
89L(55):
90	movel $a6@(-16),$a2
91	movel $a2@,$d0
92	jra L(1)
93	.even
94L(54):
95	movel $a6@(-16),$a2
96	clrl $d0
97	movew $a2@,$d0
98	jra L(1)
99	.even
100L(53):
101	movel $a6@(-16),$a2
102	clrl $d0
103	moveb $a2@,$d0
104	jra L(1)
105	.even
106L(52):
107	movel $a6@(-28),$d0
108	movel $d0,$a0
109	jra L(1)
110	.even
111L(51):
112	btst #6,$a6@(-29)
113	jeq L(31)
114	fmoved $a6@(-28),$fp0
115	jra L(1)
116	.even
117L(31):
118	movel $a6@(-28),$d0
119	movel $a6@(-24),$d1
120	jra L(1)
121	.even
122L(50):
123	movel $a6@(-32),$d2
124	btst #6,$d2
125	jeq L(25)
126	fmoves $a6@(-28),$fp0
127	jra L(1)
128	.even
129L(25):
130	btst #5,$d2
131	jeq L(27)
132	fmoves $a6@(-28),$fp1
133	fmoved $fp1,$sp@-
134	movel $sp@+,$d0
135	movel $sp@+,$d1
136	jra L(1)
137	.even
138L(27):
139	movel $a6@(-28),$d0
140	jra L(1)
141	.even
142L(45):
143	movel $a6@(-28),$d0
144	jra L(1)
145	.even
146L(49):
147	clrl $d0
148	movew $a6@(-28),$d0
149	jra L(1)
150	.even
151L(48):
152	movew $a6@(-28),$d0
153	extl $d0
154	jra L(1)
155	.even
156L(47):
157	clrl $d0
158	moveb $a6@(-28),$d0
159	jra L(1)
160	.even
161L(46):
162	moveb $a6@(-28),$d0
163	extbl $d0
164L(1):
165	moveml $a6@(-48),#0xc0c
166	unlk $a6
167	rts
168	.even
169	.globl C(callback_get_receiver)
170	DECLARE_FUNCTION(callback_get_receiver)
171FUNBEGIN(callback_get_receiver)
172	link $a6,#0
173	movel $a5,$sp@-
174	movel #C(_GLOBAL_OFFSET_TABLE_), $a5
175	lea $pc@(0,$a5:l),$a5
176	movel $a5@(C(callback_receiver):l),$d0
177	movel $sp@+,$a5
178	unlk $a6
179	rts
180FUNEND(callback_get_receiver)
181#if defined __linux__ || defined __FreeBSD__ || defined __FreeBSD_kernel__ || defined __DragonFly__
182	.section .note.GNU-stack,"",@progbits
183#endif
184