Examples of VmWriteBarrier


Examples of org.jnode.vm.facade.VmWriteBarrier

     * @param indexReg
     * @param valueReg
     */
    public final void writeArrayStoreWriteBarrier(GPR refReg, GPR indexReg,
                                                  GPR valueReg, GPR scratchReg) {
        final VmWriteBarrier wb = entryPoints.getWriteBarrier();
        if (wb != null) {
            os.writeMOV_Const(scratchReg, wb);
            os.writePUSH(scratchReg);
            os.writePUSH(refReg);
            os.writePUSH(indexReg);
View Full Code Here

Examples of org.jnode.vm.facade.VmWriteBarrier

     * @param valueReg
     */
    public final void writePutfieldWriteBarrier(VmInstanceField field,
                                                GPR refReg, GPR valueReg, GPR scratchReg) {
        if (field.isObjectRef()) {
            final VmWriteBarrier wb = entryPoints.getWriteBarrier();
            if (wb != null) {
                os.writeMOV_Const(scratchReg, wb);
                os.writePUSH(scratchReg);
                os.writePUSH(refReg);
                os.writePUSH(field.getOffset());
View Full Code Here

Examples of org.jnode.vm.facade.VmWriteBarrier

                "scratchReg wrong size");
            VmUtils._assert(valueReg.getSize() == this.ADDRSIZE,
                "valueReg wrong size");
        }
        if (field.isObjectRef()) {
            final VmWriteBarrier wb = entryPoints.getWriteBarrier();
            if (wb != null) {
                os.writeMOV_Const(scratchReg, wb);
                os.writePUSH(scratchReg);
                if (field.isShared()) {
                    os.writePUSH(1); // shared = true
View Full Code Here

Examples of org.jnode.vm.facade.VmWriteBarrier

        } else {
            Unsafe.copy(srcPtr, dstPtr, size);
        }

        if (isObjectArray) {
            final VmWriteBarrier wb = VmUtils.getVm().getHeapManager().getWriteBarrier();
            if (wb != null) {
                wb.arrayCopyWriteBarrier(src, srcPos, srcPos + length);
            }
        }
    }
View Full Code Here

Examples of org.jnode.vm.facade.VmWriteBarrier

    public static void setObject(VmField field, Object o, Object value) {
        if (field.isStatic()) {
            final VmStaticField sf = (VmStaticField) field;
            initialize(sf);
            getStaticFieldAddress(sf).store(ObjectReference.fromObject(value));
            final VmWriteBarrier wb = VmUtils.getVm().getHeapManager().getWriteBarrier();
            if (wb != null) {
                if (sf.isShared()) {
                    wb.putstaticWriteBarrier(true, sf.getSharedStaticsIndex(), value);
                } else {
                    wb.putstaticWriteBarrier(true, sf.getIsolatedStaticsIndex(), value);
                }
            }
        } else {
            final VmInstanceField inf = (VmInstanceField) field;
            final int offset = inf.getOffset();
            getInstanceFieldAddress(o, inf).store(ObjectReference.fromObject(value));
            final VmWriteBarrier wb = VmUtils.getVm().getHeapManager().getWriteBarrier();
            if (wb != null) {
                wb.putfieldWriteBarrier(o, offset, value);
            }
        }
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.