harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Weldon Washburn" <weldon...@gmail.com>
Subject Re: [drlvm/mmtk] jitrino.jet write barrier initial implementaion
Date Mon, 10 Jul 2006 13:59:57 GMT
On 7/10/06, Alex Astapchuk <alex.astapchuk@gmail.com> wrote:
> Weldon,
> I just commited http://issues.apache.org/jira/browse/HARMONY-816
> into JIRA.

Thanks.  I will look at it today.

> It contains the changes for Jitrino.JET:
> - magics support for MMTk
> - write barriers for Java for MMTk
> - a simple test to check the things are alive
> I also have few questions on unboxed package and some MMTk
> internals, that I was unable to resolve myself (I used javadocs
> from http://jikesrvm.sourceforge.net/api/) and I would
> appreciate a help on resolving them.
> The main obstacle is that writeBarrier method in PlanLocal is
> instance method.
> I failed to find a way how to get the proper instance during
> runtime - and this is the first question - how to get the
> proper instance of PlanLocal ?

Yes.  We will need to add APIs for the jit to get the ref ptrs to a
few MMTk java objects.  My guess is that MMTk can allocate these
objects in "immortal space" which is never moved, never collected thus
the ref pointer is always valid.
> Currently, I've made a presumption that there must be some
> static method to get it.

We need to discuss the approaches.  The API could be a static java
method but this requires the JIT to call out to java code while
jitting which might not be a good idea.  Another approach is to use
the existing class loader API to return the address of a java static
variable.  Its a proven/tested existing interface.  Thoughts?

> I used a simple fake stub to test the implementation
> (it's in PlanLocal.java attached to the JIRA).
> Also, there are few questions on unboxed package:
>   - Address::max() - what is 'maximul allowable Address' ?

I think its 2**32 or 2**32-1 or something like that.

>        A highest valid addres in heap ? Or simply ~(void*)0 ?
The above seems reasonable.  The rest of your questions I will think
about and get back to you.

>   - What's the diff between diff() and sub() ? diff()=='abs(sub())' ?
>   - Word::one() - what's this ? (Object)1 ?
>   - what is AddressArray::getBacking() ?
>   - rshl, rshr, rsha - they shift, but what and how
>        exactly they're shifting ?
>   - what are exact values for mode argument in writeBarrier ?
>        Currently, I'm simply using 0/1/2.
> --
> Thanks,
>   Alex

Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org

View raw message