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