public void RequestMethod(libtysila.Assembler.MethodToCompile mtc, bool jit_stub) { if (mtc.type.IsDelegate(ass) && (mtc.meth.Name == ".ctor")) { // Rewrite delegate constructors mtc.msig.Method.Params[1] = new libtysila.Signature.Param(libtysila.BaseType_Type.VirtFtnPtr); } string mangled_name = mtc.ToString(); if (compiled_objects.Contains(mangled_name)) { return; } if (Program.IsCompiled(mangled_name)) { return; } foreach (JitMethod jm in req_meths) { if (jm.mtc.Equals(mtc)) { return; } } base.RequestMethod(mtc); req_meths.Add(new JitMethod { mtc = mtc, is_jit_stub = jit_stub }); }
public libtysila.Assembler.MethodToCompile? GetNextJitMethodInfo() { if (req_gms.Count > 0) { libtysila.Assembler.MethodToCompile ret = req_gms[0]; req_gms.RemoveAt(0); compiled_objects.Add(ret.ToString()); return(ret); } return(null); }