mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
[RPCRT4] Sync msvc.S with WINE's inline assembly,
as suggested by Thomas CORE-18505
This commit is contained in:
parent
8398b28ae4
commit
062a8f20a9
1 changed files with 15 additions and 14 deletions
|
@ -13,24 +13,25 @@ EXTERN _ndr_client_call:PROC
|
|||
PUBLIC _call_stubless_func
|
||||
_call_stubless_func:
|
||||
|
||||
mov ecx,[esp+4] /* This Pointer */
|
||||
mov ecx,[ecx] /* This->lpVtbl */
|
||||
mov ecx,[ecx-8] /* MIDL_STUBLESS_PROXY_INFO */
|
||||
mov edx,[ecx+8] /* Info->FormatStringOffset */
|
||||
mov edx,[edx+eax*2] /* FormatStringOffset[index] */
|
||||
and edx, 0000FFFFh
|
||||
add edx,[ecx+4] /* info->ProcFormatString + offset */
|
||||
mov eax, [edx+8] /* arguments size */
|
||||
and eax, 0000FFFFh
|
||||
mov ecx, [esp+4] /* This Pointer */
|
||||
mov ecx, [ecx] /* This->lpVtbl */
|
||||
mov ecx, [ecx-8] /* MIDL_STUBLESS_PROXY_INFO */
|
||||
mov edx, [ecx+8] /* Info->FormatStringOffset */
|
||||
movzx edx, word ptr [edx+eax*2] /* FormatStringOffset[index] */
|
||||
add edx, [ecx+4] /* info->ProcFormatString + offset */
|
||||
movzx eax, byte ptr [edx+1] /* Oi_flags */
|
||||
and eax, 8 /* Oi_HAS_RPCFLAGS */
|
||||
shr eax, 1
|
||||
movzx eax, word ptr [edx+eax+4] /* arguments size */
|
||||
push eax
|
||||
lea eax, [esp+8] /* &This */
|
||||
lea eax, [esp+8] /* &This */
|
||||
push eax
|
||||
push edx /* format string */
|
||||
push [ecx] /* info->pstubdesc */
|
||||
push edx /* format string */
|
||||
push [ecx] /* info->pstubdesc */
|
||||
call _ndr_client_call
|
||||
lea esp, [esp+12]
|
||||
pop edx /* arguments size */
|
||||
mov ecx, [esp] /* return address */
|
||||
pop edx /* arguments size */
|
||||
mov ecx, [esp] /* return address */
|
||||
add esp, edx
|
||||
jmp ecx
|
||||
|
||||
|
|
Loading…
Reference in a new issue