Fursov, what are the intrinsics supports you want to implement? The code below you gave has only a few examples. I think it would be a good idea to well define the instrinsics before code them.
Thanks, xiaofeng On 8/28/06, Mikhail Fursov <[EMAIL PROTECTED]> wrote:
Folks, Here is the example of fast allocation helper written in Java with the help of VMMagic If nobody objects I'm starting to implement VMMagic support in Jitrino.OPTthis week. private static final int GC_TLS_OFFSET = 10; private static final int GC_CURRENT_OFFSET= GC_TLS_OFFSET + 0; private static final int GC_CEILING_OFFSET= GC_TLS_OFFSET + 4; private static final int OBJ_VTABLE_OFFSET = 0; //annotate with calling convention and real VM helper id/name information private static Address slowAlloc(int vtable, int size) {throw new Error("must never be called!");} private static Address fastAlloc(int vtable, int size) { Address tlsBase = TLS.getAddress(); //load thread local client area address Address currentFieldAddress = tlsBase.plus(GC_CURRENT_OFFSET); Address ceilingFieldAddress = tlsBase.plus(GC_CEILING_OFFSET); Address newObjectAddress; //the result of the method // check if there is enough size to do allocation in thread local buffer Address current = currentFieldAddress.loadAddress(); Address ceiling = ceilingFieldAddress.loadAddress(); Address newCurrent = current.plus(size); if (newCurrent.LT(ceiling)) { currentFieldAddress.store(newCurrent.toWord()); newObjectAddress = newCurrent; newObjectAddress.store(vtable, Offset.fromInt(OBJ_VTABLE_OFFSET)); } else { newObjectAddress = slowAlloc(vtable, size); } return newObjectAddress; } -- Mikhail Fursov
--------------------------------------------------------------------- Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]