diff dyncallback/dyncall_callback_x64_masm.asm @ 0:3e629dc19168

initial from svn dyncall-1745
author Daniel Adler
date Thu, 19 Mar 2015 22:24:28 +0100
parents
children 71c884e610f0
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dyncallback/dyncall_callback_x64_masm.asm	Thu Mar 19 22:24:28 2015 +0100
@@ -0,0 +1,82 @@
+; auto-generated by gen-masm.sh
+.CODE
+DCThunk_size = 24
+DCArgs_size_win64 = 80
+DCArgs_size_sysv = 128
+DCValue_size = 8
+FRAME_arg0_win64 = 48
+FRAME_arg0_sysv = 16
+FRAME_return = 8
+FRAME_parent = 0
+FRAME_DCArgs_sysv = -128
+FRAME_DCValue_sysv = -136
+FRAME_DCArgs_win64 = -80
+FRAME_DCValue_win64 = -80
+CTX_thunk = 0
+CTX_handler = 24
+CTX_userdata = 32
+DCCallback_size = 40
+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
+ push 0
+ lea RDX,qword ptr [RBP+FRAME_arg0_sysv]
+ push RDX
+ mov RSI,RSP
+ push 0
+ mov RDI,RAX
+ mov RCX,qword ptr [RDI+CTX_userdata]
+ mov RDX,RSP
+ push 0
+ call qword ptr [RAX+CTX_handler]
+ mov RAX,qword ptr [RBP+FRAME_DCValue_sysv]
+ movd XMM0,RAX
+ mov RSP,RBP
+ pop RBP
+ ret
+dcCallback_x64_sysv ENDP
+dcCallback_x64_win64 PROC
+OPTION PROLOGUE:NONE, EPILOGUE:NONE
+ push RBP
+ mov RBP,RSP
+ 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
+ push 0
+ lea RDX,qword ptr [RBP+FRAME_arg0_win64]
+ push RDX
+ mov RDX,RSP
+ 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 [RBP+FRAME_DCValue_win64]
+ movd XMM0,RAX
+ mov RSP,RBP
+ pop RBP
+ ret
+dcCallback_x64_win64 ENDP
+END