[Mono-dev] [PATCH] Marshaling structs on Winx64
vargaz at gmail.com
Thu Jun 12 08:21:09 EDT 2008
- ArgNone /* only in pair_storage */
+ ArgNone, /* only in pair_storage */
- it would look better if ArgNone would be the last entry.
+ load->inst_left = (cfg)->varinfo [vtaddr->inst_c0];;
- there is an extra semicolon at the end
- for the tests: you could use the TestDriver assembly for running the
pinvoke2.cs for how it is done.
Other than these, it looks ok to check in.
2008/6/11 Bill Holmes <billholmes54 at gmail.com>:
> I have been doing more work with passing arguments to native calls on
> Winx64. The attached patch handles the case of an argument that is a
> struct that is not able to be passed in a register.
> I spoke to some of you about this on IRC. The summary of this
> solution is that when one of these structs are identified a local
> variable is created and the argument is copied to that local variable.
> Then the local variable is passed by reference (address of the
> variable) either in a register if available or on the stack.
> I have added more unit tests for this as well as cleaned up the tests
> some to make the code shorter.
> I still believe that there is a problem with native code calling
> managed. I will be looking into that soon.
> OK to commit? Suggestions? What do I not understand? ;)
> fyi. This week I have been looking into SEH on Winx64. I am working
> on a patch to add unwind data for each method to register with the
> Winx64 function table.
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
More information about the Mono-devel-list