Help getting amd64 assembly patch into wine?

Dan Kegel dank at
Fri Oct 5 11:20:01 CDT 2012

On Fri, Oct 5, 2012 at 7:27 AM,  <Joerg-Cyril.Hoehle at> wrote:
> I found your message very unclear.
>>The patch adds support for OpenMP programs like this:
> And then you start talking about vcomp_fork without telling us where
> it comes from and what it should do.

Good point - it's unfair to expect people to run Visual C and look
at its .cod / .asm listing files as my message suggests.  I'll document
the vcomp execution model better in my next draft.

So I'll guess from the names.
> - vcomp_for_static/sections_init sound like startup code
>   initialisation of BSS and DATA segments.

No, those are called at the start of a new parallel section
by every participating thread.  They set up thread-local stuff.

> - fork sounds like running code with thread-local copies to BSS and DATA
>   I guess vcomp eats up one register or parameter to keep a pointer to
>   the thread-local storage.

It means 'Run this helper function on all cores, and pass it these
parameters, which are all pointers to local variables'.

>>    p_vcomp_fork(0, 1, _test_vcomp_fork_worker1, &ncalls);
> Your code does not explain what the first parameter is.

It's a boolean saying whether to actually run in parallel, or just in
the current thread.

> I believe that va_list etc. is not going to lead you anywhere.

I'm going to give Maarten's suggestion a shot.  If it works, the
only assembly left will be a nearly verbatim copy of code in oleaut32/typelib.c

> Does this help?

Yes, your questions are very helpful.  I'll run the next draft by both
you and Maarten if you don't mind.
- Dan

More information about the wine-devel mailing list