예제 #1
0
        void AddExternDef(string name, libtysila.Assembler.TypeToCompile ret, List <libtysila.Assembler.TypeToCompile> p, string cc)
        {
            libtysila.Signature.Method msig = new libtysila.Signature.Method
            {
                CallingConvention = libtysila.Signature.Method.CallConv.Default,
                ExplicitThis      = false,
                HasThis           = false,
                RetType           = ret.tsig,
                GenParamCount     = 0,
                ParamCount        = p.Count,
                Params            = new List <libtysila.Signature.Param>()
            };
            foreach (libtysila.Assembler.TypeToCompile i in p)
            {
                msig.Params.Add(i.tsig);
            }

            libtysila.Assembler.MethodToCompile mtc = new libtysila.Assembler.MethodToCompile {
                _ass = ass, meth = null,
                msig = msig
            };

            callconvs[name] = cc;
            msigs[name]     = msig;
        }
예제 #2
0
 public libtysila.Assembler.TypeToCompile? GetNextJITType()
 {
     if (req_tis.Count > 0)
     {
         libtysila.Assembler.TypeToCompile ret = req_tis[0];
         req_tis.RemoveAt(0);
         compiled_objects.Add(ret.ToString());
         return(ret);
     }
     return(null);
 }
예제 #3
0
        public override void RequestTypeInfo(libtysila.Assembler.TypeToCompile ttc)
        {
            string mangled_name = ttc.ToString();

            if (compiled_objects.Contains(mangled_name))
            {
                return;
            }
            if (Program.IsCompiled(mangled_name))
            {
                return;
            }
            if (req_tis.Contains(ttc))
            {
                return;
            }

            base.RequestTypeInfo(ttc);
            req_tis.Add(ttc);
        }
예제 #4
0
        libtysila.Assembler.TypeToCompile InterpretType(string module, string nspace, string name, List <libtysila.Assembler.TypeToCompile> gen_args)
        {
            libtysila.Assembler.TypeToCompile gtd_ttc = libtysila.Metadata.GetTTC(module, nspace, name, ass);

            return(gtd_ttc);
        }
예제 #5
0
 public override void ExcludeTypeInfo(libtysila.Assembler.TypeToCompile ttc)
 {
     throw new NotImplementedException();
 }
예제 #6
0
 public override void RequestStaticFields(libtysila.Assembler.TypeToCompile ttc)
 {
     throw new NotImplementedException();
     //base.RequestStaticFields(ttc);
 }