Mercurial > pub > dyncall > dyncall
diff test/gen-masm/call_x64.masm @ 0:3e629dc19168
initial from svn dyncall-1745
author | Daniel Adler |
---|---|
date | Thu, 19 Mar 2015 22:24:28 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/gen-masm/call_x64.masm Thu Mar 19 22:24:28 2015 +0100 @@ -0,0 +1,72 @@ +.CODE + +dcCall_x64_sysv PROC +OPTION PROLOGUE:NONE, EPILOGUE:NONE + push rbp + push rbx + mov rbp, rsp + mov rbx, r8 + movsd xmm0, qword ptr[rcx ] + movsd xmm1, qword ptr[rcx+ 8] + movsd xmm2, qword ptr[rcx+16] + movsd xmm3, qword ptr[rcx+24] + movsd xmm4, qword ptr[rcx+32] + movsd xmm5, qword ptr[rcx+40] + movsd xmm6, qword ptr[rcx+48] + movsd xmm7, qword ptr[rcx+56] + sub rsp, rdi + mov rax, rdi + add rax, 8 + and rax, 15 + sub rsp, rax + mov rcx, rdi + mov rdi, rsp + rep movsb + mov rdi, qword ptr[rdx ] + mov rsi, qword ptr[rdx+ 8] + mov rcx, qword ptr[rdx+24] + mov r8, qword ptr[rdx+32] + mov r9, qword ptr[rdx+40] + mov rdx, qword ptr[rdx+16] + mov al, 8 + call rbx + mov rsp, rbp + pop rbx + pop rbp + ret +dcCall_x64_sysv ENDP +dcCall_x64_win64 PROC +OPTION PROLOGUE:NONE, EPILOGUE:NONE + push rbp + push rsi + push rdi + mov rbp, rsp + sub rsp, rcx + mov rax, rcx + add rax, 8 + and rax, 15 + sub rsp, rax + mov rsi, rdx + mov rdi, rsp + mov rax, r9 + rep movsb + mov rcx, qword ptr[r8 ] + mov rdx, qword ptr[r8+ 8] + mov r9, qword ptr[r8+24] + mov r8, qword ptr[r8+16] + movd xmm0, rcx + movd xmm1, rdx + movd xmm2, r8 + movd xmm3, r9 + push r9 + push r8 + push rdx + push rcx + call rax + mov rsp, rbp + pop rdi + pop rsi + pop rbp + ret +dcCall_x64_win64 ENDP +END