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