[NDR] Implement NdrClientCall2 and NdrServerCall2
Alexandre Julliard
julliard at winehq.org
Thu Dec 1 04:09:29 CST 2005
Robert Shearman <rob at codeweavers.com> writes:
> + "shrl $2, %ecx\n\t" /* divide by 4 */
> + "rep movsl\n\t" /* Copy dword blocks */
> + "movl %eax, %ecx\n\t"
> + "andl $3, %ecx\n\t" /* modulus 4 */
> + "rep movsb\n\t" /* Copy remainder */
If the argument size is not a multiple of 4 you are in serious
trouble...
Instead of reinventing it I'd suggest copying the call_entry_point
function from dlls/ntdll/relay.c, it will also get the stack alignment
right (plus it saves ebp at the right place ;-)
--
Alexandre Julliard
julliard at winehq.org
More information about the wine-devel
mailing list