comparison test/gen-masm/call_x86.masm @ 0:3e629dc19168

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