On Fri, Oct 5, 2012 at 7:27 AM, <joerg-cyril.hoe...@t-systems.com> 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