Sync with trunk r64222.
[reactos.git] / dll / win32 / oleaut32 / msvc.S
1
2 #include <asm.inc>
3
4 #ifdef _M_AMD64
5 .code64
6
7 PUBLIC call_method
8 call_method:
9 int 2ch
10 ret
11
12 #else
13 .code32
14
15 PUBLIC _call_method
16 _call_method:
17 push ebp
18 mov ebp, esp
19 push esi
20 push edi
21 mov edx, dword ptr ds:[ebp + 12]
22 mov edi, esp
23 shl edx, 2
24 jz cm1
25 sub edi, edx
26 and edi, HEX(0FFFFFFF0)
27 mov esp, edi
28 mov ecx, dword ptr ds:[ebp + 12]
29 mov esi, dword ptr ds:[ebp + 16]
30 cld
31 rep movsd
32 cm1:
33 call dword ptr ds:[ebp + 8]
34 sub edi, esp
35 mov ecx,[ebp + 20]
36 mov [ecx], edi
37 lea esp, [ebp - 8]
38 pop edi
39 pop esi
40 pop ebp
41 ret
42 #endif
43
44 END