annotate test/gen-masm/call_x86.masm @ 457:90b1d927912a

- suite_aggrs: make sure random memory used doesn't ever result in NaN fp values (for every possible address), as this messes with result comparison
author Tassilo Philipp
date Fri, 28 Jan 2022 14:11:21 +0100
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 .386
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2 .MODEL FLAT
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 .CODE
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 _dcCall_x86_cdecl PROC
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 OPTION PROLOGUE:NONE, EPILOGUE:NONE
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7 push ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8 mov ebp, esp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
9 push esi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 push edi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11 mov esi, dword ptr[ebp+12]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 mov ecx, dword ptr[ebp+16]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 sub esp, ecx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14 mov edi, esp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15 shr ecx, 2
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 rep movsd
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17 call dword ptr[ebp+8]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 add esp, dword ptr[ebp+16]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19 pop edi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20 pop esi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21 mov esp, ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22 pop ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23 ret
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24 _dcCall_x86_cdecl ENDP
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
25 _dcCall_x86_win32_msthis PROC
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
26 OPTION PROLOGUE:NONE, EPILOGUE:NONE
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
27 push ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
28 mov ebp, esp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
29 push esi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
30 push edi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
31 mov esi, dword ptr [ebp+12]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
32 mov ecx, dword ptr [ebp+16]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
33 mov eax, dword ptr [esi+0]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
34 add esi, 4
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
35 sub ecx, 4
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
36 sub esp, ecx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
37 mov edi, esp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
38 rep movsb
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
39 mov ecx, eax
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
40 call dword ptr[ebp+8]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
41 pop edi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
42 pop esi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
43 mov esp, ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
44 pop ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
45 ret
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
46 _dcCall_x86_win32_msthis ENDP
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
47 _dcCall_x86_win32_std PROC
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
48 OPTION PROLOGUE:NONE, EPILOGUE:NONE
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
49 push ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
50 mov ebp, esp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
51 push esi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
52 push edi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
53 mov esi, dword ptr[ebp+12]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
54 mov ecx, dword ptr[ebp+16]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
55 sub esp, ecx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
56 mov edi, esp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
57 rep movsb
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
58 call dword ptr[ebp+8]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
59 pop edi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
60 pop esi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
61 mov esp, ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
62 pop ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
63 ret
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
64 _dcCall_x86_win32_std ENDP
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
65 _dcCall_x86_win32_fast PROC
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
66 OPTION PROLOGUE:NONE, EPILOGUE:NONE
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
67 push ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
68 mov ebp, esp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
69 push esi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
70 push edi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
71 mov esi, dword ptr[ebp+12]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
72 mov ecx, dword ptr[ebp+16]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
73 mov eax, dword ptr[esi+0]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
74 mov edx, dword ptr[esi+4]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
75 add esi, 8
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
76 sub ecx, 8
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
77 mov dword ptr [ebp+16], ecx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
78 sub esp, ecx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
79 mov edi, esp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
80 rep movsb
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
81 mov ecx, eax
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
82 call dword ptr[ebp+8]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
83 pop edi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
84 pop esi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
85 mov esp, ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
86 pop ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
87 ret
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
88 _dcCall_x86_win32_fast ENDP
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
89 _dcCall_x86_sys_int80h_linux PROC
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
90 OPTION PROLOGUE:NONE, EPILOGUE:NONE
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
91 push ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
92 mov ebp, esp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
93 push ebx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
94 push esi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
95 push edi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
96 mov eax, dword ptr[ebp+12]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
97 mov ebx, dword ptr[eax+0]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
98 mov ecx, dword ptr[eax+4]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
99 mov edx, dword ptr[eax+8]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
100 mov esi, dword ptr[eax+12]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
101 mov edi, dword ptr[eax+16]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
102 mov eax, dword ptr[ebp+8]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
103 int 80h
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
104 pop edi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
105 pop esi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
106 pop ebx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
107 mov esp, ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
108 pop ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
109 ret
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
110 _dcCall_x86_sys_int80h_linux ENDP
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
111 _dcCall_x86_sys_int80h_bsd PROC
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
112 OPTION PROLOGUE:NONE, EPILOGUE:NONE
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
113 push ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
114 mov ebp, esp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
115 push esi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
116 push edi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
117 mov esi, dword ptr[ebp+12]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
118 mov ecx, dword ptr[ebp+16]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
119 sub esp, ecx
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
120 mov edi, esp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
121 shr ecx, 2
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
122 rep movsd
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
123 mov eax, dword ptr[ebp+8]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
124 call _do_int
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
125 pop edi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
126 pop esi
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
127 mov esp, ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
128 pop ebp
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
129 ret
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
130 _do_int:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
131 int 80h
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
132 ret
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
133 _dcCall_x86_sys_int80h_bsd ENDP
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
134 END