[Mono-dev] Building Mono on Linux/Alpha

Zoltan Varga vargaz at gmail.com
Wed Feb 22 07:23:56 EST 2006


                                         Hi,

  You can use whatever calling convention you want when calling
managed methods, but
the JIT needs to support calling native functions as well. Most
architectures pass
structures on the stack when calling managed methods, and implement
the platform ABI
when calling native methods.

As for the second question: In mini_init (), there are some calls
which can be commented
out if your JIT is not yet able to run some managed code, like
JIT_RUNTIME_WORKS.
Crashing in InitializeArray () usually means problems with handling
Runtime<X>Handles,
ldtoken etc.

                                                           Zoltan

On 2/22/06, Sergey Tikhonov <tsv at solvo.ru> wrote:
> Zoltan Varga wrote:
>
> >                                              Hi,
> >
> > You can put it into mono_arch_emit_exceptions ().
> >
> >                             Zoltan
> >
> >
> Thanks you.
> I hit another blocking issue - inplementation of OP_OUTARG_VT. Different
> arches do it differently.
> Is my understanding is correct - that I could pass it on stack for
> simplicity (like ia64 does), but the called
> method should expect it on stack too. This kind of parameter is not
> expected to be passed to any natively
> compiled methods (by gcc) (because by Alpha ABI upto 6 parameters are
> expected to be passed in registers).
> So if the called method is compiled by jit I guess I have control over
> where to look for method parameters.
>
> I got to the point of calling
> System.Runtime.CompilerServices.RuntimeHelpers:InitializeArray(System.Array,
> intptr) and
> crashing inside. Is there simpler way to check JIT? :) I am using
> compiled "basic.cs" as start point, but it tries to initialize
> part of runtime (I guess) and it is not the simple one.
>
> Thank you,
>
> --
> Sergey Tikhonov
> Solvo Ltd.
> tsv at solvo.ru
>
>



More information about the Mono-devel-list mailing list