Mercurial > pub > dyncall > dyncall
view dyncallback/dyncall_callback_x64_masm.asm @ 606:85b7a117b807
- more statics in test code (this is partly needed on an experimental freebsd sparc64 build where the elf cleanup code crashes for some reason ... it's probably that experimental build, but a good change to do regardless)
author | Tassilo Philipp |
---|---|
date | Wed, 21 Sep 2022 15:20:58 +0200 |
parents | 71c884e610f0 |
children |
line wrap: on
line source
; auto-generated by gen-masm.sh .CODE DCThunk_size = 24 DCArgs_size_win64 = 96 DCArgs_size_sysv = 144 DCValue_size = 8 DCRetRegs_SystemV_size = 32 FRAME_arg0_win64 = 48 FRAME_arg0_sysv = 16 FRAME_return = 8 FRAME_parent = 0 CTX_thunk = 0 CTX_handler = 24 CTX_userdata = 32 CTX_aggr_ret_reg = 40 CTX_pad = 44 CTX_aggrs_pp = 48 DCCallback_size = 56 dcCallback_x64_sysv PROC OPTION PROLOGUE:NONE, EPILOGUE:NONE push RBP mov RBP,RSP sub RSP,8*8 movsd qword ptr [RSP+8*7],XMM7 movsd qword ptr [RSP+8*6],XMM6 movsd qword ptr [RSP+8*5],XMM5 movsd qword ptr [RSP+8*4],XMM4 movsd qword ptr [RSP+8*3],XMM3 movsd qword ptr [RSP+8*2],XMM2 movsd qword ptr [RSP+8*1],XMM1 movsd qword ptr [RSP+8*0],XMM0 push R9 push R8 push RCX push RDX push RSI push RDI mov R8,qword ptr [RAX+CTX_aggrs_pp] push R8 mov R8D,dword ptr [RAX+CTX_aggr_ret_reg] push R8 push 0 lea RDX,qword ptr [RBP+FRAME_arg0_sysv] push RDX mov RSI,RSP sub RSP,4*8 mov RDI,RAX mov RCX,qword ptr [RDI+CTX_userdata] mov RDX,RSP call qword ptr [RAX+CTX_handler] cmp dword ptr [RSP+48],-2 je scalar_retval mov RAX,qword ptr [RSP+0] mov RDX,qword ptr [RSP+8] movsd XMM0,qword ptr [RSP+16] movsd XMM1,qword ptr [RSP+24] jmp epilog scalar_retval: mov RAX,qword ptr [RSP+0] movd XMM0,RAX epilog: mov RSP,RBP pop RBP ret dcCallback_x64_sysv ENDP dcCallback_x64_win64 PROC FRAME OPTION EPILOGUE:NONE push RBP .pushreg RBP mov RBP,RSP .setframe RBP, 0 .endprolog sub RSP,4*8 movsd qword ptr [RSP+8*3],XMM3 movsd qword ptr [RSP+8*2],XMM2 movsd qword ptr [RSP+8*1],XMM1 movsd qword ptr [RSP+8*0],XMM0 push R9 push R8 push RDX push RCX mov R8,qword ptr [RAX+CTX_aggrs_pp] push R8 mov R8D,dword ptr [RAX+CTX_aggr_ret_reg] push R8 push 0 lea RDX,qword ptr [RBP+FRAME_arg0_win64] push RDX mov RDX,RSP sub RSP,2*8 mov RCX,RAX mov R9,qword ptr [RAX+CTX_userdata] mov R8,RSP sub RSP,4*8 call qword ptr [RAX+CTX_handler] mov RAX,qword ptr [RSP+4*8] movd XMM0,RAX mov RSP,RBP pop RBP ret dcCallback_x64_win64 ENDP END