예제 #1
0
파일: Compiler.cs 프로젝트: masdjab/il2asm
        public void CompileModule(ModuleDefinition md)
        {
            ab.Comment("Module: " + md.FullyQualifiedName);
            ab.Line();

            foreach (var i in md.Types)
            {
                CompileType(i);
            }
        }
예제 #2
0
파일: IOpcode.cs 프로젝트: masdjab/il2asm
        public static void AutoCompile(Instruction i, AsmBuilder ab, List <string> Offsets, MethodDefinition md)
        {
            ab.Comment(i.ToString().Replace("\r\n", "\n").Replace("\n", ""));
            bool Found = false;

            if (Offsets.Contains(Utils.SafeName(md.FullName) + i.ToString().Split(':')[0]))
            {
                ab.Label(Utils.SafeName(md.FullName) + i.ToString().Split(':')[0]);
            }

            foreach (var z in Opcodes)
            {
                if (z.OP.Contains(i.OpCode))
                {
                    z.Compile(i, ab, Offsets, md);
                    Found = true;
                    break;
                }
            }
            if (!Found)
            {
                Console.WriteLine("Missing opcode: " + i.ToString());
            }

            ab.Line();
        }