annotate test/gen-masm/call_x64.masm @ 406:351bb41d3bb1

- removed %-prefixes for register names from arm assembly files (was wrong to begin with, gas accepted them but the clang integrated assembler does not)
author Tassilo Philipp
date Sun, 03 Oct 2021 10:34:56 +0200
parents 3e629dc19168
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
1 .CODE
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 dcCall_x64_sysv PROC
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4 OPTION PROLOGUE:NONE, EPILOGUE:NONE
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 push rbp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 push rbx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7 mov rbp, rsp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8 mov rbx, r8
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
9 movsd xmm0, qword ptr[rcx ]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 movsd xmm1, qword ptr[rcx+ 8]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11 movsd xmm2, qword ptr[rcx+16]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 movsd xmm3, qword ptr[rcx+24]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 movsd xmm4, qword ptr[rcx+32]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14 movsd xmm5, qword ptr[rcx+40]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15 movsd xmm6, qword ptr[rcx+48]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 movsd xmm7, qword ptr[rcx+56]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17 sub rsp, rdi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 mov rax, rdi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19 add rax, 8
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20 and rax, 15
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21 sub rsp, rax
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22 mov rcx, rdi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23 mov rdi, rsp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24 rep movsb
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
25 mov rdi, qword ptr[rdx ]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
26 mov rsi, qword ptr[rdx+ 8]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
27 mov rcx, qword ptr[rdx+24]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
28 mov r8, qword ptr[rdx+32]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
29 mov r9, qword ptr[rdx+40]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
30 mov rdx, qword ptr[rdx+16]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
31 mov al, 8
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
32 call rbx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
33 mov rsp, rbp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
34 pop rbx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
35 pop rbp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
36 ret
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
37 dcCall_x64_sysv ENDP
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
38 dcCall_x64_win64 PROC
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
39 OPTION PROLOGUE:NONE, EPILOGUE:NONE
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
40 push rbp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
41 push rsi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
42 push rdi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
43 mov rbp, rsp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
44 sub rsp, rcx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
45 mov rax, rcx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
46 add rax, 8
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
47 and rax, 15
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
48 sub rsp, rax
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
49 mov rsi, rdx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
50 mov rdi, rsp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
51 mov rax, r9
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
52 rep movsb
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
53 mov rcx, qword ptr[r8 ]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
54 mov rdx, qword ptr[r8+ 8]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
55 mov r9, qword ptr[r8+24]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
56 mov r8, qword ptr[r8+16]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
57 movd xmm0, rcx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
58 movd xmm1, rdx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
59 movd xmm2, r8
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
60 movd xmm3, r9
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
61 push r9
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
62 push r8
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
63 push rdx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
64 push rcx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
65 call rax
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
66 mov rsp, rbp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
67 pop rdi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
68 pop rsi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
69 pop rbp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
70 ret
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
71 dcCall_x64_win64 ENDP
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
72 END