Ejemplo n.º 1
0
 /// <summary>
 /// Creates a new verifier
 /// </summary>
 /// <param name="virtualMachine">The virtual machine</param>
 public Verifier(VirtualMachine virtualMachine)
 {
     this.virtualMachine = virtualMachine;
     this.intType = this.virtualMachine.TypeProvider.GetPrimitiveType(PrimitiveTypes.Int);
     this.floatType = this.virtualMachine.TypeProvider.GetPrimitiveType(PrimitiveTypes.Float);
     this.voidType = this.virtualMachine.TypeProvider.GetPrimitiveType(PrimitiveTypes.Void);
 }
        /// <summary>
        /// Adds the native library to the given VM
        /// </summary>
        /// <param name="virtualMachine">The virtual machine</param>
        public static void Add(VirtualMachine virtualMachine)
        {
            var intType = virtualMachine.TypeProvider.GetPrimitiveType(PrimitiveTypes.Int);
            var floatType = virtualMachine.TypeProvider.GetPrimitiveType(PrimitiveTypes.Float);
            var voidType = virtualMachine.TypeProvider.GetPrimitiveType(PrimitiveTypes.Void);

            virtualMachine.Binder.Define(FunctionDefinition.NewExternal<FuncVoidArgInt>(
                "std.println",
                new List<VMType>() { intType },
                voidType,
                Println));

            virtualMachine.Binder.Define(FunctionDefinition.NewExternal<FuncVoidArgFloat>(
                "std.println",
                new List<VMType>() { floatType },
                voidType,
                Println));
        }
 /// <summary>
 /// Creates a new code generator
 /// </summary>
 /// <param name="virtualMachine">The virtual machine</param>
 public CodeGenerator(VirtualMachine virtualMachine)
 {
     this.virtualMachine = virtualMachine;
 }
 /// <summary>
 /// Creates a new code generator
 /// </summary>
 /// <param name="virtualMachine">The virtual machine</param>
 public OptimizedCodeGenerator(VirtualMachine virtualMachine)
 {
     this.virtualMachine = virtualMachine;
 }
 /// <summary>
 /// Creates a new Windows x64 container
 /// </summary>
 public Win64Container()
 {
     this.VirtualMachine = new VirtualMachine(vm => new JITCompiler(vm));
     NativeLibrary.Add(this.VirtualMachine);
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Creates a new compiler
 /// </summary>
 /// <param name="virtualMachine">The virtual machine</param>
 public JITCompiler(VirtualMachine virtualMachine)
 {
     this.virtualMachine = virtualMachine;
     this.codeGen = new CodeGenerator(virtualMachine);
     this.optimizedCodeGen = new OptimizedCodeGenerator(virtualMachine);
 }