[Mono-devel-list] X86 interpreter patch + struct layout patch

Bernie Solomon bernard at ugsolutions.com
Mon Aug 18 12:38:40 EDT 2003


I know that the x86 interpreter is not really used but it is useful for
comparison with other platforms and I have found a couple of issues with it.

Note that alignment of doubles in structs - at least when I compile - is
different on Linux and mno-cygwin compiles so these changes actually improve
the JIT on Windows (my changes to test pinvoke2.cs from a little while ago
show this).

Anyway - the x86 trampoline code didn't use the correct side routine for
valuetypes - also it miscalculated the instruction size in the face of float
argmuments (now in pinvoke.cs).

The marshal.c changes have one 64 bit issue (the CONV_BOOL_I4 case), move a
bit of code so that when it throws an exception (which it currently doesn't)
a memory leak is avoided and also fix alignment of 8 byte values in native
struct layout (this appears to work properly on Linux and Windows to me).

Bernie Solomon
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: x86_tramp.diffs.txt
Url: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20030818/06fba6be/attachment.txt 
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: marshal.diffs.txt
Url: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20030818/06fba6be/attachment-0001.txt 


More information about the Mono-devel-list mailing list