Package org.jnode.assembler.x86

Examples of org.jnode.assembler.x86.X86BinaryAssembler


     * @param resolver
     * @return NativeStream
     */
    public NativeStream createNativeStream(ObjectResolver resolver) {
        X86CpuID cpuid = (X86CpuID) VmProcessor.current().getCPUID();
        X86BinaryAssembler os = new X86BinaryAssembler(cpuid, getMode(), 0);
        os.setResolver(resolver);
        return os;
    }
View Full Code Here


     * @param resolver
     * @return NativeStream
     */
    public NativeStream createNativeStream(ObjectResolver resolver) {
        X86CpuID cpuid = (X86CpuID) VmProcessor.current().getCPUID();
        X86BinaryAssembler os = new X86BinaryAssembler(cpuid, getMode(), 0);
        os.setResolver(resolver);
        return os;
    }
View Full Code Here

     * @param resolver
     * @return NativeStream
     */
    public NativeStream createNativeStream(ObjectResolver resolver) {
        X86CpuID cpuid = (X86CpuID) VmProcessor.current().getCPUID();
        X86BinaryAssembler os = new X86BinaryAssembler(cpuid, getMode(), 0);
        os.setResolver(resolver);
        return os;
    }
View Full Code Here

            typeSizeInfo = loader.getArchitecture().getTypeSizeInfo();
        }
    }

    public NativeStream createNativeStream(ObjectResolver resolver) {
        X86BinaryAssembler os = nativeStreamHolder.get();
        if (os == null) {
            os = new X86BinaryAssembler((X86CpuID) VmProcessor.current()
                .getCPUID(), mode, 0);
            os.setResolver(resolver);
            nativeStreamHolder.set(os);
        }
        return os;
    }
View Full Code Here

     *
     * @param resolver
     * @return NativeStream
     */
    public NativeStream createNativeStream(ObjectResolver resolver) {
        X86BinaryAssembler os =
            new X86BinaryAssembler((X86CpuID) VmProcessor.current().getCPUID(), getMode(), 0, 16, 64, 8);
        os.setResolver(resolver);
        return os;
    }
View Full Code Here

    public static void main(String[] args) {

        final ObjectResolver res = new Unsafe.UnsafeObjectResolver();
        System.out.println(NumberUtils.hex(res.addressOf32(VmUtils.getVm())));

        final X86BinaryAssembler os = new X86BinaryAssembler(X86CpuID.createID(null), X86Constants.Mode.CODE32, 0);
        os.write32(0x12345678);
        byte[] b = os.getBytes();
        System.out.println(NumberUtils.hex(b, 0, os.getLength()));
    }
View Full Code Here

            mode = Mode.CODE64;
        } else {
            mode = Mode.CODE32;
        }

        final X86BinaryAssembler os = new X86BinaryAssembler(X86CpuID.createID("pentium4"), mode, 0);

        if (mode.is32()) {
            testCode32(os);
        } else {
            testCode64(os);
        }

        FileOutputStream fos = new FileOutputStream("test.bin");
        os.writeTo(fos);
        fos.close();
    }
View Full Code Here

                className = arg0;
            }
        }

        if (binary) {
            X86BinaryAssembler os = new X86BinaryAssembler(cpuId, X86Constants.Mode.CODE32, 0);
            generateCode(os, className);
            FileOutputStream fos = new FileOutputStream("test.bin");
            os.writeTo(fos);
            fos.close();
        } else {
            X86TextAssembler tos =
                new X86TextAssembler(new OutputStreamWriter(System.out), cpuId, X86Constants.Mode.CODE32);
            generateCode(tos, className);
View Full Code Here

     * @return The native stream
     */
    protected NativeStream createNativeStream() {
        X86Constants.Mode mode = ((VmX86Architecture) getArchitecture())
            .getMode();
        return new X86BinaryAssembler(getCPUID(), mode, LOAD_ADDR,
            INITIAL_OBJREFS_CAPACITY, INITIAL_SIZE, INITIAL_SIZE);
    }
View Full Code Here

                throw new BuildException("JUMP_MAIN_OFFSET is incorrect ["
                    + offset + " instead of " + JUMP_MAIN_OFFSET()
                    + "] (set to Object headersize)");
            }

            final X86BinaryAssembler os86 = (X86BinaryAssembler) os;
            final Label introCode = new Label("$$introCode");

            os86.setObjectRef(new Label("$$jmp-introCode"));
            os86.writeJMP(introCode);
            initObject.markEnd();

            // The loading of class can emit object in between, so first load
            // all required classes here.
            loadClass(Main.class);
            loadClass(MonitorManager.class);
            loadClass(SoftByteCodes.class);
            loadClass(Vm.class);
            loadClass(VmMethod.class);
            loadClass(VmProcessor.class);
            loadClass(VmThread.class);
            loadClass(VmType.class);
            loadClass(VmSystem.class);
            loadClass(VmSystemObject.class);

            final X86BinaryAssembler.ObjectInfo initCodeObject = os
                .startObject(vmCodeClass);
            os86.setObjectRef(introCode);
            initMain(os86, pluginRegistry);
            initVm(os86, vm);
            // initHeapManager(os86, vm);
            initVmThread(os86);

            os.setObjectRef(new Label("$$Initial call to clInitCaller"));
            os86.writeCALL(clInitCaller);

            initCallMain(os86);

            initCodeObject.markEnd();
View Full Code Here

TOP

Related Classes of org.jnode.assembler.x86.X86BinaryAssembler

Copyright © 2018 www.massapicom. 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.